Эх сурвалжийг харах

refactor(services): adapt to renamed Moderator can_manage_posts flag, update log messages

Librellium 2 өдөр өмнө
parent
commit
be6da8eacd

+ 2 - 2
anonflow/services/moderator/permissions.py

@@ -4,7 +4,7 @@ from enum import Enum
 
 @dataclass
 class ModeratorPermissions:
-    can_approve_posts: bool = False
+    can_manage_posts: bool = False
     can_manage_bans: bool = False
     can_manage_moderators: bool = False
 
@@ -13,6 +13,6 @@ class ModeratorPermissions:
 
 
 class ModeratorPermission(str, Enum):
-    APPROVE_POSTS = "can_approve_posts"
+    MANAGE_POSTS = "can_manage_posts"
     MANAGE_BANS = "can_manage_bans"
     MANAGE_MODERATORS = "can_manage_moderators"

+ 12 - 12
anonflow/services/moderator/service.py

@@ -27,7 +27,7 @@ class ModeratorService:
     def _assert_not_self(actor_user_id: int, user_id: int):
         if actor_user_id == user_id:
             raise SelfActionError(
-                f"Moderator user_id={actor_user_id} cannot perform this action on themselves. Target user_id={user_id}."
+                f"Moderator user_id={actor_user_id} cannot perform this action on themselves, target user_id={user_id}"
             )
 
     async def add(self, actor_user_id: int, user_id: int):
@@ -40,10 +40,10 @@ class ModeratorService:
                     await self._moderator_repository.add(session, user_id)
                 else:
                     raise ModeratorPermissionError(
-                        f"Moderator user_id={actor_user_id} does not have permission to perform 'add'."
+                        f"Moderator user_id={actor_user_id} does not have permission to perform 'add'"
                     )
         except IntegrityError:
-            self._logger.warning("Failed to add moderator user_id=%s", user_id)
+            self._logger.warning("Failed to add moderator user_id=%s by moderator user_id=%s", user_id, actor_user_id)
 
     async def ban(self, actor_user_id: int, user_id: int):
         async with self._database.begin_session() as session:
@@ -52,7 +52,7 @@ class ModeratorService:
                 await self._ban_repository.ban(session, actor_user_id, user_id)
             else:
                 raise ModeratorPermissionError(
-                    f"Moderator user_id={actor_user_id} does not have permission to perform 'ban'."
+                    f"Moderator user_id={actor_user_id} does not have permission to perform 'ban'"
                 )
 
     async def _can(
@@ -70,7 +70,7 @@ class ModeratorService:
 
     async def can(self, actor_user_id: int, permission: ModeratorPermission):
         async with self._database.get_session() as session:
-            return self._can(session, actor_user_id, permission)
+            return await self._can(session, actor_user_id, permission)
 
     async def get(self, user_id: int):
         async with self._database.get_session() as session:
@@ -115,10 +115,10 @@ class ModeratorService:
                     await self._moderator_repository.remove(session, user_id)
                 else:
                     raise ModeratorPermissionError(
-                        f"Moderator user_id={actor_user_id} does not have permission to perform 'remove'."
+                        f"Moderator user_id={actor_user_id} does not have permission to perform 'remove'"
                     )
         except IntegrityError:
-            self._logger.warning("Failed to remove moderator user_id=%s", user_id)
+            self._logger.warning("Failed to remove moderator user_id=%s by moderator user_id=%s", user_id, actor_user_id)
 
     async def unban(self, actor_user_id: int, user_id: int):
         async with self._database.begin_session() as session:
@@ -127,7 +127,7 @@ class ModeratorService:
                 await self._ban_repository.unban(session, actor_user_id, user_id)
             else:
                 raise ModeratorPermissionError(
-                    f"Moderator user_id={actor_user_id} does not have permission to perform 'unban'."
+                    f"Moderator user_id={actor_user_id} does not have permission to perform 'unban'"
                 )
 
     async def update(self, actor_user_id: int, user_id: int, **fields):
@@ -140,10 +140,10 @@ class ModeratorService:
                     await self._moderator_repository.update(session, user_id, **fields)
                 else:
                     raise ModeratorPermissionError(
-                        f"Moderator user_id={actor_user_id} does not have permission to perform 'update'."
+                        f"Moderator user_id={actor_user_id} does not have permission to perform 'update'"
                     )
         except IntegrityError:
-            self._logger.warning("Failed to update moderator user_id=%s", user_id)
+            self._logger.exception("Failed to update moderator user_id=%s by moderator user_id=%s", user_id, actor_user_id)
 
     async def update_permissions(
         self, actor_user_id: int, user_id: int, permissions: ModeratorPermissions
@@ -159,7 +159,7 @@ class ModeratorService:
                     )
                 else:
                     raise ModeratorPermissionError(
-                        f"Moderator user_id={actor_user_id} does not have permission to perform 'update_permissions'."
+                        f"Moderator user_id={actor_user_id} does not have permission to perform 'update_permissions'"
                     )
         except IntegrityError:
-            self._logger.warning("Failed to update moderator user_id=%s", user_id)
+            self._logger.exception("Failed to update moderator user_id=%s by moderator user_id=%s", user_id, actor_user_id)

+ 3 - 3
anonflow/services/user/service.py

@@ -17,7 +17,7 @@ class UserService:
             async with self._database.begin_session() as session:
                 await self._user_repository.add(session, user_id)
         except IntegrityError:
-            self._logger.warning("Failed to add user user_id=%s", user_id)
+            self._logger.warning("Failed to add user, possibly already exists")
 
     async def get(self, user_id: int):
         async with self._database.get_session() as session:
@@ -32,11 +32,11 @@ class UserService:
             async with self._database.begin_session() as session:
                 await self._user_repository.remove(session, user_id)
         except IntegrityError:
-            self._logger.warning("Failed to remove user user_id=%s", user_id)
+            self._logger.exception("Failed to remove user")
 
     async def update(self, user_id: int, **fields):
         try:
             async with self._database.begin_session() as session:
                 await self._user_repository.update(session, user_id, **fields)
         except IntegrityError:
-            self._logger.warning("Failed to update user user_id=%s", user_id)
+            self._logger.exception("Failed to update user")