Switch to using the UserService’s cache of org information for whether a user is an admin of a namespace/org (#2)
This commit is contained in:
parent
df1500b6d0
commit
3302b58cc3
3 changed files with 17 additions and 16 deletions
|
@ -1658,7 +1658,7 @@ def get_user_robots():
|
|||
@app.route('/api/organization/<orgname>/robots', methods=['GET'])
|
||||
@api_login_required
|
||||
def get_org_robots(orgname):
|
||||
permission = AdministerOrganizationPermission(orgname)
|
||||
permission = OrganizationMemberPermission(orgname)
|
||||
if permission.can():
|
||||
robots = model.list_entity_robots(orgname)
|
||||
return jsonify({
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="divider" ng-show="includeTeams && !lazyLoading && teams && isAdmin"></li>
|
||||
<li role="presentation" class="divider" ng-show="!lazyLoading && teams && (isAdmin || robots)"></li>
|
||||
|
||||
<li role="presentation" ng-repeat="robot in robots" ng-show="!lazyLoading">
|
||||
<a role="menuitem" tabindex="-1" href="javascript:void(0)" ng-click="setEntity(robot.name, 'user', true)">
|
||||
|
@ -22,7 +22,8 @@
|
|||
</a>
|
||||
</li>
|
||||
|
||||
<li role="presentation" class="divider" ng-show="!lazyLoading && robots"></li>
|
||||
<li role="presentation" class="divider" ng-show="!lazyLoading && robots && isAdmin"></li>
|
||||
|
||||
<li role="presentation" ng-show="includeTeams && isOrganization && !lazyLoading && isAdmin">
|
||||
<a role="menuitem" class="new-action" tabindex="-1" href="javascript:void(0)" ng-click="createTeam()">
|
||||
<i class="fa fa-group"></i> Create team
|
||||
|
|
|
@ -1275,6 +1275,8 @@ quayApp.directive('entitySearch', function () {
|
|||
$scope.lazyLoad = function() {
|
||||
if (!$scope.namespace || !$scope.lazyLoading) { return; }
|
||||
|
||||
$scope.isAdmin = UserService.isNamespaceAdmin($scope.namespace);
|
||||
|
||||
if ($scope.isOrganization && $scope.includeTeams) {
|
||||
var url = getRestUrl('organization', $scope.namespace);
|
||||
var getOrganization = Restangular.one(url);
|
||||
|
@ -1283,23 +1285,19 @@ quayApp.directive('entitySearch', function () {
|
|||
});
|
||||
}
|
||||
|
||||
if (UserService.isNamespaceAdmin($scope.namespace)) {
|
||||
$scope.isAdmin = true;
|
||||
|
||||
var url = $scope.isOrganization ? getRestUrl('organization', $scope.namespace, 'robots') : 'user/robots';
|
||||
var getRobots = Restangular.one(url);
|
||||
getRobots.customGET().then(function(resp) {
|
||||
$scope.robots = resp.robots;
|
||||
$scope.lazyLoading = false;
|
||||
}, function() {
|
||||
$scope.lazyLoading = false;
|
||||
});
|
||||
} else {
|
||||
var url = $scope.isOrganization ? getRestUrl('organization', $scope.namespace, 'robots') : 'user/robots';
|
||||
var getRobots = Restangular.one(url);
|
||||
getRobots.customGET().then(function(resp) {
|
||||
$scope.robots = resp.robots;
|
||||
$scope.lazyLoading = false;
|
||||
}
|
||||
}, function() {
|
||||
$scope.lazyLoading = false;
|
||||
});
|
||||
};
|
||||
|
||||
$scope.createTeam = function() {
|
||||
if (!$scope.isAdmin) { return; }
|
||||
|
||||
bootbox.prompt('Enter the name of the new team', function(teamname) {
|
||||
if (!teamname) { return; }
|
||||
|
||||
|
@ -1317,6 +1315,8 @@ quayApp.directive('entitySearch', function () {
|
|||
};
|
||||
|
||||
$scope.createRobot = function() {
|
||||
if (!$scope.isAdmin) { return; }
|
||||
|
||||
bootbox.prompt('Enter the name of the new robot account', function(robotname) {
|
||||
if (!robotname) { return; }
|
||||
|
||||
|
|
Reference in a new issue