优化代码

pull/55/MERGE
awenes 2023-09-21 14:21:15 +08:00
parent 65d3dfa11c
commit ec9c6231ed
39 changed files with 202 additions and 225 deletions

View File

@ -1,3 +1,20 @@
/*
* eiam-common - Employee Identity and Access Management
* Copyright © 2022-Present Jinan Yuanchuang Network Technology Co., Ltd. (support@topiam.cn)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package cn.topiam.employee.common.constant;
import static cn.topiam.employee.support.constant.EiamConstants.COLON;

View File

@ -51,24 +51,24 @@ import static cn.topiam.employee.support.repository.domain.LogicDeleteEntity.SOF
public class PermissionActionEntity extends LogicDeleteEntity<Long> {
@Serial
private static final long serialVersionUID = -3954680915360748087L;
private static final long serialVersionUID = -3954680915360748087L;
/**
*
*/
@Column(name = "value_")
private String value;
private String value;
/**
*
*/
@Column(name = "name_")
private String name;
private String name;
/**
*
*/
@Column(name = "type_")
private PermissionActionType type;
private PermissionActionType type;
/**
*

View File

@ -55,37 +55,37 @@ import static jakarta.persistence.FetchType.LAZY;
public class PermissionResourceEntity extends LogicDeleteEntity<Long> {
@Serial
private static final long serialVersionUID = 7342074686605139968L;
private static final long serialVersionUID = 7342074686605139968L;
/**
*
*/
@Column(name = "code_")
private String code;
private String code;
/**
*
*/
@Column(name = "name_")
private String name;
private String name;
/**
* ID
*/
@Column(name = "app_id")
private Long appId;
private Long appId;
/**
*
*/
@Column(name = "desc_")
private String desc;
private String desc;
/**
*
*/
@Column(name = "is_enabled")
private Boolean enabled;
private Boolean enabled;
/**
*

View File

@ -19,7 +19,6 @@ package cn.topiam.employee.common.repository.app.impl;
import java.util.List;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
@ -30,6 +29,7 @@ import org.springframework.util.ObjectUtils;
import com.google.common.collect.Lists;
import cn.topiam.employee.common.entity.app.query.AppPolicyQuery;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.common.repository.app.impl.mapper.AppPermissionPolicyPoMapper;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepositoryCustomized;

View File

@ -20,9 +20,9 @@ package cn.topiam.employee.common.repository.app.impl.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.springframework.jdbc.core.RowMapper;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.common.enums.app.AppPolicyEffect;
import cn.topiam.employee.common.enums.app.AppPolicyObjectType;
import cn.topiam.employee.common.enums.app.AppPolicySubjectType;
@ -55,8 +55,7 @@ public class AppPermissionPolicyPoMapper implements RowMapper<PermissionPolicyPO
.setSubjectType(AppPolicySubjectType.getType(rs.getString("subject_type")));
permissionPolicyPo.setSubjectName(rs.getString("subject_name"));
permissionPolicyPo.setObjectId(rs.getLong("object_id"));
permissionPolicyPo
.setObjectType(AppPolicyObjectType.getType(rs.getString("object_type")));
permissionPolicyPo.setObjectType(AppPolicyObjectType.getType(rs.getString("object_type")));
permissionPolicyPo.setObjectName(rs.getString("object_name"));
return permissionPolicyPo;
}

View File

@ -19,11 +19,11 @@ package cn.topiam.employee.common.repository.permission;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.support.repository.LogicDeleteRepository;
/**

View File

@ -20,7 +20,6 @@ package cn.topiam.employee.common.repository.permission;
import java.io.Serializable;
import java.util.Collection;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
@ -28,6 +27,7 @@ import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.support.repository.LogicDeleteRepository;
import static cn.topiam.employee.support.repository.domain.LogicDeleteEntity.SOFT_DELETE_SET;

View File

@ -17,11 +17,11 @@
*/
package cn.topiam.employee.common.repository.permission;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import cn.topiam.employee.common.entity.app.query.AppPolicyQuery;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
/**
* @author TopIAM

View File

@ -19,13 +19,13 @@ package cn.topiam.employee.common.repository.permission;
import java.util.Optional;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import org.jetbrains.annotations.NotNull;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.support.repository.LogicDeleteRepository;
/**

View File

@ -19,7 +19,6 @@ package cn.topiam.employee.common.repository.permission;
import java.util.Optional;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import org.jetbrains.annotations.NotNull;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.jpa.repository.Modifying;
@ -29,6 +28,7 @@ import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import cn.topiam.employee.support.repository.LogicDeleteRepository;
/**

View File

@ -1,22 +0,0 @@
/*
* eiam-console - Employee Identity and Access Management
* Copyright © 2022-Present Jinan Yuanchuang Network Technology Co., Ltd. (support@topiam.cn)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Role from './Role';
export default () => {
return <Role />;
};

View File

@ -19,7 +19,6 @@ package cn.topiam.employee.console.controller.permission;
import java.util.List;
import cn.topiam.employee.console.pojo.result.permission.PermissionActionListResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.MediaType;
@ -30,6 +29,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.topiam.employee.console.pojo.query.permission.PermissionActionListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionActionListResult;
import cn.topiam.employee.console.service.permission.PermissionActionService;
import cn.topiam.employee.support.result.ApiRestResult;
@ -37,7 +37,6 @@ import lombok.RequiredArgsConstructor;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_PATH;
/**
@ -49,8 +48,7 @@ import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_
@RequiredArgsConstructor
@Validated
@Tag(name = "应用权限-权限项")
@RequestMapping(value = PERMISSION_PATH
+ "/action", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = PERMISSION_PATH + "/action", produces = MediaType.APPLICATION_JSON_VALUE)
@RestController
public class PermissionActionController {

View File

@ -17,9 +17,6 @@
*/
package cn.topiam.employee.console.controller.permission;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.update.permission.PermissionPolicyUpdateParam;
import org.springframework.http.MediaType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@ -27,8 +24,11 @@ import org.springframework.web.bind.annotation.*;
import cn.topiam.employee.common.entity.app.query.AppPolicyQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionPolicyCreateParam;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionPolicyUpdateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionRoleUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionPolicyService;
import cn.topiam.employee.support.lock.Lock;
@ -41,7 +41,6 @@ import lombok.RequiredArgsConstructor;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_PATH;
/**
@ -52,8 +51,7 @@ import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_
*/
@Validated
@Tag(name = "应用权限-授权策略")
@RequestMapping(value = PERMISSION_PATH
+ "/policy", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = PERMISSION_PATH + "/policy", produces = MediaType.APPLICATION_JSON_VALUE)
@RestController
@RequiredArgsConstructor
public class PermissionPolicyController {

View File

@ -17,9 +17,6 @@
*/
package cn.topiam.employee.console.controller.permission;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import org.springframework.http.MediaType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@ -29,8 +26,11 @@ import cn.topiam.employee.audit.annotation.Audit;
import cn.topiam.employee.audit.event.type.EventType;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.console.pojo.query.permission.PermissionResourceListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionResourceCreateParam;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionResourceUpdateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionRoleUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionResourceService;
@ -47,7 +47,6 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_PATH;
/**
@ -58,8 +57,7 @@ import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_
*/
@Validated
@Tag(name = "应用权限-资源")
@RequestMapping(value = PERMISSION_PATH
+ "/resource", produces = MediaType.APPLICATION_JSON_VALUE)
@RequestMapping(value = PERMISSION_PATH + "/resource", produces = MediaType.APPLICATION_JSON_VALUE)
@RestController
@RequiredArgsConstructor
public class PermissionResourceController {
@ -77,8 +75,7 @@ public class PermissionResourceController {
@Validated PermissionResourceListQuery query) {
Page<PermissionResourceListResult> result = permissionResourceService
.getPermissionResourceList(page, query);
return ApiRestResult.<Page<PermissionResourceListResult>> builder().result(result)
.build();
return ApiRestResult.<Page<PermissionResourceListResult>> builder().result(result).build();
}
/**
@ -193,8 +190,8 @@ public class PermissionResourceController {
@Parameter(description = "值") @NotEmpty(message = "验证值不能为空") String value,
@Parameter(description = "应用ID") @NotNull(message = "应用ID不能为空") Long appId,
@Parameter(description = "ID") Long id) {
Boolean result = permissionResourceService.permissionResourceParamCheck(type, value,
appId, id);
Boolean result = permissionResourceService.permissionResourceParamCheck(type, value, appId,
id);
//返回
return ApiRestResult.<Boolean> builder().result(result).build();
}

View File

@ -17,9 +17,6 @@
*/
package cn.topiam.employee.console.controller.permission;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import org.springframework.http.MediaType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@ -29,6 +26,9 @@ import cn.topiam.employee.audit.annotation.Audit;
import cn.topiam.employee.audit.event.type.EventType;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.console.pojo.query.permission.PermissionRoleListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionRoleUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionRoleService;
import cn.topiam.employee.support.lock.Lock;
@ -44,7 +44,6 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import static cn.topiam.employee.common.constant.PermissionConstants.PERMISSION_PATH;
/**
@ -71,8 +70,8 @@ public class PermissionRoleController {
@PreAuthorize(value = "authenticated and @sae.hasAuthority(T(cn.topiam.employee.support.security.userdetails.UserType).ADMIN)")
public ApiRestResult<Page<PermissionRoleListResult>> getPermissionRoleList(PageModel page,
@Validated PermissionRoleListQuery query) {
Page<PermissionRoleListResult> result = permissionRoleService
.getPermissionRoleList(page, query);
Page<PermissionRoleListResult> result = permissionRoleService.getPermissionRoleList(page,
query);
return ApiRestResult.<Page<PermissionRoleListResult>> builder().result(result).build();
}

View File

@ -28,8 +28,8 @@ import cn.topiam.employee.audit.event.type.EventType;
import cn.topiam.employee.common.enums.MailType;
import cn.topiam.employee.common.enums.MessageCategory;
import cn.topiam.employee.common.enums.SmsType;
import cn.topiam.employee.console.pojo.save.setting.SmsProviderSaveParam;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.console.pojo.save.setting.SmsProviderSaveParam;
import cn.topiam.employee.console.service.setting.MessageSettingService;
import cn.topiam.employee.core.message.MsgVariable;
import cn.topiam.employee.core.message.sms.SmsMsgEventPublish;

View File

@ -20,8 +20,6 @@ package cn.topiam.employee.console.converter.permission;
import java.util.ArrayList;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@ -30,7 +28,9 @@ import org.springframework.util.ObjectUtils;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.app.QAppPermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.QPermissionResourceEntity;
import cn.topiam.employee.common.enums.PermissionActionType;
import cn.topiam.employee.console.pojo.query.permission.PermissionActionListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionActionListResult;
@ -49,8 +49,8 @@ public interface PermissionActionConverter {
* @param query {@link PermissionActionListQuery}
* @return {@link Predicate}
*/
default Predicate appPermissionActionListQueryConvertToPredicate(PermissionActionListQuery query) {
QAppPermissionResourceEntity resource = QAppPermissionResourceEntity.appPermissionResourceEntity;
default Predicate permissionActionListQueryConvertToPredicate(PermissionActionListQuery query) {
QPermissionResourceEntity resource = QPermissionResourceEntity.permissionResourceEntity;
Predicate predicate = ExpressionUtils.and(resource.isNotNull(),
resource.deleted.eq(Boolean.FALSE));
//查询条件

View File

@ -20,14 +20,14 @@ package cn.topiam.employee.console.converter.permission;
import java.util.ArrayList;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionPolicyCreateParam;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.springframework.util.CollectionUtils;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionPolicyCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionPolicyUpdateParam;
import cn.topiam.employee.support.repository.page.domain.Page;

View File

@ -20,10 +20,6 @@ package cn.topiam.employee.console.converter.permission;
import java.util.ArrayList;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.update.permission.PermissionResourceUpdateParam;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@ -33,9 +29,13 @@ import org.springframework.util.ObjectUtils;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.app.QAppPermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.QPermissionResourceEntity;
import cn.topiam.employee.console.pojo.query.permission.PermissionResourceListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionResourceCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionResourceUpdateParam;
import cn.topiam.employee.support.repository.page.domain.Page;
/**
@ -54,7 +54,7 @@ public interface PermissionResourceConverter {
* @return {@link Predicate}
*/
default Predicate resourcePaginationParamConvertToPredicate(PermissionResourceListQuery query) {
QAppPermissionResourceEntity resource = QAppPermissionResourceEntity.appPermissionResourceEntity;
QPermissionResourceEntity resource = QPermissionResourceEntity.permissionResourceEntity;
Predicate predicate = ExpressionUtils.and(resource.isNotNull(),
resource.deleted.eq(Boolean.FALSE));
//查询条件

View File

@ -20,7 +20,6 @@ package cn.topiam.employee.console.converter.permission;
import java.util.ArrayList;
import java.util.List;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@ -30,11 +29,12 @@ import org.springframework.util.ObjectUtils;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.app.QAppPermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.QPermissionRoleEntity;
import cn.topiam.employee.console.pojo.query.permission.PermissionRoleListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionRoleUpdateParam;
import cn.topiam.employee.support.repository.page.domain.Page;
@ -125,7 +125,7 @@ public interface PermissionRoleConverter {
* @return {@link PermissionRoleEntity}
*/
default Predicate rolePaginationParamConvertToPredicate(PermissionRoleListQuery query) {
QAppPermissionRoleEntity role = QAppPermissionRoleEntity.appPermissionRoleEntity;
QPermissionRoleEntity role = QPermissionRoleEntity.permissionRoleEntity;
Predicate predicate = ExpressionUtils.and(role.isNotNull(), role.deleted.eq(Boolean.FALSE));
//查询条件
//@formatter:off

View File

@ -40,9 +40,9 @@ import cn.topiam.employee.common.message.sms.aliyun.AliyunSmsProviderConfig;
import cn.topiam.employee.common.message.sms.qiniu.QiNiuSmsProviderConfig;
import cn.topiam.employee.common.message.sms.tencent.TencentSmsProviderConfig;
import cn.topiam.employee.console.pojo.result.setting.EmailProviderConfigResult;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.console.pojo.save.setting.MailProviderSaveParam;
import cn.topiam.employee.console.pojo.save.setting.SmsProviderSaveParam;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.support.exception.TopIamException;
import cn.topiam.employee.support.validation.ValidationUtils;

View File

@ -40,31 +40,31 @@ public class PermissionResourceCreateParam implements Serializable {
*/
@Schema(description = "资源编码")
@NotBlank(message = "资源编码不能为空")
private String code;
private String code;
/**
*
*/
@Schema(description = "资源名称")
@NotBlank(message = "资源名称不能为空")
private String name;
private String name;
/**
*
*/
@Schema(description = "资源描述")
@NotBlank(message = "资源描述不能为空")
private String desc;
private String desc;
/**
*
*/
private Boolean enabled = true;
private Boolean enabled = true;
/**
*
*/
@Schema(description = "所属应用")
@NotNull(message = "所属应用不能为空")
private Long appId;
private Long appId;
/**
*

View File

@ -40,47 +40,47 @@ import static io.swagger.v3.oas.annotations.media.Schema.AccessMode.READ_ONLY;
@Schema(description = "修改资源入参")
public class PermissionResourceUpdateParam implements Serializable {
@Serial
private static final long serialVersionUID = 6021548372386059064L;
private static final long serialVersionUID = 6021548372386059064L;
/**
* ID
*/
@Schema(accessMode = READ_ONLY)
@NotBlank(message = "ID不能为空")
private String id;
private String id;
/**
*
*/
@Schema(description = "资源名称")
@NotBlank(message = "资源名称不能为空")
private String name;
private String name;
/**
*
*/
@Schema(description = "资源编码")
@NotBlank(message = "资源编码不能为空")
private String code;
private String code;
/**
*
*/
@Schema(description = "资源描述")
@NotBlank(message = "资源描述不能为空")
private String desc;
private String desc;
/**
*
*/
@Schema(description = "所属应用")
@NotNull(message = "所属应用不能为空")
private Long appId;
private Long appId;
/**
*
*/
@Schema(description = "是否启用")
private Boolean enabled;
private Boolean enabled;
/**
*

View File

@ -41,8 +41,7 @@ public interface PermissionPolicyService {
* @param query {@link AppPolicyQuery}
* @return {@link PermissionPolicyListResult}
*/
Page<PermissionPolicyListResult> getPermissionPolicyList(PageModel page,
AppPolicyQuery query);
Page<PermissionPolicyListResult> getPermissionPolicyList(PageModel page, AppPolicyQuery query);
/**
*

View File

@ -19,13 +19,13 @@ package cn.topiam.employee.console.service.permission.impl;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.console.converter.permission.PermissionActionConverter;
import org.springframework.stereotype.Service;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.repository.permission.AppPermissionResourceRepository;
import cn.topiam.employee.console.converter.permission.PermissionActionConverter;
import cn.topiam.employee.console.pojo.query.permission.PermissionActionListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionActionListResult;
import cn.topiam.employee.console.service.permission.PermissionActionService;
@ -53,13 +53,13 @@ public class PermissionActionServiceImpl implements PermissionActionService {
@Override
public List<PermissionActionListResult> getPermissionActionList(PermissionActionListQuery query) {
Predicate predicate = permissionActionConverter
.appPermissionActionListQueryConvertToPredicate(query);
List<PermissionResourceEntity> list = (List<PermissionResourceEntity>) appPermissionResourceRepository
.permissionActionListQueryConvertToPredicate(query);
List<PermissionResourceEntity> list = (List<PermissionResourceEntity>) permissionResourceRepository
.findAll(predicate);
return permissionActionConverter.entityConvertToResourceActionListResult(list);
}
private final AppPermissionResourceRepository appPermissionResourceRepository;
private final AppPermissionResourceRepository permissionResourceRepository;
private final PermissionActionConverter permissionActionConverter;
private final PermissionActionConverter permissionActionConverter;
}

View File

@ -17,8 +17,6 @@
*/
package cn.topiam.employee.console.service.permission.impl;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionPolicyCreateParam;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -30,6 +28,8 @@ import cn.topiam.employee.common.exception.app.AppPolicyNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepository;
import cn.topiam.employee.console.converter.permission.PermissionPolicyConverter;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionPolicyListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionPolicyCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionPolicyUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionPolicyService;
import cn.topiam.employee.support.repository.page.domain.Page;
@ -61,7 +61,7 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
AppPolicyQuery query) {
org.springframework.data.domain.Page<PermissionPolicyPO> data;
QPageRequest request = QPageRequest.of(page.getCurrent(), page.getPageSize());
data = appPermissionPolicyRepository.findPage(query, request);
data = permissionPolicyRepository.findPage(query, request);
return permissionPolicyConverter.entityConvertToPolicyListResult(data);
}
@ -85,9 +85,8 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
@Override
public Boolean deletePermissionPolicy(String id) {
Long policyId = Long.valueOf(id);
appPermissionPolicyRepository.findById(policyId)
.orElseThrow(AppPolicyNotExistException::new);
appPermissionPolicyRepository.deleteById(policyId);
permissionPolicyRepository.findById(policyId).orElseThrow(AppPolicyNotExistException::new);
permissionPolicyRepository.deleteById(policyId);
return true;
}
@ -103,7 +102,7 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
PermissionPolicyEntity resource = permissionPolicyConverter
.policyCreateParamConvertToEntity(param);
// 新增策略
appPermissionPolicyRepository.save(resource);
permissionPolicyRepository.save(resource);
return true;
}
@ -118,11 +117,11 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
PermissionPolicyEntity resource = permissionPolicyConverter
.policyUpdateParamConvertToEntity(param);
// 更新策略
appPermissionPolicyRepository.save(resource);
permissionPolicyRepository.save(resource);
return null;
}
private final PermissionPolicyConverter permissionPolicyConverter;
private final PermissionPolicyConverter permissionPolicyConverter;
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
}

View File

@ -23,12 +23,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionResourceCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionResourceUpdateParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
@ -40,7 +34,9 @@ import com.querydsl.core.types.dsl.BooleanExpression;
import cn.topiam.employee.audit.context.AuditContext;
import cn.topiam.employee.audit.entity.Target;
import cn.topiam.employee.audit.enums.TargetType;
import cn.topiam.employee.common.entity.app.QAppPermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.QPermissionResourceEntity;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.common.exception.app.AppResourceNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionActionRepository;
@ -48,7 +44,11 @@ import cn.topiam.employee.common.repository.permission.AppPermissionPolicyReposi
import cn.topiam.employee.common.repository.permission.AppPermissionResourceRepository;
import cn.topiam.employee.console.converter.permission.PermissionResourceConverter;
import cn.topiam.employee.console.pojo.query.permission.PermissionResourceListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceGetResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionResourceListResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionResourceCreateParam;
import cn.topiam.employee.console.pojo.save.permission.PermissionsActionParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionResourceUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionResourceService;
import cn.topiam.employee.support.exception.BadParamsException;
import cn.topiam.employee.support.repository.page.domain.Page;
@ -114,12 +114,12 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
Long resourceId = Long.valueOf(id);
PermissionResourceEntity resource = appResourceRepository.findById(resourceId)
.orElseThrow(AppResourceNotExistException::new);
List<PermissionActionEntity> actionList = appPermissionActionRepository
List<PermissionActionEntity> actionList = permissionActionRepository
.findAllByResource(resource);
List<Long> objectIdList = new ArrayList<>(
actionList.stream().map(PermissionActionEntity::getId).toList());
objectIdList.add(resourceId);
appPermissionPolicyRepository.deleteAllByObjectIdIn(objectIdList);
permissionPolicyRepository.deleteAllByObjectIdIn(objectIdList);
appResourceRepository.deleteById(resourceId);
AuditContext
.setTarget(Target.builder().id(id).type(TargetType.APP_PERMISSION_RESOURCE).build());
@ -139,7 +139,7 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
.orElseThrow(AppResourceNotExistException::new);
AuditContext.setTarget(
Target.builder().id(id.toString()).type(TargetType.APP_PERMISSION_RESOURCE).build());
return appPermissionPolicyRepository.updateStatus(id, enabled) > 0;
return permissionPolicyRepository.updateStatus(id, enabled) > 0;
}
/**
@ -177,16 +177,16 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
buildActions(param.getActions(), resource);
BeanUtils.merge(resource, entity, LAST_MODIFIED_BY, LAST_MODIFIED_TIME);
// 查询资源下所有权限
List<PermissionActionEntity> actionList = appPermissionActionRepository
List<PermissionActionEntity> actionList = permissionActionRepository
.findAllByResource(resource);
// 取出未删除的权限id
Set<Long> reservedSet = resource.getActions().stream().map(PermissionActionEntity::getId)
.collect(Collectors.toSet());
// 过滤要删除的权限id
List<Long> removeActions = actionList.stream()
.filter(item -> !reservedSet.contains(item.getId()))
.map(PermissionActionEntity::getId).toList();
appPermissionActionRepository.deleteAllById(removeActions);
.filter(item -> !reservedSet.contains(item.getId())).map(PermissionActionEntity::getId)
.toList();
permissionActionRepository.deleteAllById(removeActions);
// 更新资源
appResourceRepository.save(entity);
AuditContext.setTarget(
@ -218,7 +218,7 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
@Override
public Boolean permissionResourceParamCheck(CheckValidityType type, String value, Long appId,
Long id) {
QAppPermissionResourceEntity role = QAppPermissionResourceEntity.appPermissionResourceEntity;
QPermissionResourceEntity role = QPermissionResourceEntity.permissionResourceEntity;
PermissionResourceEntity entity = new PermissionResourceEntity();
boolean result = false;
// ID存在说明是修改操作查询一下当前数据
@ -267,15 +267,15 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
resource.setActions(list);
}
private final PermissionResourceConverter permissionResourceConverter;
private final PermissionResourceConverter permissionResourceConverter;
private final AppPermissionResourceRepository appResourceRepository;
/**
* PolicyRepository
*/
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
/**
* ActionRepository
*/
private final AppPermissionActionRepository appPermissionActionRepository;
private final AppPermissionActionRepository permissionActionRepository;
}

View File

@ -22,10 +22,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
import cn.topiam.employee.console.converter.permission.PermissionRoleConverter;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
@ -37,13 +33,17 @@ import com.querydsl.core.types.dsl.BooleanExpression;
import cn.topiam.employee.audit.context.AuditContext;
import cn.topiam.employee.audit.entity.Target;
import cn.topiam.employee.audit.enums.TargetType;
import cn.topiam.employee.common.entity.app.QAppPermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.QPermissionRoleEntity;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.common.exception.app.AppRoleNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepository;
import cn.topiam.employee.common.repository.permission.AppPermissionRoleRepository;
import cn.topiam.employee.console.converter.permission.PermissionRoleConverter;
import cn.topiam.employee.console.pojo.query.permission.PermissionRoleListQuery;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleListResult;
import cn.topiam.employee.console.pojo.result.permission.PermissionRoleResult;
import cn.topiam.employee.console.pojo.save.permission.PermissionRoleCreateParam;
import cn.topiam.employee.console.pojo.update.permission.PermissionRoleUpdateParam;
import cn.topiam.employee.console.service.permission.PermissionRoleService;
import cn.topiam.employee.support.repository.page.domain.Page;
@ -76,10 +76,9 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
public Page<PermissionRoleListResult> getPermissionRoleList(PageModel page,
PermissionRoleListQuery query) {
org.springframework.data.domain.Page<PermissionRoleEntity> data;
Predicate predicate = permissionRoleConverter
.rolePaginationParamConvertToPredicate(query);
Predicate predicate = permissionRoleConverter.rolePaginationParamConvertToPredicate(query);
QPageRequest request = QPageRequest.of(page.getCurrent(), page.getPageSize());
data = appPermissionRoleRepository.findAll(predicate, request);
data = permissionRoleRepository.findAll(predicate, request);
return permissionRoleConverter.entityConvertToRolePaginationResult(data);
}
@ -91,9 +90,8 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public boolean createPermissionRole(PermissionRoleCreateParam param) {
PermissionRoleEntity entity = permissionRoleConverter
.roleCreateParamConvertToEntity(param);
appPermissionRoleRepository.save(entity);
PermissionRoleEntity entity = permissionRoleConverter.roleCreateParamConvertToEntity(param);
permissionRoleRepository.save(entity);
AuditContext.setTarget(Target.builder().id(entity.getId().toString())
.type(TargetType.APP_PERMISSION_ROLE).build());
return true;
@ -105,12 +103,11 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public boolean updatePermissionRole(PermissionRoleUpdateParam param) {
PermissionRoleEntity source = permissionRoleConverter
.roleUpdateParamConvertToEntity(param);
PermissionRoleEntity target = appPermissionRoleRepository
.findById(Long.valueOf(param.getId())).orElseThrow(AppRoleNotExistException::new);
PermissionRoleEntity source = permissionRoleConverter.roleUpdateParamConvertToEntity(param);
PermissionRoleEntity target = permissionRoleRepository.findById(Long.valueOf(param.getId()))
.orElseThrow(AppRoleNotExistException::new);
BeanUtils.merge(source, target, LAST_MODIFIED_TIME, LAST_MODIFIED_BY);
appPermissionRoleRepository.save(target);
permissionRoleRepository.save(target);
AuditContext.setTarget(Target.builder().id(target.getId().toString())
.type(TargetType.APP_PERMISSION_ROLE).build());
return true;
@ -127,10 +124,10 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
public boolean deletePermissionRole(String ids) {
List<String> idList = Arrays.stream(ids.split(",")).toList();
List<Long> longIds = idList.stream().map(Long::parseLong).toList();
appPermissionRoleRepository.deleteAllById(longIds);
permissionRoleRepository.deleteAllById(longIds);
// 删除对应策略
appPermissionPolicyRepository.deleteAllBySubjectIdIn(idList);
appPermissionPolicyRepository.deleteAllByObjectIdIn(longIds);
permissionPolicyRepository.deleteAllBySubjectIdIn(idList);
permissionPolicyRepository.deleteAllByObjectIdIn(longIds);
AuditContext
.setTarget(Target.builder().id(ids).type(TargetType.APP_PERMISSION_ROLE).build());
return true;
@ -145,7 +142,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
@Override
public PermissionRoleResult getPermissionRole(Long id) {
//查询
Optional<PermissionRoleEntity> entity = appPermissionRoleRepository.findById(id);
Optional<PermissionRoleEntity> entity = permissionRoleRepository.findById(id);
//映射
return permissionRoleConverter.entityConvertToRoleDetailResult(entity.orElse(null));
}
@ -163,12 +160,12 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
@Override
public Boolean permissionRoleParamCheck(CheckValidityType type, String value, Long appId,
Long id) {
QAppPermissionRoleEntity role = QAppPermissionRoleEntity.appPermissionRoleEntity;
QPermissionRoleEntity role = QPermissionRoleEntity.permissionRoleEntity;
PermissionRoleEntity entity = new PermissionRoleEntity();
boolean result = false;
// ID存在说明是修改操作查询一下当前数据
if (Objects.nonNull(id)) {
entity = appPermissionRoleRepository.findById(id)
entity = permissionRoleRepository.findById(id)
.orElseThrow(AppRoleNotExistException::new);
}
//角色编码
@ -178,7 +175,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
}
BooleanExpression eq = role.code.eq(value);
eq.and(role.appId.eq(appId));
result = !appPermissionRoleRepository.exists(eq);
result = !permissionRoleRepository.exists(eq);
}
//角色名称
if (CheckValidityType.NAME.equals(type)) {
@ -187,7 +184,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
}
BooleanExpression eq = role.name.eq(value);
eq.and(role.appId.eq(appId));
result = !appPermissionRoleRepository.exists(eq);
result = !permissionRoleRepository.exists(eq);
}
return result;
}
@ -201,20 +198,20 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public Boolean updatePermissionRoleStatus(String id, Boolean status) {
appPermissionRoleRepository.updateStatus(id, status);
permissionRoleRepository.updateStatus(id, status);
return true;
}
/**
*
*/
private final PermissionRoleConverter permissionRoleConverter;
private final PermissionRoleConverter permissionRoleConverter;
/**
* RoleRepository
*/
private final AppPermissionRoleRepository appPermissionRoleRepository;
private final AppPermissionRoleRepository permissionRoleRepository;
/**
* PolicyRepository
*/
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
}

View File

@ -18,9 +18,9 @@
package cn.topiam.employee.console.service.setting;
import cn.topiam.employee.console.pojo.result.setting.EmailProviderConfigResult;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.console.pojo.save.setting.MailProviderSaveParam;
import cn.topiam.employee.console.pojo.save.setting.SmsProviderSaveParam;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
/**
*

View File

@ -23,9 +23,9 @@ import cn.topiam.employee.common.entity.setting.SettingEntity;
import cn.topiam.employee.common.repository.setting.SettingRepository;
import cn.topiam.employee.console.converter.setting.MessageSettingConverter;
import cn.topiam.employee.console.pojo.result.setting.EmailProviderConfigResult;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.console.pojo.save.setting.MailProviderSaveParam;
import cn.topiam.employee.console.pojo.save.setting.SmsProviderSaveParam;
import cn.topiam.employee.console.pojo.result.setting.SmsProviderConfigResult;
import cn.topiam.employee.console.service.setting.MessageSettingService;
import cn.topiam.employee.support.context.ApplicationContextHelp;
import static cn.topiam.employee.common.constant.ConfigBeanNameConstants.MAIL_PROVIDER_SEND;

View File

@ -17,10 +17,10 @@
*/
package cn.topiam.employee.openapi.converter.permission;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.openapi.pojo.request.app.AppPermissionsActionParam;
/**

View File

@ -19,12 +19,12 @@ package cn.topiam.employee.openapi.converter.permission;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.springframework.util.CollectionUtils;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.openapi.pojo.request.app.save.AppPermissionPolicyCreateParam;
import cn.topiam.employee.openapi.pojo.request.app.update.AppPermissionPolicyUpdateParam;
import cn.topiam.employee.support.repository.page.domain.Page;

View File

@ -20,7 +20,6 @@ package cn.topiam.employee.openapi.converter.permission;
import java.util.ArrayList;
import java.util.List;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@ -29,7 +28,8 @@ import org.springframework.util.CollectionUtils;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.app.QAppPermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.QPermissionResourceEntity;
import cn.topiam.employee.openapi.pojo.request.app.query.AppResourceListQuery;
import cn.topiam.employee.openapi.pojo.request.app.save.AppPermissionResourceCreateParam;
import cn.topiam.employee.openapi.pojo.request.app.update.AppPermissionResourceUpdateParam;
@ -53,7 +53,7 @@ public interface PermissionResourceConverter {
* @return {@link Predicate}
*/
default Predicate resourcePaginationParamConvertToPredicate(AppResourceListQuery query) {
QAppPermissionResourceEntity resource = QAppPermissionResourceEntity.appPermissionResourceEntity;
QPermissionResourceEntity resource = QPermissionResourceEntity.permissionResourceEntity;
Predicate predicate = ExpressionUtils.and(resource.isNotNull(),
resource.deleted.eq(Boolean.FALSE));
//查询条件

View File

@ -29,8 +29,8 @@ import org.springframework.util.ObjectUtils;
import com.querydsl.core.types.ExpressionUtils;
import com.querydsl.core.types.Predicate;
import cn.topiam.employee.common.entity.app.QAppPermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.QPermissionRoleEntity;
import cn.topiam.employee.openapi.pojo.request.app.query.AppPermissionRoleListQuery;
import cn.topiam.employee.openapi.pojo.request.app.save.AppPermissionRoleCreateParam;
import cn.topiam.employee.openapi.pojo.request.app.update.PermissionRoleUpdateParam;
@ -125,7 +125,7 @@ public interface PermissionRoleConverter {
* @return {@link PermissionRoleEntity}
*/
default Predicate rolePaginationParamConvertToPredicate(AppPermissionRoleListQuery query) {
QAppPermissionRoleEntity role = QAppPermissionRoleEntity.appPermissionRoleEntity;
QPermissionRoleEntity role = QPermissionRoleEntity.permissionRoleEntity;
Predicate predicate = ExpressionUtils.and(role.isNotNull(), role.deleted.eq(Boolean.FALSE));
//查询条件
//@formatter:off

View File

@ -17,12 +17,12 @@
*/
package cn.topiam.employee.openapi.endpoint.permission;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.openapi.pojo.request.app.query.OpenApiPolicyQuery;
import cn.topiam.employee.openapi.service.PermissionPolicyService;
import cn.topiam.employee.support.repository.page.domain.Page;

View File

@ -55,8 +55,8 @@ public class PermissionRoleEndpoint {
@GetMapping(value = "/list")
public ApiRestResult<Page<AppPermissionRoleListResult>> getPermissionRoleList(PageModel page,
@Validated AppPermissionRoleListQuery query) {
Page<AppPermissionRoleListResult> result = permissionRoleService
.getPermissionRoleList(page, query);
Page<AppPermissionRoleListResult> result = permissionRoleService.getPermissionRoleList(page,
query);
return ApiRestResult.<Page<AppPermissionRoleListResult>> builder().result(result).build();
}
//2、新增角色

View File

@ -17,13 +17,13 @@
*/
package cn.topiam.employee.openapi.service.impl;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.topiam.employee.common.entity.app.query.AppPolicyQuery;
import cn.topiam.employee.common.entity.permission.PermissionPolicyEntity;
import cn.topiam.employee.common.entity.permission.po.PermissionPolicyPO;
import cn.topiam.employee.common.exception.app.AppPolicyNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepository;
import cn.topiam.employee.openapi.converter.permission.PermissionPolicyConverter;
@ -68,7 +68,7 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
appPolicyQuery.setSubjectType(query.getSubjectType());
appPolicyQuery.setObjectType(query.getObjectType());
QPageRequest request = QPageRequest.of(page.getCurrent(), page.getPageSize());
org.springframework.data.domain.Page<PermissionPolicyPO> data = appPermissionPolicyRepository
org.springframework.data.domain.Page<PermissionPolicyPO> data = permissionPolicyRepository
.findPage(appPolicyQuery, request);
return permissionPolicyConverter.entityConvertToPolicyListResult(data);
}
@ -93,9 +93,8 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
@Override
public Boolean deletePermissionPolicy(String id) {
Long policyId = Long.valueOf(id);
appPermissionPolicyRepository.findById(policyId)
.orElseThrow(AppPolicyNotExistException::new);
appPermissionPolicyRepository.deleteById(policyId);
permissionPolicyRepository.findById(policyId).orElseThrow(AppPolicyNotExistException::new);
permissionPolicyRepository.deleteById(policyId);
return true;
}
@ -111,7 +110,7 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
PermissionPolicyEntity resource = permissionPolicyConverter
.policyCreateParamConvertToEntity(param);
// 新增策略
appPermissionPolicyRepository.save(resource);
permissionPolicyRepository.save(resource);
return true;
}
@ -126,11 +125,11 @@ public class PermissionPolicyServiceImpl implements PermissionPolicyService {
PermissionPolicyEntity resource = permissionPolicyConverter
.policyUpdateParamConvertToEntity(param);
// 更新策略
appPermissionPolicyRepository.save(resource);
permissionPolicyRepository.save(resource);
return null;
}
private final PermissionPolicyConverter permissionPolicyConverter;
private final PermissionPolicyConverter permissionPolicyConverter;
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
}

View File

@ -23,9 +23,6 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.openapi.converter.permission.PermissionResourceConverter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
@ -34,12 +31,15 @@ import org.springframework.transaction.annotation.Transactional;
import com.querydsl.core.types.Predicate;
import com.querydsl.core.types.dsl.BooleanExpression;
import cn.topiam.employee.common.entity.app.QAppPermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.PermissionActionEntity;
import cn.topiam.employee.common.entity.permission.PermissionResourceEntity;
import cn.topiam.employee.common.entity.permission.QPermissionResourceEntity;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.common.exception.app.AppResourceNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionActionRepository;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepository;
import cn.topiam.employee.common.repository.permission.AppPermissionResourceRepository;
import cn.topiam.employee.openapi.converter.permission.PermissionResourceConverter;
import cn.topiam.employee.openapi.pojo.request.app.AppPermissionsActionParam;
import cn.topiam.employee.openapi.pojo.request.app.query.AppResourceListQuery;
import cn.topiam.employee.openapi.pojo.request.app.query.OpenApiPolicyQuery;
@ -108,12 +108,12 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
Long resourceId = Long.valueOf(id);
PermissionResourceEntity resource = appResourceRepository.findById(resourceId)
.orElseThrow(AppResourceNotExistException::new);
List<PermissionActionEntity> actionList = appPermissionActionRepository
List<PermissionActionEntity> actionList = permissionActionRepository
.findAllByResource(resource);
List<Long> objectIdList = new ArrayList<>(
actionList.stream().map(PermissionActionEntity::getId).toList());
objectIdList.add(resourceId);
appPermissionPolicyRepository.deleteAllByObjectIdIn(objectIdList);
permissionPolicyRepository.deleteAllByObjectIdIn(objectIdList);
appResourceRepository.deleteById(resourceId);
return true;
}
@ -148,16 +148,16 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
.resourceUpdateParamConvertToEntity(param);
buildActions(param.getActions(), resource);
// 查询资源下所有权限
List<PermissionActionEntity> actionList = appPermissionActionRepository
List<PermissionActionEntity> actionList = permissionActionRepository
.findAllByResource(resource);
// 取出未删除的权限id
Set<Long> reservedSet = resource.getActions().stream().map(PermissionActionEntity::getId)
.collect(Collectors.toSet());
// 过滤要删除的权限id
List<Long> removeActions = actionList.stream()
.filter(item -> reservedSet.contains(item.getId()))
.map(PermissionActionEntity::getId).toList();
appPermissionPolicyRepository.deleteAllByObjectIdIn(removeActions);
.filter(item -> reservedSet.contains(item.getId())).map(PermissionActionEntity::getId)
.toList();
permissionPolicyRepository.deleteAllByObjectIdIn(removeActions);
// 更新资源
appResourceRepository.save(resource);
return true;
@ -176,7 +176,7 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
@Override
public Boolean permissionResourceParamCheck(CheckValidityType type, String value, Long appId,
Long id) {
QAppPermissionResourceEntity role = QAppPermissionResourceEntity.appPermissionResourceEntity;
QPermissionResourceEntity role = QPermissionResourceEntity.permissionResourceEntity;
PermissionResourceEntity entity = new PermissionResourceEntity();
boolean result = false;
// ID存在说明是修改操作查询一下当前数据
@ -227,15 +227,15 @@ public class PermissionResourceServiceImpl implements PermissionResourceService
resource.setActions(list);
}
private final PermissionResourceConverter permissionResourceConverter;
private final PermissionResourceConverter permissionResourceConverter;
private final AppPermissionResourceRepository appResourceRepository;
/**
* PolicyRepository
*/
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
/**
* ActionRepository
*/
private final AppPermissionActionRepository appPermissionActionRepository;
private final AppPermissionActionRepository permissionActionRepository;
}

