mirror of
https://github.com/portainer/portainer.git
synced 2025-08-05 13:55:21 +02:00
feat(global): introduce user teams and new UAC system (#868)
This commit is contained in:
parent
a380fd9adc
commit
5523fc9023
160 changed files with 7112 additions and 3166 deletions
|
@ -8,21 +8,21 @@ angular.module('portainer.helpers')
|
|||
role: ''
|
||||
};
|
||||
if (_.startsWith(info.ServerVersion, 'swarm')) {
|
||||
mode.provider = "DOCKER_SWARM";
|
||||
mode.provider = 'DOCKER_SWARM';
|
||||
if (info.SystemStatus[0][1] === 'primary') {
|
||||
mode.role = "PRIMARY";
|
||||
mode.role = 'PRIMARY';
|
||||
} else {
|
||||
mode.role = "REPLICA";
|
||||
mode.role = 'REPLICA';
|
||||
}
|
||||
} else {
|
||||
if (!info.Swarm || _.isEmpty(info.Swarm.NodeID)) {
|
||||
mode.provider = "DOCKER_STANDALONE";
|
||||
mode.provider = 'DOCKER_STANDALONE';
|
||||
} else {
|
||||
mode.provider = "DOCKER_SWARM_MODE";
|
||||
mode.provider = 'DOCKER_SWARM_MODE';
|
||||
if (info.Swarm.ControlAvailable) {
|
||||
mode.role = "MANAGER";
|
||||
mode.role = 'MANAGER';
|
||||
} else {
|
||||
mode.role = "WORKER";
|
||||
mode.role = 'WORKER';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,10 +13,10 @@ angular.module('portainer.helpers')
|
|||
getManagerIP: function(nodes) {
|
||||
var managerIp;
|
||||
for (var n in nodes) {
|
||||
if (undefined === nodes[n].ManagerStatus || nodes[n].ManagerStatus.Reachability !== "reachable") {
|
||||
if (undefined === nodes[n].ManagerStatus || nodes[n].ManagerStatus.Reachability !== 'reachable') {
|
||||
continue;
|
||||
}
|
||||
managerIp = nodes[n].ManagerStatus.Addr.split(":")[0];
|
||||
managerIp = nodes[n].ManagerStatus.Addr.split(':')[0];
|
||||
}
|
||||
return managerIp;
|
||||
}
|
||||
|
|
42
app/helpers/resourceControlHelper.js
Normal file
42
app/helpers/resourceControlHelper.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
angular.module('portainer.helpers')
|
||||
.factory('ResourceControlHelper', [function ResourceControlHelperFactory() {
|
||||
'use strict';
|
||||
var helper = {};
|
||||
|
||||
helper.retrieveAuthorizedUsers = function(resourceControl, users) {
|
||||
var authorizedUserNames = [];
|
||||
angular.forEach(resourceControl.UserAccesses, function(access) {
|
||||
var user = _.find(users, { Id: access.UserId });
|
||||
if (user) {
|
||||
authorizedUserNames.push(user);
|
||||
}
|
||||
});
|
||||
return authorizedUserNames;
|
||||
};
|
||||
|
||||
helper.retrieveAuthorizedTeams = function(resourceControl, teams) {
|
||||
var authorizedTeamNames = [];
|
||||
angular.forEach(resourceControl.TeamAccesses, function(access) {
|
||||
var team = _.find(teams, { Id: access.TeamId });
|
||||
if (team) {
|
||||
authorizedTeamNames.push(team);
|
||||
}
|
||||
});
|
||||
return authorizedTeamNames;
|
||||
};
|
||||
|
||||
helper.isLeaderOfAnyRestrictedTeams = function(userMemberships, resourceControl) {
|
||||
var isTeamLeader = false;
|
||||
for (var i = 0; i < userMemberships.length; i++) {
|
||||
var membership = userMemberships[i];
|
||||
var found = _.find(resourceControl.TeamAccesses, { TeamId :membership.TeamId });
|
||||
if (found && membership.Role === 1) {
|
||||
isTeamLeader = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return isTeamLeader;
|
||||
};
|
||||
|
||||
return helper;
|
||||
}]);
|
|
@ -83,7 +83,7 @@ angular.module('portainer.helpers')
|
|||
if (volume.containerPath) {
|
||||
var binding;
|
||||
if (volume.type === 'auto') {
|
||||
binding = generatedVolumesPile.pop().Name + ':' + volume.containerPath;
|
||||
binding = generatedVolumesPile.pop().Id + ':' + volume.containerPath;
|
||||
} else if (volume.type !== 'auto' && volume.name) {
|
||||
binding = volume.name + ':' + volume.containerPath;
|
||||
}
|
||||
|
|
15
app/helpers/userHelper.js
Normal file
15
app/helpers/userHelper.js
Normal file
|
@ -0,0 +1,15 @@
|
|||
angular.module('portainer.helpers')
|
||||
.factory('UserHelper', [function UserHelperFactory() {
|
||||
'use strict';
|
||||
var helper = {};
|
||||
|
||||
helper.filterNonAdministratorUsers = function(users) {
|
||||
return users.filter(function (user) {
|
||||
if (user.Role !== 1) {
|
||||
return user;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
return helper;
|
||||
}]);
|
Loading…
Add table
Add a link
Reference in a new issue