Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions backend/app/crud/crud_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ async def create(self, db: AsyncSession, create: CreateUser) -> NoReturn:
create.password = await jwt.get_hash_password(create.password)
new_user = self.model(**create.dict(exclude={'roles'}))
role_list = []
for role_id in create.roles:
role_list.append(await db.get(Role, role_id))
if create.roles:
for role_id in create.roles:
role_list.append(await db.get(Role, role_id))
new_user.roles.extend(role_list)
db.add(new_user)

Expand Down
5 changes: 3 additions & 2 deletions backend/app/schemas/user.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import random
from datetime import datetime

from email_validator import validate_email, EmailNotValidError
Expand All @@ -22,8 +23,8 @@ class AuthLogin(Auth):

class CreateUser(Auth):
dept_id: int | None = None
roles: list[int]
nickname: str
roles: list[int] | None = None
nickname: str = Field(f'用户{random.randrange(10000, 99999)}')
email: str = Field(..., example='user@example.com')

@validator('email')
Expand Down
5 changes: 3 additions & 2 deletions backend/app/services/menu_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ async def get_user_menu_tree(*, request: Request):
async with async_db_session() as db:
roles = request.user.roles
menu_ids = []
for role in roles:
menu_ids.extend([menu.id for menu in role.menus])
if roles:
for role in roles:
menu_ids.extend([menu.id for menu in role.menus])
menu_select = await MenuDao.get_role_menus(db, request.user.is_superuser, menu_ids)
menu_tree = await get_tree_data(menu_select)
return menu_tree
Expand Down
11 changes: 0 additions & 11 deletions backend/app/services/user_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from backend.app.common.jwt import get_token, password_verify
from backend.app.common.redis import redis_client
from backend.app.core.conf import settings
from backend.app.crud.crud_dept import DeptDao
from backend.app.crud.crud_role import RoleDao
from backend.app.crud.crud_user import UserDao
from backend.app.database.db_mysql import async_db_session
Expand All @@ -28,13 +27,6 @@ async def register(*, obj: CreateUser) -> NoReturn:
email = await UserDao.check_email(db, obj.email)
if email:
raise errors.ForbiddenError(msg='该邮箱已注册')
dept = await DeptDao.get(db, obj.dept_id)
if not dept:
raise errors.NotFoundError(msg='部门不存在')
for role_id in obj.roles:
role = await RoleDao.get(db, role_id)
if not role:
raise errors.NotFoundError(msg='角色不存在')
await UserDao.create(db, obj)

@staticmethod
Expand Down Expand Up @@ -79,9 +71,6 @@ async def update(*, request: Request, username: str, obj: UpdateUser) -> int:
email = await UserDao.check_email(db, obj.email)
if email:
raise errors.ForbiddenError(msg='该邮箱已注册')
dept = await DeptDao.get(db, obj.dept_id)
if not dept:
raise errors.NotFoundError(msg='部门不存在')
count = await UserDao.update_userinfo(db, input_user, obj)
return count

Expand Down