]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
fix object creation, user serialization, user creation
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Fri, 9 Dec 2022 11:36:24 +0000 (03:36 -0800)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Fri, 9 Dec 2022 12:59:15 +0000 (04:59 -0800)
src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts
src-ui/src/app/data/object-with-permissions.ts
src-ui/src/app/services/permissions.service.ts
src/documents/serialisers.py

index c3add99cd6bb51db217769cc4d8c6ecab9f47be4..0a87e33aa67f3b01dd76ab5bf95290931186f3de 100644 (file)
@@ -52,8 +52,8 @@ export class UserEditDialogComponent
       last_name: new FormControl(''),
       is_active: new FormControl(true),
       is_superuser: new FormControl(false),
-      groups: new FormControl(null),
-      user_permissions: new FormControl(null),
+      groups: new FormControl([]),
+      user_permissions: new FormControl([]),
     })
   }
 
index dce0cc02ab8dcc7c749397fdf31c5c202e6a257c..86f5f7394a097094bb1115b263303a7d373e005b 100644 (file)
@@ -13,7 +13,7 @@ export interface PermissionsObject {
 }
 
 export interface ObjectWithPermissions extends ObjectWithId {
-  owner?: PaperlessUser
+  owner?: number
 
   permissions?: PermissionsObject
 }
index b9bad0d96625697cc313ce4b94860b798de84868..e2c280b355e005ef407e3679c1a2c860dd278287 100644 (file)
@@ -45,7 +45,7 @@ export class PermissionsService {
   }
 
   public currentUserOwnsObject(object: ObjectWithPermissions): boolean {
-    return !object || !object.owner || object.owner.id === this.currentUser.id
+    return !object || !object.owner || object.owner === this.currentUser.id
   }
 
   public currentUserHasObjectPermissions(
index 09cd4d9f64c167ffc5b4390b0b3d06b0c1e2bd8d..2f02050312c0efc6a46fd7b9afbeeac2b43c7ee4 100644 (file)
@@ -172,9 +172,12 @@ class OwnedObjectSerializer(serializers.ModelSerializer, SetPermissionsMixin):
             "owner" not in validated_data or validated_data["owner"] is None
         ):
             validated_data["owner"] = self.user
-        instance = super().create(validated_data)
+        permissions = None
         if "set_permissions" in validated_data:
-            self._set_permissions(validated_data["set_permissions"], instance)
+            permissions = validated_data.pop("set_permissions")
+        instance = super().create(validated_data)
+        if permissions is not None:
+            self._set_permissions(permissions, instance)
         return instance
 
     def update(self, instance, validated_data):
@@ -343,6 +346,12 @@ class DocumentSerializer(DynamicFieldsModelSerializer, OwnedObjectSerializer):
     archived_file_name = SerializerMethodField()
     created_date = serializers.DateField(required=False)
 
+    owner = serializers.PrimaryKeyRelatedField(
+        queryset=User.objects.all(),
+        required=False,
+        allow_null=True,
+    )
+
     def get_original_file_name(self, obj):
         return obj.get_public_filename()