From 2c4f16fe5c737a93aad53978d2d5b124f0320e04 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Fri, 13 Jan 2023 09:16:18 +0100 Subject: [PATCH 1/5] Rename user role types --- packages/web-pkg/src/services/permissionManager.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/web-pkg/src/services/permissionManager.ts b/packages/web-pkg/src/services/permissionManager.ts index fcd11d1422f..6a21477122b 100644 --- a/packages/web-pkg/src/services/permissionManager.ts +++ b/packages/web-pkg/src/services/permissionManager.ts @@ -13,18 +13,18 @@ interface Permission { type: string } } -export enum RoleName { +export enum UserRoleName { Admin = 'admin', SpaceAdmin = 'spaceadmin', User = 'user', Guest = 'guest' } -interface Role { - name: RoleName +interface UserRole { + name: UserRoleName settings: Array } interface User { - role: Role + role: UserRole } export class PermissionManager { @@ -35,11 +35,11 @@ export class PermissionManager { } public hasUserManagement() { - return this.user.role?.name === RoleName.Admin + return this.user.role?.name === UserRoleName.Admin } public hasSpaceManagement() { - return [RoleName.Admin, RoleName.SpaceAdmin].includes(this.user.role?.name) + return [UserRoleName.Admin, UserRoleName.SpaceAdmin].includes(this.user.role?.name) } public canEditSpaceQuota() { From 2af6a45d964db7ef5739f414e943559bf87074a8 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Fri, 13 Jan 2023 09:16:40 +0100 Subject: [PATCH 2/5] Fix sidebar loading for disabled spaces --- .../src/components/sideBar/Spaces/Details/SpaceDetails.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-pkg/src/components/sideBar/Spaces/Details/SpaceDetails.vue b/packages/web-pkg/src/components/sideBar/Spaces/Details/SpaceDetails.vue index be824250e61..e66dd9ac4e8 100644 --- a/packages/web-pkg/src/components/sideBar/Spaces/Details/SpaceDetails.vue +++ b/packages/web-pkg/src/components/sideBar/Spaces/Details/SpaceDetails.vue @@ -54,7 +54,7 @@ - + From d7a87030921357a0dfb26647338a6712a90e662a Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Fri, 13 Jan 2023 09:16:58 +0100 Subject: [PATCH 3/5] Fix quota reactivity when disabling/enabling spaces --- packages/web-pkg/src/mixins/spaces/disable.ts | 6 ++++-- packages/web-pkg/src/mixins/spaces/restore.ts | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/web-pkg/src/mixins/spaces/disable.ts b/packages/web-pkg/src/mixins/spaces/disable.ts index 6647b73427e..caad653c788 100644 --- a/packages/web-pkg/src/mixins/spaces/disable.ts +++ b/packages/web-pkg/src/mixins/spaces/disable.ts @@ -1,5 +1,6 @@ import { mapActions, mapGetters, mapMutations, mapState } from 'vuex' import { clientService } from 'web-pkg/src/services' +import { SpaceResource } from 'web-client' export default { computed: { @@ -64,15 +65,16 @@ export default { this.createModal(modal) }, - $_disable_disableSpace(space) { + $_disable_disableSpace(space: SpaceResource) { const accessToken = this.$store.getters['runtime/auth/accessToken'] const graphClient = clientService.graphAuthenticated(this.configuration.server, accessToken) return graphClient.drives - .deleteDrive(space.id) + .deleteDrive(space.id.toString()) .then(() => { this.hideModal() if (this.$router.currentRoute.name === 'admin-settings-spaces') { space.disabled = true + space.spaceQuota = { total: space.spaceQuota.total } } this.UPDATE_SPACE_FIELD({ id: space.id, diff --git a/packages/web-pkg/src/mixins/spaces/restore.ts b/packages/web-pkg/src/mixins/spaces/restore.ts index 556f42cdce1..d7d91b34a44 100644 --- a/packages/web-pkg/src/mixins/spaces/restore.ts +++ b/packages/web-pkg/src/mixins/spaces/restore.ts @@ -1,5 +1,6 @@ import { mapActions, mapGetters, mapMutations, mapState } from 'vuex' import { clientService } from 'web-pkg/src/services' +import { SpaceResource } from 'web-client' export default { computed: { @@ -62,12 +63,12 @@ export default { this.createModal(modal) }, - $_restore_restoreSpace(space) { + $_restore_restoreSpace(space: SpaceResource) { const accessToken = this.$store.getters['runtime/auth/accessToken'] const graphClient = clientService.graphAuthenticated(this.configuration.server, accessToken) return graphClient.drives .updateDrive( - space.id, + space.id.toString(), { name: space.name }, { headers: { @@ -75,10 +76,11 @@ export default { } } ) - .then(() => { + .then((updatedSpace) => { this.hideModal() if (this.$router.currentRoute.name === 'admin-settings-spaces') { space.disabled = false + space.spaceQuota = updatedSpace.data.quota } this.UPDATE_SPACE_FIELD({ id: space.id, From 01bee82a19f44d6495ec998865da9b1224702bd3 Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Fri, 13 Jan 2023 09:17:46 +0100 Subject: [PATCH 4/5] Add PR link to changelog --- changelog/unreleased/enhancement-spaces-list-in-admin-settings | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog/unreleased/enhancement-spaces-list-in-admin-settings b/changelog/unreleased/enhancement-spaces-list-in-admin-settings index c191e002d8a..eebc28ad39e 100644 --- a/changelog/unreleased/enhancement-spaces-list-in-admin-settings +++ b/changelog/unreleased/enhancement-spaces-list-in-admin-settings @@ -8,4 +8,5 @@ https://github.com/owncloud/web/pull/8190 https://github.com/owncloud/web/pull/8192 https://github.com/owncloud/web/pull/8199 https://github.com/owncloud/web/pull/8224 +https://github.com/owncloud/web/pull/8229 https://github.com/owncloud/web/issues/8219 From 38e7fdb68930a86e714da2f7e496385a02ae94bb Mon Sep 17 00:00:00 2001 From: Jannik Stehle Date: Fri, 13 Jan 2023 09:22:22 +0100 Subject: [PATCH 5/5] Fix unit tests --- packages/web-pkg/tests/unit/mixins/spaces/disable.spec.ts | 4 ++-- packages/web-pkg/tests/unit/mixins/spaces/restore.spec.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/web-pkg/tests/unit/mixins/spaces/disable.spec.ts b/packages/web-pkg/tests/unit/mixins/spaces/disable.spec.ts index c7864847dc3..2088567e7c7 100644 --- a/packages/web-pkg/tests/unit/mixins/spaces/disable.spec.ts +++ b/packages/web-pkg/tests/unit/mixins/spaces/disable.spec.ts @@ -87,7 +87,7 @@ describe('disable', () => { graphMock.drives.deleteDrive.mockResolvedValue(mockAxiosResolve()) const { wrapper } = getWrapper(graphMock) const hideModalStub = jest.spyOn(wrapper.vm, 'hideModal') - await wrapper.vm.$_disable_disableSpace(1) + await wrapper.vm.$_disable_disableSpace({ id: 1 }) expect(hideModalStub).toHaveBeenCalledTimes(1) }) @@ -98,7 +98,7 @@ describe('disable', () => { graphMock.drives.deleteDrive.mockRejectedValue(new Error()) const { wrapper } = getWrapper(graphMock) const showMessageStub = jest.spyOn(wrapper.vm, 'showMessage') - await wrapper.vm.$_disable_disableSpace(1) + await wrapper.vm.$_disable_disableSpace({ id: 1 }) expect(showMessageStub).toHaveBeenCalledTimes(1) }) diff --git a/packages/web-pkg/tests/unit/mixins/spaces/restore.spec.ts b/packages/web-pkg/tests/unit/mixins/spaces/restore.spec.ts index e5991b39863..99344bc86c7 100644 --- a/packages/web-pkg/tests/unit/mixins/spaces/restore.spec.ts +++ b/packages/web-pkg/tests/unit/mixins/spaces/restore.spec.ts @@ -88,7 +88,7 @@ describe('restore', () => { graphMock.drives.updateDrive.mockResolvedValue(mockAxiosResolve()) const { wrapper } = getWrapper(graphMock) const hideModalStub = jest.spyOn(wrapper.vm, 'hideModal') - await wrapper.vm.$_restore_restoreSpace(1, 'renamed space') + await wrapper.vm.$_restore_restoreSpace({ id: 1 }, 'renamed space') expect(hideModalStub).toHaveBeenCalledTimes(1) }) @@ -99,7 +99,7 @@ describe('restore', () => { graphMock.drives.updateDrive.mockRejectedValue(new Error()) const { wrapper } = getWrapper(graphMock) const showMessageStub = jest.spyOn(wrapper.vm, 'showMessage') - await wrapper.vm.$_restore_restoreSpace(1) + await wrapper.vm.$_restore_restoreSpace({ id: 1 }) expect(showMessageStub).toHaveBeenCalledTimes(1) })