address pr and product feedback

This commit is contained in:
John Mitchell
2019-03-19 12:08:36 -04:00
parent 52e86cf0c3
commit f3173dbe26
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 + var url = GetBasePath(selectedValue.type + "s") + selectedValue.id +
"/roles/"; "/roles/";
(selectedValue.roles || []) if (scope.onlyMemberRole === 'true') {
.map(function(role) { Rest.setUrl(url);
Rest.setUrl(url); requests.push(Rest.post({ "id": scope.roles.member_role.id }));
requests.push(Rest.post({ "id": role.value || 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: '=', teamsDataset: '=',
resourceData: '=', resourceData: '=',
withoutTeamPermissions: '@', withoutTeamPermissions: '@',
onlyMemberRole: '@',
title: '@' title: '@'
}, },
controller: controller, controller: controller,

View File

@@ -20,7 +20,7 @@
</div> </div>
<div class="AddPermissions-body"> <div class="AddPermissions-body">
<div class="AddPermissions-directions"> <div class="AddPermissions-directions">
<span class="AddPermissions-directionNumber"> <span class="AddPermissions-directionNumber" ng-hide='onlyMemberRole === "true"'>
1 1
</span> </span>
<div ng-hide='withoutTeamPermissions' translate> <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> <rbac-multiselect-list view="Teams" all-selected="allSelected" dataset="teamsDataset" object-type="object.type"></rbac-multiselect-list>
</div> </div>
<span ng-show="hasSelectedRows()"> <span ng-show="hasSelectedRows() && !onlyMemberRole">
<div class="AddPermissions-separator"></div> <div class="AddPermissions-separator"></div>
<div class="AddPermissions-directions"> <div class="AddPermissions-directions">
<span class="AddPermissions-directionNumber"> <span class="AddPermissions-directionNumber">
@@ -110,7 +110,7 @@
<button type="button" <button type="button"
class="btn btn-sm Form-saveButton" class="btn btn-sm Form-saveButton"
ng-click="updatePermissions()" ng-click="updatePermissions()"
ng-disabled="userRoleForm.$invalid || !allSelected || !hasSelectedRows()" translate> ng-disabled="(onlyMemberRole === 'true' && !hasSelectedRows()) && (userRoleForm.$invalid || !allSelected || !hasSelectedRows())" translate>
Save Save
</button> </button>
</div> </div>

View File

@@ -28,11 +28,9 @@ function($scope, $rootScope, ProcessErrors, GetBasePath, generateList,
if ($scope.addType === 'Administrators') { if ($scope.addType === 'Administrators') {
Rest.setUrl(GetBasePath('organizations') + `${$state.params.organization_id}/object_roles`); Rest.setUrl(GetBasePath('organizations') + `${$state.params.organization_id}/object_roles`);
Rest.get().then(({data}) => { Rest.get().then(({data}) => {
notAdminAlreadyParams.not__roles__in = data.results notAdminAlreadyParams.not__roles = data.results
.filter(({name}) => name === i18n._('Admin')) .filter(({name}) => name === i18n._('Admin'))
.map(({id}) => id) .map(({id}) => id)[0];
.join(',');
notAdminAlreadyParams.is_superuser = 'false';
init(); init();
}); });
} else { } else {

View File

@@ -591,83 +591,28 @@ function($injector, $stateExtender, $log, i18n) {
}, },
views: { views: {
[`modal@${formStateDefinition.name}`]: { [`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:{ ncyBreadcrumb:{
skip:true skip:true
}, },
resolve: { resolve: {
orgId: ['$stateParams', 'Rest', 'GetBasePath', function($stateParams, Rest, GetBasePath) { roleToExclude: ['$stateParams', 'Rest', 'GetBasePath', 'i18n', function($stateParams, Rest, GetBasePath, i18n) {
let id; const basePath = ($stateParams.team_id) ? GetBasePath('teams') + `${$stateParams.team_id}/object_roles` :
if ($stateParams.team_id) { GetBasePath('organizations') + `${$stateParams.organization_id}/object_roles`;
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`;
Rest.setUrl(basePath); Rest.setUrl(basePath);
roles = Rest.get().then(({data}) => { return 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 data.results return data.results
.filter(({name}) => name === i18n._('Member')) .filter(({name}) => name === i18n._('Member'))
.map(({id}) => id)[0]; .map(({id}) => id)[0];
}); });
}
return role;
}], }],
rolesToExclude: ['teamRoles', 'orgAdminRole', 'orgMemberRole', '$stateParams', usersDataset: ['addPermissionsUsersList', 'QuerySet', '$stateParams', 'GetBasePath', 'roleToExclude',
function(teamRoles, orgAdminRole, orgMemberRole, $stateParams) { function(list, qs, $stateParams, GetBasePath, roleToExclude) {
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) {
let path = GetBasePath(list.basePath) || GetBasePath(list.name); let path = GetBasePath(list.basePath) || GetBasePath(list.name);
if (rolesToExclude) { if (roleToExclude) {
$stateParams.add_user_search.not__roles__in = rolesToExclude; $stateParams.add_user_search.not__roles = roleToExclude;
$stateParams.add_user_search.is_superuser = 'false';
} }
return qs.search(path, $stateParams.add_user_search); return qs.search(path, $stateParams.add_user_search);
} }