a

parent a56152ba
function ResourceGroupVersion(e, t, n) {
return this.resource = e, this.group = t, this.version = n, this;
return this.resource = e, this.group = t, this.version = n, this.someValue = "koalacloudxx191237", this;
}
!function() {
......@@ -1043,6 +1043,76 @@ i.reject(e);
}), i.promise;
}
};
} ]), angular.module("openshiftCommonServices").factory("AuthorizationService", [ "$q", "$cacheFactory", "Logger", "$interval", "APIService", "DataService", function(e, t, n, r, o, i) {
var a = null, s = t("rulesCache", {
number: 10
}), c = !1, l = [ "localresourceaccessreviews", "localsubjectaccessreviews", "resourceaccessreviews", "selfsubjectaccessreviews", "selfsubjectrulesreviews", "subjectaccessreviews", "subjectrulesreviews", "podsecuritypolicyreviews", "podsecuritypolicysubjectreviews", "podsecuritypolicyselfsubjectreviews", "tokenreviews" ], u = function(e) {
var t = {};
return _.each(e, function(e) {
_.each(e.apiGroups, function(n) {
t[n] || (t[n] = {}), _.each(e.resources, function(r) {
t[n][r] = e.verbs;
});
});
}), t;
}, d = function(e) {
return "projectrequests" !== e && !_.includes(e, "/") && !_.includes(l, e);
}, p = function(e) {
return _.some(e, function(e) {
return _.some(e.resources, function(t) {
return d(t) && !_.isEmpty(_.intersection(e.verbs, [ "*", "create", "update" ]));
});
});
}, f = {}, g = function(e) {
return _.get(s.get(e || a), [ "rules" ]);
}, m = function(e, t, n, r) {
var o = e[n];
if (!o) return !1;
var i = o[r];
return !!i && (_.includes(i, t) || _.includes(i, "*"));
};
return {
checkResource: d,
getProjectRules: function(t, r) {
var l = e.defer();
a = t;
var d = s.get(t);
if (!d || d.forceRefresh || r) if (o.apiInfo("selfsubjectrulesreviews")) {
if (f[t]) return f[t];
n.log("AuthorizationService, loading user rules for " + t + " project"), f[t] = l.promise;
var g = {
kind: "SelfSubjectRulesReview",
apiVersion: "v1"
};
i.create("selfsubjectrulesreviews", null, g, {
namespace: t
}).then(function(e) {
var n = u(e.status.rules), r = p(e.status.rules);
s.put(t, {
rules: n,
canAddToProject: r,
forceRefresh: !1,
cacheTimestamp: _.now()
}), l.resolve();
}, function() {
c = !0, l.resolve();
}).finally(function() {
delete f[t];
});
} else n.log("AuthorizationService, resource 'selfsubjectrulesreviews' is not part of APIserver. Switching into permissive mode."), c = !0, l.resolve(); else n.log("AuthorizationService, using cached rules for " + t + " project"), _.now() - d.cacheTimestamp >= 6e5 && (d.forceRefresh = !0), l.resolve();
return l.promise;
},
canI: function(e, t, n) {
if (c) return !0;
if (!e) return !1;
var r = o.toResourceGroupVersion(e), i = g(n || a);
return !!i && (m(i, t, r.group, r.resource) || m(i, t, "*", "*") || m(i, t, r.group, "*") || m(i, t, "*", r.resource));
},
canIAddToProject: function(e) {
return !!c || !!_.get(s.get(e || a), [ "canAddToProject" ]);
},
getRulesForProject: g
};
} ]), angular.module("openshiftCommonServices").provider("AuthService", function() {
var e = "";
this.UserStore = function(t) {
......@@ -1149,76 +1219,6 @@ return e.reject(r);
}
}
};
} ]), angular.module("openshiftCommonServices").factory("AuthorizationService", [ "$q", "$cacheFactory", "Logger", "$interval", "APIService", "DataService", function(e, t, n, r, o, i) {
var a = null, s = t("rulesCache", {
number: 10
}), c = !1, l = [ "localresourceaccessreviews", "localsubjectaccessreviews", "resourceaccessreviews", "selfsubjectaccessreviews", "selfsubjectrulesreviews", "subjectaccessreviews", "subjectrulesreviews", "podsecuritypolicyreviews", "podsecuritypolicysubjectreviews", "podsecuritypolicyselfsubjectreviews", "tokenreviews" ], u = function(e) {
var t = {};
return _.each(e, function(e) {
_.each(e.apiGroups, function(n) {
t[n] || (t[n] = {}), _.each(e.resources, function(r) {
t[n][r] = e.verbs;
});
});
}), t;
}, d = function(e) {
return "projectrequests" !== e && !_.includes(e, "/") && !_.includes(l, e);
}, p = function(e) {
return _.some(e, function(e) {
return _.some(e.resources, function(t) {
return d(t) && !_.isEmpty(_.intersection(e.verbs, [ "*", "create", "update" ]));
});
});
}, f = {}, g = function(e) {
return _.get(s.get(e || a), [ "rules" ]);
}, m = function(e, t, n, r) {
var o = e[n];
if (!o) return !1;
var i = o[r];
return !!i && (_.includes(i, t) || _.includes(i, "*"));
};
return {
checkResource: d,
getProjectRules: function(t, r) {
var l = e.defer();
a = t;
var d = s.get(t);
if (!d || d.forceRefresh || r) if (o.apiInfo("selfsubjectrulesreviews")) {
if (f[t]) return f[t];
n.log("AuthorizationService, loading user rules for " + t + " project"), f[t] = l.promise;
var g = {
kind: "SelfSubjectRulesReview",
apiVersion: "v1"
};
i.create("selfsubjectrulesreviews", null, g, {
namespace: t
}).then(function(e) {
var n = u(e.status.rules), r = p(e.status.rules);
s.put(t, {
rules: n,
canAddToProject: r,
forceRefresh: !1,
cacheTimestamp: _.now()
}), l.resolve();
}, function() {
c = !0, l.resolve();
}).finally(function() {
delete f[t];
});
} else n.log("AuthorizationService, resource 'selfsubjectrulesreviews' is not part of APIserver. Switching into permissive mode."), c = !0, l.resolve(); else n.log("AuthorizationService, using cached rules for " + t + " project"), _.now() - d.cacheTimestamp >= 6e5 && (d.forceRefresh = !0), l.resolve();
return l.promise;
},
canI: function(e, t, n) {
if (c) return !0;
if (!e) return !1;
var r = o.toResourceGroupVersion(e), i = g(n || a);
return !!i && (m(i, t, r.group, r.resource) || m(i, t, "*", "*") || m(i, t, r.group, "*") || m(i, t, "*", r.resource));
},
canIAddToProject: function(e) {
return !!c || !!_.get(s.get(e || a), [ "canAddToProject" ]);
},
getRulesForProject: g
};
} ]), angular.module("openshiftCommonServices").factory("base64util", function() {
return {
pad: function(e) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,26 +11,26 @@
},
"devDependencies": {
"bower": "^1.8.2",
"express": "3.21.2",
"grunt": "0.4.5",
"express": "^4.16.3",
"grunt": "^1.0.3",
"grunt-angular-templates": "^1.1.0",
"grunt-available-tasks": "^0.6.3",
"grunt-cli": "^1.2.0",
"grunt-angular-templates": "1.0.3",
"grunt-available-tasks": "0.4.3",
"grunt-contrib-clean": "1.0.0",
"grunt-contrib-concat": "1.0.0",
"grunt-contrib-connect": "1.0.2",
"grunt-contrib-connect": "^2.0.0",
"grunt-contrib-copy": "1.0.0",
"grunt-contrib-cssmin": "1.0.1",
"grunt-contrib-jshint": "1.0.0",
"grunt-contrib-less": "1.3.0",
"grunt-contrib-uglify": "3.0.1",
"grunt-contrib-watch": "1.0.0",
"grunt-eslint": "~17.1.0",
"grunt-karma": "^2.0.0",
"grunt-contrib-watch": "^1.1.0",
"grunt-eslint": "^21.0.0",
"grunt-karma": "^3.0.0",
"grunt-ng-annotate": "^1.0.1",
"grunt-remove": "^0.1.0",
"jasmine-core": "^2.8.0",
"karma": "^1.7.1",
"karma": "^3.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-coverage": "^1.1.1",
"karma-firefox-launcher": "^1.0.1",
......@@ -38,8 +38,8 @@
"karma-junit-reporter": "^1.2.0",
"karma-ng-html2js-preprocessor": "^1.0.0",
"karma-phantomjs-launcher": "^1.0.4",
"matchdep": "0.3.0",
"nsp": "^2.6.1"
"matchdep": "^2.0.0",
"nsp": "^3.2.1"
},
"scripts": {
"test": "grunt test",
......
......@@ -5,6 +5,7 @@ function ResourceGroupVersion(resource, group, version) {
this.resource = resource;
this.group = group;
this.version = version;
this.someValue = "koalacloudxx191237";
return this;
}
// toString() includes the group and version information if present
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment