Skip to content

Commit ca6f106

Browse files
committed
[DOP-28389] Improve group member role check
1 parent 13fe55a commit ca6f106

2 files changed

Lines changed: 34 additions & 32 deletions

File tree

syncmaster/db/repositories/queue.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,13 @@ async def get_group_permission(self, user: User, group_id: int) -> Permission:
111111
)
112112

113113
user_group = await self._session.scalar(group_role_query)
114-
match user_group:
115-
case None:
116-
return Permission.NONE
117-
case GroupMemberRole.Maintainer:
118-
return Permission.DELETE
119-
case _:
120-
return Permission.READ
114+
if not user_group:
115+
return Permission.NONE
116+
117+
if user_group == GroupMemberRole.Maintainer:
118+
return Permission.DELETE
119+
120+
return Permission.READ
121121

122122
async def get_resource_permission(self, user: User, resource_id: int) -> Permission:
123123
"""
@@ -162,13 +162,13 @@ async def get_resource_permission(self, user: User, resource_id: int) -> Permiss
162162
)
163163

164164
user_group = await self._session.scalar(group_role_query)
165-
match user_group:
166-
case None:
167-
return Permission.NONE
168-
case GroupMemberRole.Maintainer:
169-
return Permission.DELETE
170-
case _:
171-
return Permission.READ
165+
if not user_group:
166+
return Permission.NONE
167+
168+
if user_group == GroupMemberRole.Maintainer:
169+
return Permission.DELETE
170+
171+
return Permission.READ
172172

173173
def _raise_error(self, err: DBAPIError) -> NoReturn:
174174
constraint = err.__cause__.__cause__.constraint_name # type: ignore[arg-type, union-attr]

syncmaster/db/repositories/repository_with_owner.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,16 @@ async def get_resource_permission(self, user: User, resource_id: int) -> Permiss
5353
)
5454

5555
user_group = await self._session.scalar(group_role_query)
56-
match user_group:
57-
case None:
58-
return Permission.NONE
59-
case GroupMemberRole.Maintainer:
60-
return Permission.DELETE
61-
case GroupMemberRole.Developer:
62-
return Permission.WRITE
63-
case _:
64-
return Permission.READ
56+
if not user_group:
57+
return Permission.NONE
58+
59+
if user_group == GroupMemberRole.Maintainer:
60+
return Permission.DELETE
61+
62+
if user_group == GroupMemberRole.Developer:
63+
return Permission.WRITE
64+
65+
return Permission.READ
6566

6667
async def get_group_permission(self, user: User, group_id: int) -> Permission:
6768
"""Method for determining CRUD permissions in the specified group"""
@@ -92,12 +93,13 @@ async def get_group_permission(self, user: User, group_id: int) -> Permission:
9293
)
9394

9495
user_group = await self._session.scalar(group_role_query)
95-
match user_group:
96-
case None:
97-
return Permission.NONE
98-
case GroupMemberRole.Maintainer:
99-
return Permission.DELETE
100-
case GroupMemberRole.Developer:
101-
return Permission.WRITE
102-
case _:
103-
return Permission.READ
96+
if not user_group:
97+
return Permission.NONE
98+
99+
if user_group == GroupMemberRole.Maintainer:
100+
return Permission.DELETE
101+
102+
if user_group == GroupMemberRole.Developer:
103+
return Permission.WRITE
104+
105+
return Permission.READ

0 commit comments

Comments
 (0)