address pr and product feedback

This commit is contained in:
John Mitchell 2019-03-19 12:08:36 -04:00
parent 52e86cf0c3
commit f3173dbe26
No known key found for this signature in database
GPG Key ID: FE6A9B5BD4EB5C94
5 changed files with 25 additions and 76 deletions

View File

@ -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 }));
});
}
});
});

View File

@ -17,6 +17,7 @@ export default ['templateUrl', '$state',
teamsDataset: '=',
resourceData: '=',
withoutTeamPermissions: '@',
onlyMemberRole: '@',
title: '@'
},
controller: controller,

View File

@ -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>

View File

@ -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 {

View File

@ -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);
}