mirror of
https://codeup.aliyun.com/64f7d6b8ce01efaafef1e678/coal/coal.git
synced 2026-01-25 07:46:40 +08:00
添加系统默认角色
This commit is contained in:
@@ -5,6 +5,8 @@ import cn.lihongjie.coal.common.Ctx;
|
||||
import cn.lihongjie.coal.exception.BizException;
|
||||
import cn.lihongjie.coal.resource.entity.ResourceEntity;
|
||||
import cn.lihongjie.coal.resource.service.ResourceService;
|
||||
import cn.lihongjie.coal.role.entity.RoleEntity;
|
||||
import cn.lihongjie.coal.role.service.RoleService;
|
||||
import cn.lihongjie.coal.session.SessionService;
|
||||
import cn.lihongjie.coal.spring.config.SystemConfig;
|
||||
import cn.lihongjie.coal.user.entity.UserEntity;
|
||||
@@ -19,6 +21,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
import org.apache.commons.lang3.BooleanUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.slf4j.MDC;
|
||||
@@ -37,8 +40,10 @@ import org.springframework.web.filter.OncePerRequestFilter;
|
||||
import org.springframework.web.util.pattern.PathPatternParser;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Component
|
||||
@Order(0)
|
||||
@@ -53,6 +58,8 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
@Autowired PlatformTransactionManager transactionManager;
|
||||
@Autowired ObjectMapper objectMapper;
|
||||
|
||||
@Autowired RoleService roleService;
|
||||
|
||||
@Value("${server.servlet.context-path}")
|
||||
private String contextPath;
|
||||
|
||||
@@ -140,7 +147,11 @@ public class AuthFilter extends OncePerRequestFilter {
|
||||
MDC.put("user", user.getUsername());
|
||||
|
||||
Optional<ResourceEntity> userResource =
|
||||
user.getRoles().stream()
|
||||
Stream.concat(
|
||||
ObjectUtils.defaultIfNull(
|
||||
user.getRoles(), new ArrayList<RoleEntity>())
|
||||
.stream(),
|
||||
roleService.getDefaultRoles().stream())
|
||||
.flatMap(x -> x.getPermissions().stream())
|
||||
.flatMap(x -> x.getResources().stream())
|
||||
.filter(x -> StringUtils.equals(x.getId(), resource.get().getId()))
|
||||
|
||||
@@ -11,6 +11,7 @@ import jakarta.persistence.ManyToMany;
|
||||
import lombok.Data;
|
||||
|
||||
import org.hibernate.annotations.Cache;
|
||||
import org.hibernate.annotations.Comment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -19,6 +20,9 @@ import java.util.List;
|
||||
@Cacheable
|
||||
public class RoleEntity extends OrgCommonEntity {
|
||||
|
||||
@Comment("是否为系统默认角色")
|
||||
private Boolean isSysDefault = false;
|
||||
|
||||
@ManyToMany(mappedBy = "roles")
|
||||
@Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE)
|
||||
private List<UserEntity> users;
|
||||
|
||||
@@ -5,5 +5,10 @@ import cn.lihongjie.coal.role.entity.RoleEntity;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public interface RoleRepository extends BaseRepository<RoleEntity> {}
|
||||
public interface RoleRepository extends BaseRepository<RoleEntity> {
|
||||
|
||||
List<RoleEntity> findAllByIsSysDefault(Boolean isSysDefault);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class RoleService extends BaseService<RoleEntity, RoleRepository> {
|
||||
@@ -74,4 +76,9 @@ public class RoleService extends BaseService<RoleEntity, RoleRepository> {
|
||||
|
||||
return page.map(this.mapper::toDto);
|
||||
}
|
||||
|
||||
public List<RoleEntity> getDefaultRoles() {
|
||||
|
||||
return repository.findAllByIsSysDefault(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import cn.lihongjie.coal.organization.entity.OrganizationEntity;
|
||||
import cn.lihongjie.coal.resource.dto.ResourceDto;
|
||||
import cn.lihongjie.coal.resource.mapper.ResourceMapper;
|
||||
import cn.lihongjie.coal.resource.service.ResourceService;
|
||||
import cn.lihongjie.coal.role.service.RoleService;
|
||||
import cn.lihongjie.coal.user.dto.ChangeUserPwdDto;
|
||||
import cn.lihongjie.coal.user.dto.CreateUserDto;
|
||||
import cn.lihongjie.coal.user.dto.UpdateUserDto;
|
||||
@@ -50,6 +51,9 @@ public class UserService extends BaseService<UserEntity, UserRepository> {
|
||||
|
||||
@Autowired UserMapper mapper;
|
||||
@Autowired ConversionService conversionService;
|
||||
|
||||
@Autowired RoleService roleService;
|
||||
|
||||
private Pbkdf2PasswordEncoder passwordEncoder;
|
||||
|
||||
@PostConstruct
|
||||
@@ -69,7 +73,6 @@ public class UserService extends BaseService<UserEntity, UserRepository> {
|
||||
UserEntity entity = mapper.toEntity(request);
|
||||
|
||||
stopWatch.start("save");
|
||||
|
||||
this.repository.save(entity);
|
||||
stopWatch.stop();
|
||||
|
||||
@@ -84,7 +87,6 @@ public class UserService extends BaseService<UserEntity, UserRepository> {
|
||||
public UserDto update(UpdateUserDto request) {
|
||||
UserEntity user = this.repository.get(request.getId());
|
||||
this.mapper.updateEntity(user, request);
|
||||
|
||||
this.repository.save(user);
|
||||
return getById(user.getId());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user