35 lines
1.8 KiB
Java
35 lines
1.8 KiB
Java
package com.labelsys.backend.context;
|
||
|
||
import com.labelsys.backend.entity.SysCompany;
|
||
import com.labelsys.backend.entity.SysUser;
|
||
import com.labelsys.backend.enums.UserPosition;
|
||
import com.labelsys.backend.enums.UserRole;
|
||
import io.swagger.v3.oas.annotations.media.Schema;
|
||
|
||
@Schema(description = "当前登录用户上下文")
|
||
public record LoginUser(@Schema(description = "用户ID") Long userId, @Schema(description = "公司ID") Long companyId,
|
||
@Schema(description = "公司编码") String companyCode, @Schema(description = "公司名称") String companyName,
|
||
@Schema(description = "手机号") String phone,
|
||
@Schema(description = "用户名,可为空", example = "alpha-reviewer") String username,
|
||
@Schema(description = "真实姓名") String realName,
|
||
@Schema(description = "角色,枚举值:EMPLOYEE员工、MANAGER部门经理、ENGINEER总工程师") UserRole role,
|
||
@Schema(
|
||
description = "岗位,枚举值:ANNOTATOR标注员、DATA_TRAINER数据训练师、REVIEWER审核员、ADMIN超级管理员、SUPER_ADMIN系统管理员") UserPosition position,
|
||
@Schema(description = "是否必须修改密码") boolean mustChangePassword,
|
||
@Schema(description = "会话版本") Integer sessionVersion) {
|
||
|
||
public static LoginUser from(SysUser user, SysCompany company) {
|
||
return new LoginUser(user.getId(), company.getId(), company.getCompanyCode(), company.getCompanyName(),
|
||
user.getPhone(), user.getUsername(), user.getRealName(), user.getRole(), user.getPosition(),
|
||
Boolean.TRUE.equals(user.getMustChangePassword()), user.getSessionVersion());
|
||
}
|
||
|
||
// public boolean isPlatformAdmin() {
|
||
// return "PLATFORM".equals(companyCode) && position == UserPosition.ADMIN;
|
||
// }
|
||
|
||
public boolean isSuperAdmin() {
|
||
return position == UserPosition.SUPER_ADMIN;
|
||
}
|
||
}
|