fix 同步用户提权Bug

This commit is contained in:
jxxghp 2023-11-03 12:19:05 +08:00
parent c3c55f3a13
commit 6a8a1e799d

View File

@ -37,18 +37,23 @@ async def login_access_token(
logger.warn("登录用户本地不匹配,尝试辅助认证 ...") logger.warn("登录用户本地不匹配,尝试辅助认证 ...")
token = UserChain().user_authenticate(form_data.username, form_data.password) token = UserChain().user_authenticate(form_data.username, form_data.password)
if not token: if not token:
logger.warn(f"用户 {form_data.username} 登录失败!")
raise HTTPException(status_code=401, detail="用户名或密码不正确") raise HTTPException(status_code=401, detail="用户名或密码不正确")
else: else:
logger.info(f"辅助认证成功,用户信息: {token}") logger.info(f"用户 {form_data.username} 辅助认证成功,用户信息: {token}")
# 加入用户信息表 # 加入用户信息表
user = User.get_by_name(db=db, name=form_data.username) user = User.get_by_name(db=db, name=form_data.username)
if not user: if not user:
logger.info(f"用户不存在,创建用户: {form_data.username}") logger.info(f"用户不存在,创建普通用户: {form_data.username}")
user = User(name=form_data.username, is_active=True, user = User(name=form_data.username, is_active=True,
is_superuser=False, hashed_password=get_password_hash(token)) is_superuser=False, hashed_password=get_password_hash(token))
user.create(db) user.create(db)
else:
# 普通用户权限
user.is_superuser = False
elif not user.is_active: elif not user.is_active:
raise HTTPException(status_code=403, detail="用户未启用") raise HTTPException(status_code=403, detail="用户未启用")
logger.info(f"用户 {user.name} 登录成功!")
return schemas.Token( return schemas.Token(
access_token=security.create_access_token( access_token=security.create_access_token(
user.id, user.id,