fix: 修复UserModel、RoleModel的admin属性与sqlalchemy表模型无法匹配的问题
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
from fastapi import APIRouter, Request
|
from fastapi import APIRouter, Request
|
||||||
from fastapi import Depends, File, Query
|
from fastapi import Depends, File, Query
|
||||||
from config.get_db import get_db
|
from config.get_db import get_db
|
||||||
|
from config.env import UploadConfig
|
||||||
from module_admin.service.login_service import LoginService
|
from module_admin.service.login_service import LoginService
|
||||||
from module_admin.service.user_service import *
|
from module_admin.service.user_service import *
|
||||||
from module_admin.service.dept_service import DeptService
|
from module_admin.service.dept_service import DeptService
|
||||||
@@ -8,6 +9,7 @@ from utils.page_util import *
|
|||||||
from utils.response_util import *
|
from utils.response_util import *
|
||||||
from utils.log_util import *
|
from utils.log_util import *
|
||||||
from utils.common_util import bytes2file_response
|
from utils.common_util import bytes2file_response
|
||||||
|
from utils.upload_util import UploadUtil
|
||||||
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
|
from module_admin.aspect.interface_auth import CheckUserInterfaceAuth
|
||||||
from module_admin.aspect.data_scope import GetDataScope
|
from module_admin.aspect.data_scope import GetDataScope
|
||||||
from module_admin.annotation.log_annotation import log_decorator
|
from module_admin.annotation.log_annotation import log_decorator
|
||||||
@@ -166,18 +168,19 @@ async def query_detail_system_user(request: Request, user_id: Optional[Union[int
|
|||||||
@log_decorator(title='个人信息', business_type=2)
|
@log_decorator(title='个人信息', business_type=2)
|
||||||
async def change_system_user_profile_avatar(request: Request, avatarfile: bytes = File(), query_db: Session = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
async def change_system_user_profile_avatar(request: Request, avatarfile: bytes = File(), query_db: Session = Depends(get_db), current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
||||||
try:
|
try:
|
||||||
dir_path = os.path.join(CachePathConfig.PATH, 'profile', 'avatar')
|
relative_path = f'avatar/{datetime.now().strftime("%Y")}/{datetime.now().strftime("%m")}/{datetime.now().strftime("%d")}'
|
||||||
|
dir_path = os.path.join(UploadConfig.UPLOAD_PATH, relative_path)
|
||||||
try:
|
try:
|
||||||
os.makedirs(dir_path)
|
os.makedirs(dir_path)
|
||||||
except FileExistsError:
|
except FileExistsError:
|
||||||
pass
|
pass
|
||||||
avatar_name = f'blob_{datetime.now().strftime("%Y%m%d%H%M%S")}.jpeg'
|
avatar_name = f'avatar_{datetime.now().strftime("%Y%m%d%H%M%S")}{UploadConfig.UPLOAD_MACHINE}{UploadUtil.generate_random_number()}.png'
|
||||||
avatar_path = os.path.join(dir_path, avatar_name)
|
avatar_path = os.path.join(dir_path, avatar_name)
|
||||||
with open(avatar_path, 'wb') as f:
|
with open(avatar_path, 'wb') as f:
|
||||||
f.write(avatarfile)
|
f.write(avatarfile)
|
||||||
edit_user = EditUserModel(
|
edit_user = EditUserModel(
|
||||||
userId=current_user.user.user_id,
|
userId=current_user.user.user_id,
|
||||||
avatar=f'/common/{CachePathConfig.PATHSTR}?taskPath=profile&taskId=avatar&filename={avatar_name}',
|
avatar=f'{UploadConfig.UPLOAD_PREFIX}/{relative_path}/{avatar_name}',
|
||||||
updateBy=current_user.user.user_name,
|
updateBy=current_user.user.user_name,
|
||||||
updateTime=datetime.now(),
|
updateTime=datetime.now(),
|
||||||
type='avatar'
|
type='avatar'
|
||||||
|
@@ -115,7 +115,7 @@ class RoleDao:
|
|||||||
:param role: 角色对象
|
:param role: 角色对象
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
db_role = SysRole(**role.model_dump())
|
db_role = SysRole(**role.model_dump(exclude={'admin'}))
|
||||||
db.add(db_role)
|
db.add(db_role)
|
||||||
db.flush()
|
db.flush()
|
||||||
|
|
||||||
|
@@ -175,7 +175,7 @@ class UserDao:
|
|||||||
:param user: 用户对象
|
:param user: 用户对象
|
||||||
:return: 新增校验结果
|
:return: 新增校验结果
|
||||||
"""
|
"""
|
||||||
db_user = SysUser(**user.model_dump())
|
db_user = SysUser(**user.model_dump(exclude={'admin'}))
|
||||||
db.add(db_user)
|
db.add(db_user)
|
||||||
db.flush()
|
db.flush()
|
||||||
|
|
||||||
|
@@ -87,7 +87,7 @@ class RoleService:
|
|||||||
:param page_object: 编辑角色对象
|
:param page_object: 编辑角色对象
|
||||||
:return: 编辑角色校验结果
|
:return: 编辑角色校验结果
|
||||||
"""
|
"""
|
||||||
edit_role = page_object.model_dump(exclude_unset=True)
|
edit_role = page_object.model_dump(exclude_unset=True, exclude={'admin'})
|
||||||
if page_object.type != 'status':
|
if page_object.type != 'status':
|
||||||
del edit_role['menu_ids']
|
del edit_role['menu_ids']
|
||||||
if page_object.type == 'status':
|
if page_object.type == 'status':
|
||||||
|
@@ -66,7 +66,7 @@ class UserService:
|
|||||||
:param page_object: 编辑用户对象
|
:param page_object: 编辑用户对象
|
||||||
:return: 编辑用户校验结果
|
:return: 编辑用户校验结果
|
||||||
"""
|
"""
|
||||||
edit_user = page_object.model_dump(exclude_unset=True)
|
edit_user = page_object.model_dump(exclude_unset=True, exclude={'admin'})
|
||||||
if page_object.type != 'status' and page_object.type != 'avatar' and page_object.type != 'pwd':
|
if page_object.type != 'status' and page_object.type != 'avatar' and page_object.type != 'pwd':
|
||||||
del edit_user['role_ids']
|
del edit_user['role_ids']
|
||||||
del edit_user['post_ids']
|
del edit_user['post_ids']
|
||||||
|
Reference in New Issue
Block a user