File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ Introduced separate DTOs for permission groups(` PermissionGroupExtendedData ` , ` PermissionGroupData ` ) to conditionally load relationship data and prevent lazy loading errors
Original file line number Diff line number Diff line change @@ -28,4 +28,11 @@ class PermissionGroupData:
2828 role_id : uuid .UUID
2929 scope_id : ScopeId
3030
31+
32+ @dataclass
33+ class PermissionGroupExtendedData :
34+ id : uuid .UUID
35+ role_id : uuid .UUID
36+ scope_id : ScopeId
37+
3138 permissions : list [PermissionData ]
Original file line number Diff line number Diff line change 1212 ObjectPermissionCreateInputBeforeRoleCreation ,
1313 ObjectPermissionData ,
1414)
15- from .permission_group import PermissionGroupCreatorBeforeRoleCreation , PermissionGroupData
15+ from .permission_group import (
16+ PermissionGroupCreatorBeforeRoleCreation ,
17+ PermissionGroupExtendedData ,
18+ )
1619from .status import RoleStatus
1720from .types import EntityType , OperationType , RoleSource
1821
@@ -73,7 +76,7 @@ class RoleDataWithPermissions:
7376 source : RoleSource
7477 status : RoleStatus
7578
76- permission_groups : list [PermissionGroupData ]
79+ permission_groups : list [PermissionGroupExtendedData ]
7780 object_permissions : list [ObjectPermissionData ]
7881
7982 created_at : datetime
Original file line number Diff line number Diff line change 1010from ai .backend .manager .data .permission .permission_group import (
1111 PermissionGroupCreator ,
1212 PermissionGroupData ,
13+ PermissionGroupExtendedData ,
1314)
1415from ai .backend .manager .data .permission .types import (
1516 ScopeType ,
@@ -73,5 +74,12 @@ def to_data(self) -> PermissionGroupData:
7374 id = self .id ,
7475 role_id = self .role_id ,
7576 scope_id = ScopeId (scope_type = self .scope_type , scope_id = self .scope_id ),
77+ )
78+
79+ def to_extended_data (self ) -> PermissionGroupExtendedData :
80+ return PermissionGroupExtendedData (
81+ id = self .id ,
82+ role_id = self .role_id ,
83+ scope_id = ScopeId (scope_type = self .scope_type , scope_id = self .scope_id ),
7684 permissions = [permission .to_data () for permission in self .permission_rows ],
7785 )
Original file line number Diff line number Diff line change @@ -104,7 +104,7 @@ def to_data_with_permissions(self) -> RoleDataWithPermissions:
104104 updated_at = self .updated_at ,
105105 deleted_at = self .deleted_at ,
106106 description = self .description ,
107- permission_groups = [pg_row .to_data () for pg_row in self .permission_group_rows ],
107+ permission_groups = [pg_row .to_extended_data () for pg_row in self .permission_group_rows ],
108108 object_permissions = [op_row .to_data () for op_row in self .object_permission_rows ],
109109 )
110110
You can’t perform that action at this time.
0 commit comments