From 8fd398aeae221f8176299883500ba92f93389055 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 2 Apr 2024 14:00:58 +0200 Subject: [PATCH 01/19] feat(Context): add share logic for contexts Signed-off-by: Arthur Schiwon --- lib/Service/PermissionsService.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/Service/PermissionsService.php b/lib/Service/PermissionsService.php index 5bef54b46..a73c6b86d 100644 --- a/lib/Service/PermissionsService.php +++ b/lib/Service/PermissionsService.php @@ -164,6 +164,14 @@ public function canAccessContextById(int $contextId, ?string $userId = null): bo } } + try { + $this->contextMapper->findById($contextId, $userId ?? $this->userId); + return true; + } catch (NotFoundError $e) { + return false; + } + } + public function canAccessView(View $view, ?string $userId = null): bool { return $this->canAccessNodeById(Application::NODE_TYPE_VIEW, $view->getId(), $userId); } From b51977652dfb22832e8002101d6e70e0423feabf Mon Sep 17 00:00:00 2001 From: Cleopatra Enjeck M Date: Fri, 5 Apr 2024 07:49:31 +0100 Subject: [PATCH 02/19] feat: UI elements Signed-off-by: Cleopatra Enjeck M --- .../ncContextResource/NcContextResource.vue | 10 + .../ResourceSharePermissions.vue | 106 ++++++++++ .../ncContextResource/ResourceSharees.vue | 187 ++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 src/shared/components/ncContextResource/ResourceSharePermissions.vue create mode 100644 src/shared/components/ncContextResource/ResourceSharees.vue diff --git a/src/shared/components/ncContextResource/NcContextResource.vue b/src/shared/components/ncContextResource/NcContextResource.vue index 9bb0ad7a9..1b2b78a2a 100644 --- a/src/shared/components/ncContextResource/NcContextResource.vue +++ b/src/shared/components/ncContextResource/NcContextResource.vue @@ -3,6 +3,8 @@
+ +
@@ -11,11 +13,15 @@ import { mapGetters } from 'vuex' import ResourceForm from './ResourceForm.vue' import ResourceList from './ResourceList.vue' +import ResourceSharePermissions from './ResourceSharePermissions.vue' +import ResourceSharees from './ResourceSharees.vue' export default { components: { ResourceForm, ResourceList, + ResourceSharePermissions, + ResourceSharees, }, props: { @@ -29,6 +35,10 @@ export default { type: Array, default: () => ([]), }, + sharees: { + type: Array, + default: () => ([]), + }, }, data() { diff --git a/src/shared/components/ncContextResource/ResourceSharePermissions.vue b/src/shared/components/ncContextResource/ResourceSharePermissions.vue new file mode 100644 index 000000000..0f8b51267 --- /dev/null +++ b/src/shared/components/ncContextResource/ResourceSharePermissions.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/shared/components/ncContextResource/ResourceSharees.vue b/src/shared/components/ncContextResource/ResourceSharees.vue new file mode 100644 index 000000000..74042fd0b --- /dev/null +++ b/src/shared/components/ncContextResource/ResourceSharees.vue @@ -0,0 +1,187 @@ + + + + + From a5127f4c1e98a4bfa29d496cf794623a907ff79d Mon Sep 17 00:00:00 2001 From: Cleopatra Enjeck M Date: Mon, 8 Apr 2024 07:22:31 +0100 Subject: [PATCH 03/19] enh: dont show already selected sharing users Signed-off-by: Cleopatra Enjeck M --- src/modules/modals/EditContext.vue | 2 +- .../ncContextResource/NcContextResource.vue | 19 ++++++++++++++++++- .../ncContextResource/ResourceSharees.vue | 19 ++++++++++++------- 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/modules/modals/EditContext.vue b/src/modules/modals/EditContext.vue index b6df8bc71..3db4d7a57 100644 --- a/src/modules/modals/EditContext.vue +++ b/src/modules/modals/EditContext.vue @@ -125,7 +125,7 @@ export default { this.reset() this.$emit('close') }, - // TODO show edited changes if we're currently viewing the active context + // TODO show edited changes without having to reload async submit() { if (this.title === '') { showError(t('tables', 'Cannot update context. Title is missing.')) diff --git a/src/shared/components/ncContextResource/NcContextResource.vue b/src/shared/components/ncContextResource/NcContextResource.vue index 1b2b78a2a..1c120942c 100644 --- a/src/shared/components/ncContextResource/NcContextResource.vue +++ b/src/shared/components/ncContextResource/NcContextResource.vue @@ -3,7 +3,7 @@
- +
@@ -45,6 +45,23 @@ export default { return { loading: false, contextResource: this.resources, + // currentSharees: [...this.sharees], + currentSharees: [ + { + user: 'user2', + displayName: 'user2', + icon: 'icon-user', + isUser: true, + key: 'users-user2', + }, + { + user: 'user1', + displayName: 'user1', + icon: 'icon-user', + isUser: true, + key: 'users-user1', + }, + ], } }, diff --git a/src/shared/components/ncContextResource/ResourceSharees.vue b/src/shared/components/ncContextResource/ResourceSharees.vue index 74042fd0b..698bba79f 100644 --- a/src/shared/components/ncContextResource/ResourceSharees.vue +++ b/src/shared/components/ncContextResource/ResourceSharees.vue @@ -1,8 +1,7 @@