Skip to content

Commit 59e0275

Browse files
committed
fix:修复用户无部门、角色或岗位时无法编辑及无法登录的bug
1 parent 7b82325 commit 59e0275

7 files changed

Lines changed: 20 additions & 19 deletions

File tree

dash-fastapi-backend/module_admin/annotation/log_annotation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ async def wrapper(*args, **kwargs):
136136
else:
137137
current_user = await get_current_user(request, token, query_db)
138138
oper_name = current_user.user.user_name
139-
dept_name = current_user.dept.dept_name
139+
dept_name = current_user.dept.dept_name if current_user.dept else None
140140
operation_log = dict(
141141
title=title,
142142
business_type=business_type,

dash-fastapi-backend/module_admin/controller/login_controller.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ async def login(request: Request, form_data: CustomOAuth2PasswordRequestForm = D
3838
data={
3939
"user_id": str(result[0].user_id),
4040
"user_name": result[0].user_name,
41-
"dept_name": result[1].dept_name,
41+
"dept_name": result[1].dept_name if result[1] else None,
4242
"session_id": session_id,
4343
"login_info": user.login_info
4444
},

dash-fastapi-backend/module_admin/dao/user_dao.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from module_admin.entity.do.post_do import SysPost
77
from module_admin.entity.do.menu_do import SysMenu
88
from module_admin.entity.vo.user_vo import UserModel, UserRoleModel, UserPostModel, CurrentUserInfo, UserQueryModel, UserRoleQueryModel
9-
from utils.time_format_util import list_format_datetime, format_datetime_dict_list
9+
from utils.time_format_util import object_format_datetime, list_format_datetime, format_datetime_dict_list
1010
from datetime import datetime, time
1111
from typing import Union, List
1212

@@ -55,11 +55,11 @@ def get_user_by_id(cls, db: Session, user_id: int):
5555
"""
5656
query_user_basic_info = db.query(SysUser) \
5757
.filter(SysUser.status == 0, SysUser.del_flag == 0, SysUser.user_id == user_id) \
58-
.distinct().all()
58+
.distinct().first()
5959
query_user_dept_info = db.query(SysDept).select_from(SysUser) \
6060
.filter(SysUser.status == 0, SysUser.del_flag == 0, SysUser.user_id == user_id) \
6161
.join(SysDept, and_(SysUser.dept_id == SysDept.dept_id, SysDept.status == 0, SysDept.del_flag == 0)) \
62-
.distinct().all()
62+
.distinct().first()
6363
query_user_role_info = db.query(SysRole).select_from(SysUser) \
6464
.filter(SysUser.status == 0, SysUser.del_flag == 0, SysUser.user_id == user_id) \
6565
.outerjoin(SysUserRole, SysUser.user_id == SysUserRole.user_id) \
@@ -85,8 +85,8 @@ def get_user_by_id(cls, db: Session, user_id: int):
8585
.order_by(SysMenu.order_num) \
8686
.distinct().all()
8787
results = dict(
88-
user_basic_info=list_format_datetime(query_user_basic_info),
89-
user_dept_info=list_format_datetime(query_user_dept_info),
88+
user_basic_info=object_format_datetime(query_user_basic_info),
89+
user_dept_info=object_format_datetime(query_user_dept_info),
9090
user_role_info=list_format_datetime(query_user_role_info),
9191
user_post_info=list_format_datetime(query_user_post_info),
9292
user_menu_info=list_format_datetime(query_user_menu_info)
@@ -104,11 +104,11 @@ def get_user_detail_by_id(cls, db: Session, user_id: int):
104104
"""
105105
query_user_basic_info = db.query(SysUser) \
106106
.filter(SysUser.del_flag == 0, SysUser.user_id == user_id) \
107-
.distinct().all()
107+
.distinct().first()
108108
query_user_dept_info = db.query(SysDept).select_from(SysUser) \
109109
.filter(SysUser.del_flag == 0, SysUser.user_id == user_id) \
110110
.join(SysDept, and_(SysUser.dept_id == SysDept.dept_id, SysDept.status == 0, SysDept.del_flag == 0)) \
111-
.distinct().all()
111+
.distinct().first()
112112
query_user_role_info = db.query(SysRole).select_from(SysUser) \
113113
.filter(SysUser.del_flag == 0, SysUser.user_id == user_id) \
114114
.outerjoin(SysUserRole, SysUser.user_id == SysUserRole.user_id) \
@@ -127,8 +127,8 @@ def get_user_detail_by_id(cls, db: Session, user_id: int):
127127
.join(SysMenu, and_(SysRoleMenu.menu_id == SysMenu.menu_id, SysMenu.status == 0)) \
128128
.distinct().all()
129129
results = dict(
130-
user_basic_info=list_format_datetime(query_user_basic_info),
131-
user_dept_info=list_format_datetime(query_user_dept_info),
130+
user_basic_info=object_format_datetime(query_user_basic_info),
131+
user_dept_info=object_format_datetime(query_user_dept_info),
132132
user_role_info=list_format_datetime(query_user_role_info),
133133
user_post_info=list_format_datetime(query_user_post_info),
134134
user_menu_info=list_format_datetime(query_user_menu_info)

dash-fastapi-backend/module_admin/entity/vo/user_vo.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ class CurrentUserInfo(BaseModel):
128128
"""
129129
数据库返回当前用户信息
130130
"""
131-
user_basic_info: List[Union[UserModel, None]]
132-
user_dept_info: List[Union[DeptModel, None]]
131+
user_basic_info: Union[UserModel, None]
132+
user_dept_info: Union[DeptModel, None]
133133
user_role_info: List[Union[RoleModel, None]]
134134
user_post_info: List[Union[PostModel, None]]
135135
user_menu_info: Union[List, None]

dash-fastapi-backend/module_admin/service/login_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ async def get_current_user(request: Request = Request, token: str = Depends(oaut
8383
# ex=timedelta(minutes=JwtConfig.REDIS_TOKEN_EXPIRE_MINUTES))
8484

8585
return CurrentUserInfoServiceResponse(
86-
user=user.user_basic_info[0],
87-
dept=user.user_dept_info[0],
86+
user=user.user_basic_info,
87+
dept=user.user_dept_info,
8888
role=user.user_role_info,
8989
post=user.user_post_info,
9090
menu=user.user_menu_info

dash-fastapi-backend/module_admin/service/user_service.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ def detail_user_services(cls, result_db: Session, user_id: int):
139139
user = UserDao.get_user_detail_by_id(result_db, user_id=user_id)
140140

141141
return UserDetailModel(
142-
user=user.user_basic_info[0],
143-
dept=user.user_dept_info[0],
142+
user=user.user_basic_info,
143+
dept=user.user_dept_info,
144144
role=user.user_role_info,
145145
post=user.user_post_info
146146
)
@@ -155,7 +155,7 @@ def reset_user_services(cls, result_db: Session, page_object: ResetUserModel):
155155
"""
156156
reset_user = page_object.dict(exclude_unset=True)
157157
if page_object.old_password:
158-
user = UserDao.get_user_detail_by_id(result_db, user_id=page_object.user_id).user_basic_info[0]
158+
user = UserDao.get_user_detail_by_id(result_db, user_id=page_object.user_id).user_basic_info
159159
if not PwdUtil.verify_password(page_object.old_password, user.password):
160160
result = dict(is_success=False, message='旧密码不正确')
161161
return CrudUserResponse(**result)

dash-fastapi-frontend/views/system/user/profile/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ def render(button_perms):
6565
fac.AntdIcon(icon='antd-cluster'),
6666
fac.AntdText('所属部门'),
6767
html.Div(
68-
session.get('dept_info').get('dept_name') + "/" + ','.join(
68+
session.get('dept_info').get('dept_name') if session.get(
69+
'dept_info') else "" + "/" + ','.join(
6970
[item.get('post_name') for item in
7071
session.get('post_info')]),
7172
id='profile_c-dept',

0 commit comments

Comments
 (0)