]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Give superuser full doc permissions 2820/head
authorshamoon <4887959+shamoon@users.noreply.github.com>
Sat, 4 Mar 2023 03:50:06 +0000 (19:50 -0800)
committershamoon <4887959+shamoon@users.noreply.github.com>
Thu, 9 Mar 2023 03:07:06 +0000 (19:07 -0800)
src-ui/cypress/fixtures/ui_settings/settings.json
src-ui/cypress/fixtures/ui_settings/settings_restricted.json
src-ui/src/app/data/paperless-uisettings.ts
src-ui/src/app/services/permissions.service.ts
src-ui/src/app/services/settings.service.ts
src/documents/views.py

index bc86255fc0929fcd743526940f5868f12f0dc573..f552054df4d66704b5bb1711f715a0377b52d902 100644 (file)
@@ -1,6 +1,9 @@
 {
-    "user_id": 1,
-    "username": "admin",
+    "user": {
+        "id": 1,
+        "username": "admin",
+        "is_superuser": true
+    },
     "settings": {
         "language": "",
         "bulk_edit": {
index 4bc8a2d41dee96b18904a60ce3177ec1b41ce737..921d4274d6ee787a1da7c825020a12a0deca9583 100644 (file)
@@ -1,6 +1,9 @@
 {
-    "user_id": 1,
-    "username": "admin",
+    "user": {
+        "id": 1,
+        "username": "admin",
+        "is_superuser": false
+    },
     "settings": {
         "language": "",
         "bulk_edit": {
index 5f89708b51ab4bd85433e8f80e00fb073685ebc8..d2b4c583d5cec1e8eb005d89a4b461579f9050f0 100644 (file)
@@ -1,6 +1,7 @@
+import { PaperlessUser } from './paperless-user'
+
 export interface PaperlessUiSettings {
-  user_id: number
-  username: string
+  user: PaperlessUser
   settings: Object
   permissions: string[]
 }
index bca2037faf2e5c7f1ac3744574565a4f076f68c2..a7ba7638d93c096d4997d4a10df51ba6d4e27e89 100644 (file)
@@ -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(
index 5d8eb733f6bab35f11d7ca0b702ad73d63b93f95..4767162f653350d032b00016a42f3f87dd7739e3 100644 (file)
@@ -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
index 2ad6fd1cdfe0aac06e5ac347a91236fe44b72587..ca162e06d0fbcb84e585ef2336ba3fa33a9eb2ce 100644 (file)
@@ -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,
             },