You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.example.demo.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.UserDetails;
import java.io.Serializable; import java.util.*;
@Data @NoArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) public class Admin implements UserDetails, Serializable { private static final long serialVersionUID = 1L;
private Integer id; // 主键ID
private String adminName; // 用户姓名
private String account; // 账号
private String password; // 密码
private String machineId; // 机器码,限两个
private Byte adminStatus; // 状态(启用/不启用)
private String market; // 地区
private String postiton; // 职位
private String remark; // 备注
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date createTime; // 创建时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private Date updateTime; // 更新时间
private Integer roleId;
@Override @JsonIgnore public Collection<? extends GrantedAuthority> getAuthorities() { Set<GrantedAuthority> authorities = new HashSet<>(); Optional.ofNullable(postiton) .map(Integer::valueOf) .ifPresent(permValue -> { switch (permValue) { case 1: authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN")); break; case 2: authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN")); break; case 3: authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS")); break; case 5: authorities.add(new SimpleGrantedAuthority("Branch_Manager")); break; default: // 可以添加默认角色或处理未知权限
break; } }); return authorities; } @Override public String getUsername() { return account; }
@Override @JsonIgnore public boolean isAccountNonExpired() { return true; // 默认账户未过期
}
@Override @JsonIgnore public boolean isAccountNonLocked() { return true; // 默认账户未锁定
}
@Override @JsonIgnore public boolean isCredentialsNonExpired() { return true; // 默认凭证未过期
}
@Override @JsonIgnore public boolean isEnabled() { return adminStatus != null && adminStatus == 1; } }
|