chore: 整理项目结构,清理归档文件,更新部署配置
This commit is contained in:
@@ -170,8 +170,9 @@ async def switch_role(
|
||||
if not switch_success:
|
||||
raise AppException(4003, "角色切换失败")
|
||||
|
||||
# 获取目标角色的入口 URL
|
||||
redirect_url = _get_role_url(body.new_role)
|
||||
# 获取目标角色的入口 URL(传递 token 以便目标前端直接认证)
|
||||
token = credentials.credentials
|
||||
redirect_url = _get_role_url(body.new_role, token)
|
||||
|
||||
logger.info(f"用户 {current_user.employee_id} 切换角色到 {body.new_role}")
|
||||
|
||||
@@ -191,6 +192,7 @@ async def get_role_entry(
|
||||
role_name: str,
|
||||
current_user: UserInfo = Depends(get_current_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
credentials: HTTPAuthorizationCredentials = Depends(security),
|
||||
):
|
||||
"""获取角色对应的入口 URL。
|
||||
|
||||
@@ -198,6 +200,7 @@ async def get_role_entry(
|
||||
role_name: 角色标识
|
||||
current_user: 当前用户(通过认证依赖注入)
|
||||
db: 数据库会话
|
||||
credentials: HTTP Bearer Token
|
||||
|
||||
Returns:
|
||||
Dict: 统一响应格式,包含角色信息和入口 URL
|
||||
@@ -215,8 +218,9 @@ async def get_role_entry(
|
||||
if not target_role:
|
||||
raise AppException(4003, f"没有 {role_name} 角色权限")
|
||||
|
||||
# 获取入口 URL
|
||||
redirect_url = _get_role_url(role_name)
|
||||
# 获取入口 URL(传递 token 以便目标前端直接认证)
|
||||
token = credentials.credentials
|
||||
redirect_url = _get_role_url(role_name, token)
|
||||
|
||||
return success_response(
|
||||
data={
|
||||
@@ -230,20 +234,29 @@ async def get_role_entry(
|
||||
# --------------------------------------------------------------------------
|
||||
# 辅助函数:获取角色对应的 URL
|
||||
# --------------------------------------------------------------------------
|
||||
def _get_role_url(role_name: str) -> str:
|
||||
def _get_role_url(role_name: str, token: str = None) -> str:
|
||||
"""获取角色对应的前端 URL。
|
||||
|
||||
Args:
|
||||
role_name: 角色标识
|
||||
token: 可选的访问令牌,用于附加到重定向URL
|
||||
|
||||
Returns:
|
||||
str: 前端 URL
|
||||
str: 前端 URL(带token参数)
|
||||
"""
|
||||
role_urls = {
|
||||
"user": "/itdesk/",
|
||||
"agent": "/itagent/",
|
||||
"admin": "/itadmin/",
|
||||
}
|
||||
return role_urls.get(role_name, "/itdesk/")
|
||||
base_url = role_urls.get(role_name, "/itdesk/")
|
||||
|
||||
# 如果提供了token,附加到URL参数
|
||||
if token:
|
||||
# 添加 token 参数,使用 ? 或 & 连接
|
||||
separator = "&" if "?" in base_url else "?"
|
||||
return f"{base_url}{separator}token={token}"
|
||||
|
||||
return base_url
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user