mirror of
https://github.com/ansible/awx.git
synced 2026-01-16 04:10:44 -03:30
address pr and product feedback
This commit is contained in:
parent
52e86cf0c3
commit
f3173dbe26
@ -119,11 +119,16 @@ export default ['$rootScope', '$scope', 'GetBasePath', 'Rest', '$q', 'Wait', 'Pr
|
||||
var url = GetBasePath(selectedValue.type + "s") + selectedValue.id +
|
||||
"/roles/";
|
||||
|
||||
(selectedValue.roles || [])
|
||||
.map(function(role) {
|
||||
Rest.setUrl(url);
|
||||
requests.push(Rest.post({ "id": role.value || role.id }));
|
||||
});
|
||||
if (scope.onlyMemberRole === 'true') {
|
||||
Rest.setUrl(url);
|
||||
requests.push(Rest.post({ "id": scope.roles.member_role.id }));
|
||||
} else {
|
||||
(selectedValue.roles || [])
|
||||
.map(function(role) {
|
||||
Rest.setUrl(url);
|
||||
requests.push(Rest.post({ "id": role.value || role.id }));
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@ -17,6 +17,7 @@ export default ['templateUrl', '$state',
|
||||
teamsDataset: '=',
|
||||
resourceData: '=',
|
||||
withoutTeamPermissions: '@',
|
||||
onlyMemberRole: '@',
|
||||
title: '@'
|
||||
},
|
||||
controller: controller,
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
<div class="AddPermissions-body">
|
||||
<div class="AddPermissions-directions">
|
||||
<span class="AddPermissions-directionNumber">
|
||||
<span class="AddPermissions-directionNumber" ng-hide='onlyMemberRole === "true"'>
|
||||
1
|
||||
</span>
|
||||
<div ng-hide='withoutTeamPermissions' translate>
|
||||
@ -51,7 +51,7 @@
|
||||
<rbac-multiselect-list view="Teams" all-selected="allSelected" dataset="teamsDataset" object-type="object.type"></rbac-multiselect-list>
|
||||
</div>
|
||||
|
||||
<span ng-show="hasSelectedRows()">
|
||||
<span ng-show="hasSelectedRows() && !onlyMemberRole">
|
||||
<div class="AddPermissions-separator"></div>
|
||||
<div class="AddPermissions-directions">
|
||||
<span class="AddPermissions-directionNumber">
|
||||
@ -110,7 +110,7 @@
|
||||
<button type="button"
|
||||
class="btn btn-sm Form-saveButton"
|
||||
ng-click="updatePermissions()"
|
||||
ng-disabled="userRoleForm.$invalid || !allSelected || !hasSelectedRows()" translate>
|
||||
ng-disabled="(onlyMemberRole === 'true' && !hasSelectedRows()) && (userRoleForm.$invalid || !allSelected || !hasSelectedRows())" translate>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -28,11 +28,9 @@ function($scope, $rootScope, ProcessErrors, GetBasePath, generateList,
|
||||
if ($scope.addType === 'Administrators') {
|
||||
Rest.setUrl(GetBasePath('organizations') + `${$state.params.organization_id}/object_roles`);
|
||||
Rest.get().then(({data}) => {
|
||||
notAdminAlreadyParams.not__roles__in = data.results
|
||||
notAdminAlreadyParams.not__roles = data.results
|
||||
.filter(({name}) => name === i18n._('Admin'))
|
||||
.map(({id}) => id)
|
||||
.join(',');
|
||||
notAdminAlreadyParams.is_superuser = 'false';
|
||||
.map(({id}) => id)[0];
|
||||
init();
|
||||
});
|
||||
} else {
|
||||
|
||||
@ -591,83 +591,28 @@ function($injector, $stateExtender, $log, i18n) {
|
||||
},
|
||||
views: {
|
||||
[`modal@${formStateDefinition.name}`]: {
|
||||
template: `<add-rbac-resource default-params="$resolve.defaultParams" users-dataset="$resolve.usersDataset" selected="allSelected" resource-data="$resolve.resourceData" without-team-permissions="true" title="` + i18n._('Add Users') + `"></add-rbac-resource>`
|
||||
template: `<add-rbac-resource default-params="$resolve.defaultParams" users-dataset="$resolve.usersDataset" selected="allSelected" resource-data="$resolve.resourceData" without-team-permissions="true" title="` + i18n._('Add Users') + `" only-member-role="true"></add-rbac-resource>`
|
||||
}
|
||||
},
|
||||
ncyBreadcrumb:{
|
||||
skip:true
|
||||
},
|
||||
resolve: {
|
||||
orgId: ['$stateParams', 'Rest', 'GetBasePath', function($stateParams, Rest, GetBasePath) {
|
||||
let id;
|
||||
if ($stateParams.team_id) {
|
||||
Rest.setUrl(GetBasePath('teams') + `${$stateParams.team_id}`);
|
||||
id = Rest.get().then(({data}) => {
|
||||
return data.summary_fields.organization.id;
|
||||
});
|
||||
} else {
|
||||
id = null;
|
||||
}
|
||||
return id;
|
||||
}],
|
||||
teamRoles: ['$stateParams', 'Rest', 'GetBasePath', 'i18n', function($stateParams, Rest, GetBasePath, i18n) {
|
||||
let roles = null;
|
||||
if ($stateParams.team_id) {
|
||||
const basePath = GetBasePath('teams') + `${$stateParams.team_id}/object_roles`;
|
||||
roleToExclude: ['$stateParams', 'Rest', 'GetBasePath', 'i18n', function($stateParams, Rest, GetBasePath, i18n) {
|
||||
const basePath = ($stateParams.team_id) ? GetBasePath('teams') + `${$stateParams.team_id}/object_roles` :
|
||||
GetBasePath('organizations') + `${$stateParams.organization_id}/object_roles`;
|
||||
Rest.setUrl(basePath);
|
||||
roles = Rest.get().then(({data}) => {
|
||||
return data.results
|
||||
.filter(({name}) => name === i18n._('Member') || name === i18n._('Admin'))
|
||||
.map(({id}) => id)
|
||||
.join(',');
|
||||
});
|
||||
}
|
||||
return roles;
|
||||
}],
|
||||
orgAdminRole: ['$stateParams', 'orgId', 'Rest', 'GetBasePath', 'i18n',
|
||||
function($stateParams, orgId, Rest, GetBasePath, i18n) {
|
||||
let orgIdToCheck = $stateParams.organization_id || orgId;
|
||||
let role = null;
|
||||
if (orgIdToCheck) {
|
||||
const basePath = GetBasePath('organizations') + `${orgIdToCheck}/object_roles`;
|
||||
Rest.setUrl(basePath);
|
||||
role = Rest.get().then(({data}) => {
|
||||
return data.results
|
||||
.filter(({name}) => name === i18n._('Admin'))
|
||||
.map(({id}) => id)[0];
|
||||
});
|
||||
}
|
||||
return role;
|
||||
}],
|
||||
orgMemberRole: ['$stateParams', 'Rest', 'GetBasePath', 'i18n', function($stateParams, Rest, GetBasePath, i18n) {
|
||||
let role = null;
|
||||
if ($stateParams.organization_id) {
|
||||
const basePath = GetBasePath('organizations') + `${$stateParams.organization_id}/object_roles`;
|
||||
Rest.setUrl(basePath);
|
||||
role = Rest.get().then(({data}) => {
|
||||
return Rest.get().then(({data}) => {
|
||||
return data.results
|
||||
.filter(({name}) => name === i18n._('Member'))
|
||||
.map(({id}) => id)[0];
|
||||
});
|
||||
}
|
||||
return role;
|
||||
}],
|
||||
rolesToExclude: ['teamRoles', 'orgAdminRole', 'orgMemberRole', '$stateParams',
|
||||
function(teamRoles, orgAdminRole, orgMemberRole, $stateParams) {
|
||||
let roles = null;
|
||||
if ($stateParams.team_id) {
|
||||
roles = `${teamRoles},${orgAdminRole}`;
|
||||
} else if ($stateParams.organization_id) {
|
||||
roles = `${orgAdminRole},${orgMemberRole}`;
|
||||
}
|
||||
return roles;
|
||||
}],
|
||||
usersDataset: ['addPermissionsUsersList', 'QuerySet', '$stateParams', 'GetBasePath', 'rolesToExclude',
|
||||
function(list, qs, $stateParams, GetBasePath, rolesToExclude) {
|
||||
usersDataset: ['addPermissionsUsersList', 'QuerySet', '$stateParams', 'GetBasePath', 'roleToExclude',
|
||||
function(list, qs, $stateParams, GetBasePath, roleToExclude) {
|
||||
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
||||
if (rolesToExclude) {
|
||||
$stateParams.add_user_search.not__roles__in = rolesToExclude;
|
||||
$stateParams.add_user_search.is_superuser = 'false';
|
||||
if (roleToExclude) {
|
||||
$stateParams.add_user_search.not__roles = roleToExclude;
|
||||
}
|
||||
return qs.search(path, $stateParams.add_user_search);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user