|
|
@@ -1,6 +1,8 @@
|
|
|
package cn.reghao.devops.manager.rbac.service.impl;
|
|
|
|
|
|
+import cn.reghao.devops.manager.rbac.db.repository.RoleRepository;
|
|
|
import cn.reghao.devops.manager.rbac.db.repository.UserRepository;
|
|
|
+import cn.reghao.devops.manager.rbac.model.dto.UserCreateDto;
|
|
|
import cn.reghao.devops.manager.rbac.model.po.Role;
|
|
|
import cn.reghao.devops.manager.rbac.service.UserService;
|
|
|
import cn.reghao.jutil.jdk.security.Cryptor;
|
|
|
@@ -8,15 +10,12 @@ import cn.reghao.jutil.jdk.security.Md5Cryptor;
|
|
|
import cn.reghao.jutil.jdk.security.RandomString;
|
|
|
import cn.reghao.devops.manager.rbac.model.dto.UserInfo;
|
|
|
import cn.reghao.devops.manager.rbac.model.dto.UserRole;
|
|
|
-import cn.reghao.devops.manager.rbac.model.po.UserAuthority;
|
|
|
import cn.reghao.devops.manager.rbac.model.po.User;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.security.core.GrantedAuthority;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
import java.util.Set;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author reghao
|
|
|
@@ -26,42 +25,39 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class UserServiceImpl implements UserService {
|
|
|
private final UserRepository userRepository;
|
|
|
+ private RoleRepository roleRepository;
|
|
|
private final Cryptor cryptor;
|
|
|
|
|
|
- public UserServiceImpl(UserRepository userRepository) throws NoSuchAlgorithmException {
|
|
|
+ public UserServiceImpl(UserRepository userRepository, RoleRepository roleRepository) throws NoSuchAlgorithmException {
|
|
|
this.userRepository = userRepository;
|
|
|
+ this.roleRepository = roleRepository;
|
|
|
this.cryptor = new Md5Cryptor();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public User getUser(String username) {
|
|
|
User user = userRepository.findByUsername(username);
|
|
|
- if (user != null) {
|
|
|
- setGrantedAuthorities(user);
|
|
|
- }
|
|
|
return user;
|
|
|
}
|
|
|
|
|
|
- private void setGrantedAuthorities(User user) {
|
|
|
- Set<UserAuthority> grantedAuthorities = user.getRole().stream()
|
|
|
- .map(UserAuthority::new)
|
|
|
- .collect(Collectors.toSet());
|
|
|
- user.setAuthorities(grantedAuthorities);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
- public void createUser(User user) {
|
|
|
- String username = user.getUsername();
|
|
|
+ public void createUser(UserCreateDto userCreateDto) {
|
|
|
+ String username = userCreateDto.getUsername();
|
|
|
User userEntity = userRepository.findByUsername(username);
|
|
|
if (userEntity != null) {
|
|
|
log.error("用户 {} 已存在", username);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- Set<String> roles = user.getAuthorities().stream()
|
|
|
- .map(GrantedAuthority::getAuthority)
|
|
|
- .collect(Collectors.toSet());
|
|
|
- user.setRole(roles);
|
|
|
+ int roleId = userCreateDto.getRoleId();
|
|
|
+ Role role = roleRepository.findById(roleId).orElse(null);
|
|
|
+ if (role == null) {
|
|
|
+ log.error("角色 {} 不存在", roleId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ String password = userCreateDto.getPassword();
|
|
|
+ User user = new User(username, password, Set.of(role.getTitle()));
|
|
|
setEncryptPassword(user);
|
|
|
userRepository.save(user);
|
|
|
}
|
|
|
@@ -106,15 +102,6 @@ public class UserServiceImpl implements UserService {
|
|
|
if (userEntity == null) {
|
|
|
return;
|
|
|
}
|
|
|
- /*Set<UserAuthority> authorities = userRole.getRoles().stream()
|
|
|
- .map(role -> new UserAuthority(role.getTitle()))
|
|
|
- .collect(Collectors.toSet());
|
|
|
- userEntity.setAuthorities(authorities);*/
|
|
|
-
|
|
|
- Set<String> roles = userRole.getRoles().stream()
|
|
|
- .map(Role::getTitle)
|
|
|
- .collect(Collectors.toSet());
|
|
|
- userEntity.setRole(roles);
|
|
|
userRepository.save(userEntity);
|
|
|
}
|
|
|
|
|
|
@@ -125,7 +112,7 @@ public class UserServiceImpl implements UserService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- userEntity.setIsEnabled(enable);
|
|
|
+ userEntity.setEnabled(enable);
|
|
|
userRepository.save(userEntity);
|
|
|
}
|
|
|
|