This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
The following commit(s) were added to refs/heads/master by this push:
new d90a602 AIRAVATA-3073 Include admin groups in count, initial list
d90a602 is described below
commit d90a60203adf0429150f024cb4c733bce9690e6e
Author: Marcus Christie <[email protected]>
AuthorDate: Wed Jul 10 09:20:38 2019 -0400
AIRAVATA-3073 Include admin groups in count, initial list
---
.../dashboards/CredentialStoreDashboard.vue | 4 +--
.../django_airavata_api/js/models/SharedEntity.js | 4 +--
.../static/common/js/components/ShareButton.vue | 36 ++++++++++++++--------
.../common/js/components/SharedEntityEditor.vue | 2 +-
4 files changed, 28 insertions(+), 18 deletions(-)
diff --git
a/django_airavata/apps/admin/static/django_airavata_admin/src/components/dashboards/CredentialStoreDashboard.vue
b/django_airavata/apps/admin/static/django_airavata_admin/src/components/dashboards/CredentialStoreDashboard.vue
index 4b6bebe..78aa5e7 100644
---
a/django_airavata/apps/admin/static/django_airavata_admin/src/components/dashboards/CredentialStoreDashboard.vue
+++
b/django_airavata/apps/admin/static/django_airavata_admin/src/components/dashboards/CredentialStoreDashboard.vue
@@ -5,7 +5,7 @@
<b-table striped hover :fields="fields" :items="slotProps.items">
<template slot="sharing" slot-scope="data">
- <share-button :entity-id="data.item.token"
:disallow-editing-admin-groups="false" />
+ <share-button :entity-id="data.item.token"
:disallow-editing-admin-groups="false" :auto-add-admin-groups="false"/>
</template>
<template slot="persistedTime" slot-scope="data">
<human-date :date="data.value"/>
@@ -27,7 +27,7 @@
<b-table striped hover :fields="fields" :items="slotProps.items">
<template slot="sharing" slot-scope="data">
- <share-button :entity-id="data.item.token"
:disallow-editing-admin-groups="false"/>
+ <share-button :entity-id="data.item.token"
:disallow-editing-admin-groups="false" :auto-add-admin-groups="false"/>
</template>
<template slot="action" slot-scope="data">
<delete-link v-if="data.item.userHasWriteAccess"
@delete="deletePasswordCredential(data.item)">
diff --git
a/django_airavata/apps/api/static/django_airavata_api/js/models/SharedEntity.js
b/django_airavata/apps/api/static/django_airavata_api/js/models/SharedEntity.js
index 396e476..f7e1d57 100644
---
a/django_airavata/apps/api/static/django_airavata_api/js/models/SharedEntity.js
+++
b/django_airavata/apps/api/static/django_airavata_api/js/models/SharedEntity.js
@@ -56,7 +56,7 @@ export default class SharedEntity extends BaseModel {
);
}
- addGroup(group) {
+ addGroup({group, permissionType = ResourcePermissionType.READ}) {
if (!this.groupPermissions) {
this.groupPermissions = [];
}
@@ -64,7 +64,7 @@ export default class SharedEntity extends BaseModel {
this.groupPermissions.push(
new GroupPermission({
group: group,
- permissionType: ResourcePermissionType.READ
+ permissionType: permissionType
})
);
}
diff --git a/django_airavata/static/common/js/components/ShareButton.vue
b/django_airavata/static/common/js/components/ShareButton.vue
index 3f9fe42..e9bef78 100644
--- a/django_airavata/static/common/js/components/ShareButton.vue
+++ b/django_airavata/static/common/js/components/ShareButton.vue
@@ -65,6 +65,10 @@ export default {
type: Boolean,
default: true
},
+ autoAddAdminGroups: {
+ type: Boolean,
+ default: true
+ },
disallowEditingAdminGroups: {
type: Boolean,
default: true
@@ -79,6 +83,8 @@ export default {
parentSharedEntity: null,
sharedEntityCopy: null,
defaultGatewayUsersGroup: null,
+ adminsGroup: null,
+ readOnlyAdminsGroup: null,
users: null,
groups: null
};
@@ -121,9 +127,7 @@ export default {
},
filteredGroupPermissions: function() {
if (this.localSharedEntity && this.localSharedEntity.groupPermissions) {
- return this.disallowEditingAdminGroups
- ? this.localSharedEntity.nonAdminGroupPermissions
- : this.localSharedEntity.groupPermissions;
+ return this.localSharedEntity.groupPermissions;
} else {
return [];
}
@@ -131,10 +135,7 @@ export default {
combinedGroups() {
const groups = [];
groups.push(...this.filteredGroupPermissions.map(gp => gp.group));
- if (
- this.parentSharedEntity &&
- this.parentSharedEntity.groupPermissions
- ) {
+ if (this.parentSharedEntity && this.parentSharedEntity.groupPermissions)
{
groups.push(
...this.parentSharedEntity.groupPermissions.map(gp => gp.group)
);
@@ -191,15 +192,14 @@ export default {
if (
!this.entityId &&
(!this.sharedEntity || !this.sharedEntity.entityId) &&
- !this.defaultGatewayUsersGroup
+ (!this.defaultGatewayUsersGroup || !this.adminsGroup ||
!this.readOnlyAdminsGroup)
) {
promises.push(
services.GroupService.list({ limit: -1 }).then(groups => {
this.groups = groups;
- // If a new sharedEntity, automatically add the
defaultGatewayUsersGroup
- groups
- .filter(group => group.isDefaultGatewayUsersGroup)
- .forEach(group => (this.defaultGatewayUsersGroup = group));
+ this.defaultGatewayUsersGroup = groups.find(g =>
g.isDefaultGatewayUsersGroup);
+ this.adminsGroup = groups.find(g => g.isGatewayAdminsGroup);
+ this.readOnlyAdminsGroup = groups.find(g =>
g.isReadOnlyGatewayAdminsGroup);
})
);
}
@@ -222,7 +222,17 @@ export default {
!this.localSharedEntity.entityId &&
this.autoAddDefaultGatewayUsersGroup
) {
- this.localSharedEntity.addGroup(this.defaultGatewayUsersGroup);
+ this.localSharedEntity.addGroup({
+ group: this.defaultGatewayUsersGroup
+ });
+ this.emitUnsavedEvent();
+ }
+ if (!this.localSharedEntity.entityId && this.autoAddAdminGroups) {
+ this.localSharedEntity.addGroup({
+ group: this.adminsGroup,
+ permissionType: models.ResourcePermissionType.WRITE
+ });
+ this.localSharedEntity.addGroup({ group: this.readOnlyAdminsGroup });
this.emitUnsavedEvent();
}
});
diff --git a/django_airavata/static/common/js/components/SharedEntityEditor.vue
b/django_airavata/static/common/js/components/SharedEntityEditor.vue
index 609d01d..ab7f06b 100644
--- a/django_airavata/static/common/js/components/SharedEntityEditor.vue
+++ b/django_airavata/static/common/js/components/SharedEntityEditor.vue
@@ -291,7 +291,7 @@ export default {
suggestionSelected: function(suggestion) {
if (suggestion.type === "group") {
const group = this.groups.find(group => group.id === suggestion.id);
- this.data.addGroup(group);
+ this.data.addGroup({ group });
} else if (suggestion.type === "user") {
const user = this.users.find(
user => user.airavataInternalUserId === suggestion.id