From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Sat, 4 Mar 2023 03:50:06 +0000 (-0800) Subject: Give superuser full doc permissions X-Git-Tag: v1.14.0-beta.rc1~49^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2820%2Fhead;p=thirdparty%2Fpaperless-ngx.git Give superuser full doc permissions --- diff --git a/src-ui/cypress/fixtures/ui_settings/settings.json b/src-ui/cypress/fixtures/ui_settings/settings.json index bc86255fc0..f552054df4 100644 --- a/src-ui/cypress/fixtures/ui_settings/settings.json +++ b/src-ui/cypress/fixtures/ui_settings/settings.json @@ -1,6 +1,9 @@ { - "user_id": 1, - "username": "admin", + "user": { + "id": 1, + "username": "admin", + "is_superuser": true + }, "settings": { "language": "", "bulk_edit": { diff --git a/src-ui/cypress/fixtures/ui_settings/settings_restricted.json b/src-ui/cypress/fixtures/ui_settings/settings_restricted.json index 4bc8a2d41d..921d4274d6 100644 --- a/src-ui/cypress/fixtures/ui_settings/settings_restricted.json +++ b/src-ui/cypress/fixtures/ui_settings/settings_restricted.json @@ -1,6 +1,9 @@ { - "user_id": 1, - "username": "admin", + "user": { + "id": 1, + "username": "admin", + "is_superuser": false + }, "settings": { "language": "", "bulk_edit": { diff --git a/src-ui/src/app/data/paperless-uisettings.ts b/src-ui/src/app/data/paperless-uisettings.ts index 5f89708b51..d2b4c583d5 100644 --- a/src-ui/src/app/data/paperless-uisettings.ts +++ b/src-ui/src/app/data/paperless-uisettings.ts @@ -1,6 +1,7 @@ +import { PaperlessUser } from './paperless-user' + export interface PaperlessUiSettings { - user_id: number - username: string + user: PaperlessUser settings: Object permissions: string[] } diff --git a/src-ui/src/app/services/permissions.service.ts b/src-ui/src/app/services/permissions.service.ts index bca2037faf..a7ba7638d9 100644 --- a/src-ui/src/app/services/permissions.service.ts +++ b/src-ui/src/app/services/permissions.service.ts @@ -46,7 +46,12 @@ export class PermissionsService { } public currentUserOwnsObject(object: ObjectWithPermissions): boolean { - return !object || !object.owner || object.owner === this.currentUser.id + return ( + !object || + !object.owner || + this.currentUser.is_superuser || + object.owner === this.currentUser.id + ) } public currentUserHasObjectPermissions( diff --git a/src-ui/src/app/services/settings.service.ts b/src-ui/src/app/services/settings.service.ts index 5d8eb733f6..4767162f65 100644 --- a/src-ui/src/app/services/settings.service.ts +++ b/src-ui/src/app/services/settings.service.ts @@ -75,10 +75,7 @@ export class SettingsService { // to update lang cookie if (this.settings['language']?.length) this.setLanguage(this.settings['language']) - this.currentUser = { - id: uisettings['user_id'], - username: uisettings['username'], - } + this.currentUser = uisettings.user this.permissionsService.initialize( uisettings.permissions, this.currentUser diff --git a/src/documents/views.py b/src/documents/views.py index 2ad6fd1cdf..ca162e06d0 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -931,8 +931,11 @@ class UiSettingsView(GenericAPIView): roles = map(lambda perm: re.sub(r"^\w+.", "", perm), user.get_all_permissions()) return Response( { - "user_id": user.id, - "username": user.username, + "user": { + "id": user.id, + "username": user.username, + "is_superuser": user.is_superuser, + }, "settings": ui_settings, "permissions": roles, },