调整 IAM
This commit is contained in:
+1
-1
@@ -281,7 +281,7 @@ public interface IUserService extends BaseService<User> {
|
||||
boolean registerUser(User user);
|
||||
|
||||
/**
|
||||
* 新建IAM统一身份认证用户(按可信租户落库)
|
||||
* 新建或补齐IAM统一身份认证用户(按可信租户落库,默认分配角色 1123598816738675203)
|
||||
*
|
||||
* @param user 用户实体
|
||||
* @return 是否成功
|
||||
|
||||
+36
-2
@@ -96,6 +96,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
|
||||
private static final String PASSWORD_CHARS = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789";
|
||||
private static final int RANDOM_PASSWORD_LENGTH = 8;
|
||||
private static final SecureRandom SECURE_RANDOM = new SecureRandom();
|
||||
private static final Long IAM_DEFAULT_ROLE_ID = 1123598816738675203L;
|
||||
|
||||
private final IUserDeptService userDeptService;
|
||||
private final UserDataScopeMapper userDataScopeMapper;
|
||||
@@ -563,8 +564,27 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
|
||||
if (user.getUserType() == null) {
|
||||
user.setUserType(UserType.WEB.getCategory());
|
||||
}
|
||||
if (StringUtil.isBlank(user.getRoleId())) {
|
||||
user.setRoleId(StringPool.MINUS_ONE);
|
||||
String defaultRoleId = resolveIamDefaultRoleId();
|
||||
User existingUser = userByAccount(user.getTenantId(), user.getAccount());
|
||||
if (existingUser != null) {
|
||||
boolean changed = false;
|
||||
if (isMissingIamRole(existingUser.getRoleId())) {
|
||||
existingUser.setRoleId(defaultRoleId);
|
||||
changed = true;
|
||||
}
|
||||
if (existingUser.getIsOa() == null || existingUser.getIsOa() != 1) {
|
||||
existingUser.setIsOa(1);
|
||||
existingUser.setSyncTime(new Date());
|
||||
changed = true;
|
||||
}
|
||||
if (!changed) {
|
||||
return true;
|
||||
}
|
||||
CacheUtil.clear(USER_CACHE);
|
||||
return this.updateById(existingUser);
|
||||
}
|
||||
if (isMissingIamRole(user.getRoleId())) {
|
||||
user.setRoleId(defaultRoleId);
|
||||
}
|
||||
if (StringUtil.isBlank(user.getDeptId())) {
|
||||
user.setDeptId(StringPool.MINUS_ONE);
|
||||
@@ -579,6 +599,20 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
|
||||
return saveUser(user);
|
||||
}
|
||||
|
||||
private boolean isMissingIamRole(String roleId) {
|
||||
return StringUtil.isBlank(roleId) || StringPool.MINUS_ONE.equals(roleId);
|
||||
}
|
||||
|
||||
private String resolveIamDefaultRoleId() {
|
||||
Role role = roleService.getOne(Wrappers.<Role>lambdaQuery()
|
||||
.eq(Role::getId, IAM_DEFAULT_ROLE_ID)
|
||||
.eq(Role::getIsDeleted, BladeConstant.DB_NOT_DELETED));
|
||||
if (role == null || role.getId() == null) {
|
||||
throw new ServiceException("IAM用户默认角色不存在,roleId=" + IAM_DEFAULT_ROLE_ID);
|
||||
}
|
||||
return String.valueOf(role.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean updatePlatform(Long userId, Integer userType, String userExt) {
|
||||
|
||||
Reference in New Issue
Block a user