View File

@ -22,7 +22,6 @@ import java.util.List;
import java.util.Objects;
import java.util.Optional;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.querydsl.QPageRequest;
import org.springframework.stereotype.Service;
@ -31,7 +30,8 @@ import org.springframework.transaction.annotation.Transactional;
import com.querydsl.core.types.Predicate;
import com.querydsl.core.types.dsl.BooleanExpression;
import cn.topiam.employee.common.entity.app.QAppPermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.PermissionRoleEntity;
import cn.topiam.employee.common.entity.permission.QPermissionRoleEntity;
import cn.topiam.employee.common.enums.CheckValidityType;
import cn.topiam.employee.common.exception.app.AppRoleNotExistException;
import cn.topiam.employee.common.repository.permission.AppPermissionPolicyRepository;
@ -73,10 +73,9 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
public Page<AppPermissionRoleListResult> getPermissionRoleList(PageModel page,
AppPermissionRoleListQuery query) {
org.springframework.data.domain.Page<PermissionRoleEntity> data;
Predicate predicate = permissionRoleConverter
.rolePaginationParamConvertToPredicate(query);
Predicate predicate = permissionRoleConverter.rolePaginationParamConvertToPredicate(query);
QPageRequest request = QPageRequest.of(page.getCurrent(), page.getPageSize());
data = appPermissionRoleRepository.findAll(predicate, request);
data = permissionRoleRepository.findAll(predicate, request);
return permissionRoleConverter.entityConvertToRolePaginationResult(data);
}
@ -88,9 +87,8 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public boolean createPermissionRole(AppPermissionRoleCreateParam param) {
PermissionRoleEntity entity = permissionRoleConverter
.roleCreateParamConvertToEntity(param);
appPermissionRoleRepository.save(entity);
PermissionRoleEntity entity = permissionRoleConverter.roleCreateParamConvertToEntity(param);
permissionRoleRepository.save(entity);
return true;
}
@ -100,12 +98,11 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public boolean updatePermissionRole(PermissionRoleUpdateParam param) {
PermissionRoleEntity source = permissionRoleConverter
.roleUpdateParamConvertToEntity(param);
PermissionRoleEntity target = appPermissionRoleRepository
.findById(Long.valueOf(param.getId())).orElseThrow(AppRoleNotExistException::new);
PermissionRoleEntity source = permissionRoleConverter.roleUpdateParamConvertToEntity(param);
PermissionRoleEntity target = permissionRoleRepository.findById(Long.valueOf(param.getId()))
.orElseThrow(AppRoleNotExistException::new);
BeanUtils.merge(source, target, LAST_MODIFIED_TIME, LAST_MODIFIED_BY);
appPermissionRoleRepository.save(target);
permissionRoleRepository.save(target);
return true;
}
@ -120,10 +117,10 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
public boolean deletePermissionRole(String ids) {
List<String> idList = Arrays.stream(ids.split(",")).toList();
List<Long> longIds = idList.stream().map(Long::parseLong).toList();
appPermissionRoleRepository.deleteAllById(longIds);
permissionRoleRepository.deleteAllById(longIds);
// 删除对应策略
appPermissionPolicyRepository.deleteAllBySubjectIdIn(idList);
appPermissionPolicyRepository.deleteAllByObjectIdIn(longIds);
permissionPolicyRepository.deleteAllBySubjectIdIn(idList);
permissionPolicyRepository.deleteAllByObjectIdIn(longIds);
return true;
}
@ -136,7 +133,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
@Override
public AppPermissionRoleResult getPermissionRole(Long id) {
//查询
Optional<PermissionRoleEntity> entity = appPermissionRoleRepository.findById(id);
Optional<PermissionRoleEntity> entity = permissionRoleRepository.findById(id);
//映射
return permissionRoleConverter.entityConvertToRoleDetailResult(entity.orElse(null));
}
@ -154,12 +151,12 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
@Override
public Boolean permissionRoleParamCheck(CheckValidityType type, String value, Long appId,
Long id) {
QAppPermissionRoleEntity role = QAppPermissionRoleEntity.appPermissionRoleEntity;
QPermissionRoleEntity role = QPermissionRoleEntity.permissionRoleEntity;
PermissionRoleEntity entity = new PermissionRoleEntity();
boolean result = false;
// ID存在说明是修改操作查询一下当前数据
if (Objects.nonNull(id)) {
entity = appPermissionRoleRepository.findById(id)
entity = permissionRoleRepository.findById(id)
.orElseThrow(AppRoleNotExistException::new);
}
//角色编码
@ -169,7 +166,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
}
BooleanExpression eq = role.code.eq(value);
eq.and(role.appId.eq(appId));
result = !appPermissionRoleRepository.exists(eq);
result = !permissionRoleRepository.exists(eq);
}
//角色名称
if (CheckValidityType.NAME.equals(type)) {
@ -178,7 +175,7 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
}
BooleanExpression eq = role.name.eq(value);
eq.and(role.appId.eq(appId));
result = !appPermissionRoleRepository.exists(eq);
result = !permissionRoleRepository.exists(eq);
}
return result;
}
@ -192,20 +189,20 @@ public class PermissionRoleServiceImpl implements PermissionRoleService {
*/
@Override
public Boolean updatePermissionRoleStatus(String id, Boolean status) {
appPermissionRoleRepository.updateStatus(id, status);
permissionRoleRepository.updateStatus(id, status);
return true;
}
/**
*
*/
private final PermissionRoleConverter permissionRoleConverter;
private final PermissionRoleConverter permissionRoleConverter;
/**
* RoleRepository
*/
private final AppPermissionRoleRepository appPermissionRoleRepository;
private final AppPermissionRoleRepository permissionRoleRepository;
/**
* PolicyRepository
*/
private final AppPermissionPolicyRepository appPermissionPolicyRepository;
private final AppPermissionPolicyRepository permissionPolicyRepository;
}