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
commit 5ff4acf771b15b49f2e0a81eac08bfe94466b680 Author: Marcus Christie <[email protected]> AuthorDate: Tue May 7 12:55:13 2019 -0400 AIRAVATA-3030 Add inherited parent permissions to tooltip, count --- .../static/common/js/components/ShareButton.vue | 65 +++++++++++++++++----- .../common/js/components/SharedEntityEditor.vue | 4 +- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/django_airavata/static/common/js/components/ShareButton.vue b/django_airavata/static/common/js/components/ShareButton.vue index f9eb6f9..6380955 100644 --- a/django_airavata/static/common/js/components/ShareButton.vue +++ b/django_airavata/static/common/js/components/ShareButton.vue @@ -105,16 +105,35 @@ export default { ); }, usersCount: function() { - return this.localSharedEntity && this.localSharedEntity.userPermissions - ? this.localSharedEntity.userPermissions.length - : 0; + return this.combinedUsers.length; }, userNames: function() { - return this.localSharedEntity && this.localSharedEntity.userPermissions - ? this.localSharedEntity.userPermissions.map( - userPerm => userPerm.user.firstName + " " + userPerm.user.lastName - ) - : null; + return this.combinedUsers.map(u => u.firstName + " " + u.lastName); + }, + combinedUsers() { + const users = []; + if (this.localSharedEntity && this.localSharedEntity.userPermissions) { + users.push( + ...this.localSharedEntity.userPermissions.map(up => up.user) + ); + } + if (this.parentSharedEntity) { + // Only add in inherited permissions if we haven't saved yet because + // once saved the inherited permissions are already copied in + if ( + this.localSharedEntity && + !this.localSharedEntity.entityId && + this.parentSharedEntity.userPermissions + ) { + users.push( + ...this.parentSharedEntity.userPermissions.map(up => up.user) + ); + } + if (this.parentEntityOwner) { + users.push(this.parentEntityOwner); + } + } + return users; }, filteredGroupPermissions: function() { if (this.localSharedEntity && this.localSharedEntity.groupPermissions) { @@ -125,13 +144,28 @@ export default { return []; } }, + combinedGroups() { + const groups = []; + groups.push(...this.filteredGroupPermissions.map(gp => gp.group)); + // Only add in inherited permissions if we haven't saved yet because + // once saved the inherited permissions are already copied in + if ( + this.localSharedEntity && + !this.localSharedEntity.entityId && + this.parentSharedEntity && + this.parentSharedEntity.groupPermissions + ) { + groups.push( + ...this.parentSharedEntity.groupPermissions.map(gp => gp.group) + ); + } + return groups; + }, groupNames: function() { - return this.filteredGroupPermissions.map( - groupPerm => groupPerm.group.name - ); + return this.combinedGroups.map(g => g.name); }, groupsCount: function() { - return this.filteredGroupPermissions.length; + return this.combinedGroups.length; }, totalCount: function() { return this.usersCount + this.groupsCount; @@ -151,7 +185,12 @@ export default { ); }, parentEntityOwner() { - return this.parentSharedEntity && this.parentSharedEntity.owner; + // Only show the parent entity owner when not the same as current user + if (this.parentSharedEntity && !this.parentSharedEntity.isOwner) { + return this.parentSharedEntity.owner; + } else { + return null; + } } }, methods: { diff --git a/django_airavata/static/common/js/components/SharedEntityEditor.vue b/django_airavata/static/common/js/components/SharedEntityEditor.vue index be778ff..fb0ba9c 100644 --- a/django_airavata/static/common/js/components/SharedEntityEditor.vue +++ b/django_airavata/static/common/js/components/SharedEntityEditor.vue @@ -173,9 +173,7 @@ export default { ]; }, usersCount: function() { - return this.data && this.data.userPermissions - ? this.data.userPermissions.length - : 0; + return this.sortedUserPermissionsData.length; }, sortedUserPermissionsData: function() { const userPermsCopy = this.data.userPermissions
