mirror of
https://github.com/ansible/awx.git
synced 2026-03-03 01:38:50 -03:30
Merge pull request #282 from mabashian/5092-cred-permissions
Credential permissions fixes
This commit is contained in:
@@ -149,10 +149,10 @@ function LegacyCredentialsService (pathService) {
|
|||||||
'QuerySet',
|
'QuerySet',
|
||||||
'$stateParams',
|
'$stateParams',
|
||||||
'GetBasePath',
|
'GetBasePath',
|
||||||
(list, qs, $stateParams, GetBasePath) => {
|
'resourceData',
|
||||||
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
(list, qs, $stateParams, GetBasePath, resourceData) => {
|
||||||
|
let path = resourceData.data.organization ? GetBasePath('organizations') + `${resourceData.data.organization}/users` : ((list.basePath) || GetBasePath(list.name));
|
||||||
return qs.search(path, $stateParams.user_search);
|
return qs.search(path, $stateParams.user_search);
|
||||||
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
teamsDataset: [
|
teamsDataset: [
|
||||||
@@ -160,9 +160,19 @@ function LegacyCredentialsService (pathService) {
|
|||||||
'QuerySet',
|
'QuerySet',
|
||||||
'$stateParams',
|
'$stateParams',
|
||||||
'GetBasePath',
|
'GetBasePath',
|
||||||
(list, qs, $stateParams, GetBasePath) => {
|
'resourceData',
|
||||||
|
(list, qs, $stateParams, GetBasePath, resourceData) => {
|
||||||
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
||||||
return qs.search(path, $stateParams.team_search);
|
|
||||||
|
if(!resourceData.data.organization) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$stateParams[`${list.iterator}_search`].organization = resourceData.data.organization;
|
||||||
|
return qs.search(path, $stateParams.team_search);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
resourceData: ['CredentialModel', '$stateParams', (Credential, $stateParams) => {
|
resourceData: ['CredentialModel', '$stateParams', (Credential, $stateParams) => {
|
||||||
@@ -198,7 +208,8 @@ function LegacyCredentialsService (pathService) {
|
|||||||
teams-dataset='$resolve.teamsDataset'
|
teams-dataset='$resolve.teamsDataset'
|
||||||
selected='allSelected'
|
selected='allSelected'
|
||||||
resource-data='$resolve.resourceData'
|
resource-data='$resolve.resourceData'
|
||||||
title='Add Users / Teams'>
|
without-team-permissions='{{$resolve.resourceData.data.organization ? null : true}}'
|
||||||
|
title='{{$resolve.resourceData.data.organization ? "Add Users / Teams" : "Add Users"}}'>
|
||||||
</add-rbac-resource>`
|
</add-rbac-resource>`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -313,15 +313,58 @@ function($injector, $stateExtender, $log, i18n) {
|
|||||||
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
credentialsDataset: ['CredentialList', 'QuerySet', '$stateParams', 'GetBasePath', 'resourceData',
|
credentialsDataset: ['CredentialList', 'QuerySet', '$stateParams', 'GetBasePath', 'resourceData', 'Rest', '$q',
|
||||||
function(list, qs, $stateParams, GetBasePath, resourceData) {
|
function(list, qs, $stateParams, GetBasePath, resourceData, Rest, $q) {
|
||||||
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
let path = GetBasePath(list.basePath) || GetBasePath(list.name);
|
||||||
|
|
||||||
if(resourceData.data.type === "team") {
|
if(resourceData.data.type === "team") {
|
||||||
$stateParams[`${list.iterator}_search`].organization = resourceData.data.organization;
|
$stateParams[`${list.iterator}_search`].organization = resourceData.data.organization;
|
||||||
}
|
}
|
||||||
|
|
||||||
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
if(resourceData.data.type === "user") {
|
||||||
|
|
||||||
|
let resolve = $q.defer();
|
||||||
|
|
||||||
|
let getMoreOrgs = function(data, arr) {
|
||||||
|
Rest.setUrl(data.next);
|
||||||
|
Rest.get()
|
||||||
|
.then(function (resData) {
|
||||||
|
if (data.next) {
|
||||||
|
getMoreOrgs(resData.data, arr.concat(resData.data.results));
|
||||||
|
} else {
|
||||||
|
resolve.resolve(arr.concat(resData.data.results));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Rest.setUrl(GetBasePath('users') + `${resourceData.data.id}/organizations?page_size=200`);
|
||||||
|
Rest.get()
|
||||||
|
.then(function(resData) {
|
||||||
|
if (resData.data.next) {
|
||||||
|
getMoreOrgs(resData.data, resData.data.results);
|
||||||
|
} else {
|
||||||
|
resolve.resolve(resData.data.results);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return resolve.promise.then(function (organizations) {
|
||||||
|
if(organizations && organizations.length > 0) {
|
||||||
|
let orgIds = _.map(organizations, function(organization){
|
||||||
|
return organization.id;
|
||||||
|
});
|
||||||
|
|
||||||
|
$stateParams[`${list.iterator}_search`].or__organization = 'null';
|
||||||
|
$stateParams[`${list.iterator}_search`].or__organization__in = orgIds.join();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
organizationsDataset: ['OrganizationList', 'QuerySet', '$stateParams', 'GetBasePath',
|
organizationsDataset: ['OrganizationList', 'QuerySet', '$stateParams', 'GetBasePath',
|
||||||
|
|||||||
Reference in New Issue
Block a user