fix: 修复注册异常,删除用户异常,调整用户信息存储时间

This commit is contained in:
2025-02-23 03:58:38 +08:00
parent 5be35d8231
commit df5f2977d4
10 changed files with 984 additions and 32 deletions

View File

@@ -18,7 +18,7 @@ from config.constant import BusinessType
from config.constant import RedisKeyConfig
from controller.login import CustomOAuth2PasswordRequestForm, LoginController
from controller.query import QueryController
from models import Department, User
from models import Department, User, Role, UserRole
from schemas.common import BaseResponse
from schemas.login import LoginParams, GetUserInfoResponse, LoginResponse, GetCaptchaResponse, GetEmailCodeParams, \
ResetPasswordParams
@@ -94,7 +94,7 @@ async def login(
async def register(request: Request, params: RegisterUserParams):
register_enabled = (
True
if await request.app.state.redis.get(f'{RedisKeyConfig.SYSTEM_CONFIG.key}:register_enabled')
if await request.app.state.redis.get(f'{RedisKeyConfig.SYSTEM_CONFIG.key}:account_register_enabled')
== 'true'
else False
)
@@ -106,7 +106,14 @@ async def register(request: Request, params: RegisterUserParams):
if await QueryController.register_user_before(username=params.username, phone=params.phone, email=params.email):
return Response.error(msg="注册失败,用户已存在!")
params.password = await Password.get_password_hash(input_password=params.password)
# 默认分配注册用户
userRole = await Role.get_or_none(department__name="注册用户", code="user", del_flag=1).values(
department_id="department__id", id="id")
if not params.department_id:
params.department_id = userRole.get("department_id", "")
department = await Department.get_or_none(id=params.department_id)
userRole = await Role.get_or_none(department__id=department.id, code="user", del_flag=1).values(id="id")
print(userRole)
user = await User.create(
username=params.username,
password=params.password,
@@ -118,6 +125,11 @@ async def register(request: Request, params: RegisterUserParams):
status=params.status,
)
if user:
# 默认分配普通用户角色
await UserRole.create(
user_id=user.id,
role_id=userRole.get("id", ""),
)
userParams = LoginParams(
username=params.username,
password=params.password
@@ -140,7 +152,7 @@ async def register(request: Request, params: RegisterUserParams):
result.pop("session_id")
result.pop("userInfo")
return Response.success(msg="注册成功!", data=result)
return Response.error(msg="注册成功!")
return Response.success(msg="注册成功!")
else:
return Response.error(msg="注册失败!")
@@ -221,7 +233,7 @@ async def info(
@loginAPI.get("/getRoutes", response_class=JSONResponse, summary="获取路由信息")
# @Log(title="获取路由信息", business_type=BusinessType.SELECT)
@Log(title="获取路由信息", business_type=BusinessType.SELECT)
async def get_routes(request: Request, current_user: dict = Depends(LoginController.get_current_user)):
sub_departments = current_user.get("sub_departments")
routes = await request.app.state.redis.get(f'{RedisKeyConfig.USER_ROUTES.key}:{current_user["id"]}')