from PDAPI import * __metadata__ = { "methods": ["POST"], "blueprint": "UGM", "permission": 1.0, "attributes": [], "limit": "5 per minute", "form": [ {"Name": "RoleUUID", "Type": "str", "MaxLen": 36} ] } def HandleRequest(_CleanedData): current_user = UGM.GetELTUser() if not current_user: return {"code": 401, "msg": "未登录"}, 401 role_uuid_str = _CleanedData["form"].get("RoleUUID", "").strip() if not role_uuid_str: return {"code": 400, "msg": "缺少角色UUID"}, 400 role_uuid_bytes = UUIDObj(role_uuid_str).bytes user_role = UserRole.query.filter( UserRole.UserUUID == current_user.UserUUID, UserRole.RoleUUID == role_uuid_bytes ).first() if not user_role: return {"code": 403, "msg": "该角色不属于当前用户"}, 403 role = GERPRole.query.filter(GERPRole.RoleUUID == role_uuid_bytes).first() if not role: return {"code": 404, "msg": "角色不存在"}, 404 if role.RoleStatus != 1: return {"code": 403, "msg": "角色已被禁用"}, 403 Cookie.set("CurrentRoleUUID", role_uuid_str, domain=".gvsds.com") company = None if role.CompanyUUID: company = GERPCompany.query.filter(GERPCompany.CompanyUUID == role.CompanyUUID).first() return { "code": 0, "msg": "角色切换成功", "data": { "RoleUUID": role_uuid_str, "RoleName": role.RoleName, "CompanyUUID": UUIDObj(role.CompanyUUID).UpperStr if role.CompanyUUID else None, "CompanyName": company.CompanyName if company else None } }, 200