Skip to content

Commit adee3a2

Browse files
authored
Simplify user permission database queries (#717)
1 parent 526e0aa commit adee3a2

File tree

2 files changed

+4
-51
lines changed

2 files changed

+4
-51
lines changed

backend/app/admin/crud/crud_user.py

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -192,50 +192,6 @@ async def get_list(self, dept: int | None, username: str | None, phone: str | No
192192
**filters,
193193
)
194194

195-
async def get_super(self, db: AsyncSession, user_id: int) -> bool:
196-
"""
197-
获取用户是否为超级管理员
198-
199-
:param db: 数据库会话
200-
:param user_id: 用户 ID
201-
:return:
202-
"""
203-
user = await self.get(db, user_id)
204-
return user.is_superuser
205-
206-
async def get_staff(self, db: AsyncSession, user_id: int) -> bool:
207-
"""
208-
获取用户是否可以登录后台
209-
210-
:param db: 数据库会话
211-
:param user_id: 用户 ID
212-
:return:
213-
"""
214-
user = await self.get(db, user_id)
215-
return user.is_staff
216-
217-
async def get_status(self, db: AsyncSession, user_id: int) -> int:
218-
"""
219-
获取用户状态
220-
221-
:param db: 数据库会话
222-
:param user_id: 用户 ID
223-
:return:
224-
"""
225-
user = await self.get(db, user_id)
226-
return user.status
227-
228-
async def get_multi_login(self, db: AsyncSession, user_id: int) -> bool:
229-
"""
230-
获取用户是否允许多端登录
231-
232-
:param db: 数据库会话
233-
:param user_id: 用户 ID
234-
:return:
235-
"""
236-
user = await self.get(db, user_id)
237-
return user.is_multi_login
238-
239195
async def set_super(self, db: AsyncSession, user_id: int, is_super: bool) -> int:
240196
"""
241197
设置用户超级管理员状态

backend/app/admin/service/user_service.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,7 @@ async def update_superuser(*, request: Request, pk: int) -> int:
134134
raise errors.NotFoundError(msg='用户不存在')
135135
if pk == request.user.id:
136136
raise errors.ForbiddenError(msg='禁止修改自身权限')
137-
super_status = await user_dao.get_super(db, pk)
138-
count = await user_dao.set_super(db, pk, not super_status)
137+
count = await user_dao.set_super(db, pk, not user.status)
139138
await redis_client.delete(f'{settings.JWT_USER_REDIS_PREFIX}:{user.id}')
140139
return count
141140

@@ -155,8 +154,7 @@ async def update_staff(*, request: Request, pk: int) -> int:
155154
raise errors.NotFoundError(msg='用户不存在')
156155
if pk == request.user.id:
157156
raise errors.ForbiddenError(msg='禁止修改自身权限')
158-
staff_status = await user_dao.get_staff(db, pk)
159-
count = await user_dao.set_staff(db, pk, not staff_status)
157+
count = await user_dao.set_staff(db, pk, not user.is_staff)
160158
await redis_client.delete(f'{settings.JWT_USER_REDIS_PREFIX}:{user.id}')
161159
return count
162160

@@ -176,8 +174,7 @@ async def update_status(*, request: Request, pk: int) -> int:
176174
raise errors.NotFoundError(msg='用户不存在')
177175
if pk == request.user.id:
178176
raise errors.ForbiddenError(msg='禁止修改自身权限')
179-
status = await user_dao.get_status(db, pk)
180-
count = await user_dao.set_status(db, pk, 0 if status == 1 else 1)
177+
count = await user_dao.set_status(db, pk, 0 if user.status == 1 else 1)
181178
await redis_client.delete(f'{settings.JWT_USER_REDIS_PREFIX}:{user.id}')
182179
return count
183180

@@ -195,7 +192,7 @@ async def update_multi_login(*, request: Request, pk: int) -> int:
195192
user = await user_dao.get(db, pk)
196193
if not user:
197194
raise errors.NotFoundError(msg='用户不存在')
198-
multi_login = await user_dao.get_multi_login(db, pk) if pk != user.id else request.user.is_multi_login
195+
multi_login = user.is_multi_login if pk != user.id else request.user.is_multi_login
199196
new_multi_login = not multi_login
200197
count = await user_dao.set_multi_login(db, pk, new_multi_login)
201198
await redis_client.delete(f'{settings.JWT_USER_REDIS_PREFIX}:{user.id}')

0 commit comments

Comments
 (0)