mirror of https://gitee.com/topiam/eiam
添加应用功能优化
parent
e976af0188
commit
7a5bd096dd
|
@ -17,6 +17,8 @@
|
|||
*/
|
||||
package cn.topiam.employee.application;
|
||||
|
||||
import cn.topiam.employee.common.entity.app.AppGroupAssociationEntity;
|
||||
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
|
||||
import org.apache.commons.lang3.RandomStringUtils;
|
||||
import org.springframework.util.AlternativeJdkIdGenerator;
|
||||
import org.springframework.util.IdGenerator;
|
||||
|
@ -33,6 +35,9 @@ import cn.topiam.employee.common.repository.app.AppRepository;
|
|||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* AbstractApplicationService
|
||||
*
|
||||
|
@ -55,7 +60,7 @@ public abstract class AbstractApplicationService implements ApplicationService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public AppEntity createApp(String name, String icon, String remark, Long groupId,
|
||||
public AppEntity createApp(String name, String icon, String remark, Long[] groupId,
|
||||
InitLoginType initLoginType, AuthorizationType authorizationType) {
|
||||
AppEntity appEntity = new AppEntity();
|
||||
appEntity.setName(name);
|
||||
|
@ -70,28 +75,44 @@ public abstract class AbstractApplicationService implements ApplicationService {
|
|||
appEntity.setInitLoginType(initLoginType);
|
||||
appEntity.setAuthorizationType(authorizationType);
|
||||
appEntity.setRemark(remark);
|
||||
return appRepository.save(appEntity);
|
||||
appRepository.save(appEntity);
|
||||
List<AppGroupAssociationEntity> list = new ArrayList<>();
|
||||
for (Long id : groupId) {
|
||||
AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity();
|
||||
appGroupAssociationEntity.setGroupId(id);
|
||||
appGroupAssociationEntity.setAppId(appEntity.getId());
|
||||
list.add(appGroupAssociationEntity);
|
||||
}
|
||||
appGroupAssociationRepository.saveAll(list);
|
||||
return appEntity;
|
||||
}
|
||||
|
||||
/**
|
||||
* AppAccountRepository
|
||||
*/
|
||||
protected final AppAccountRepository appAccountRepository;
|
||||
protected final AppAccountRepository appAccountRepository;
|
||||
|
||||
/**
|
||||
* AppGroupAssociationRepository
|
||||
*/
|
||||
protected final AppGroupAssociationRepository appGroupAssociationRepository;
|
||||
|
||||
/**
|
||||
* ApplicationRepository
|
||||
*/
|
||||
protected final AppRepository appRepository;
|
||||
protected final AppRepository appRepository;
|
||||
|
||||
/**
|
||||
* IdGenerator
|
||||
*/
|
||||
protected final IdGenerator idGenerator;
|
||||
protected final IdGenerator idGenerator;
|
||||
|
||||
protected AbstractApplicationService(AppAccountRepository appAccountRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppRepository appRepository) {
|
||||
this.appAccountRepository = appAccountRepository;
|
||||
this.appRepository = appRepository;
|
||||
this.appGroupAssociationRepository = appGroupAssociationRepository;
|
||||
this.idGenerator = new AlternativeJdkIdGenerator();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import java.time.LocalDateTime;
|
|||
import java.time.ZoneId;
|
||||
import java.util.Date;
|
||||
|
||||
import cn.topiam.employee.common.repository.app.*;
|
||||
import org.bouncycastle.asn1.x500.X500Name;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -32,10 +33,6 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
|
||||
import cn.topiam.employee.common.entity.app.AppCertEntity;
|
||||
import cn.topiam.employee.common.enums.app.AppCertUsingType;
|
||||
import cn.topiam.employee.common.repository.app.AppAccessPolicyRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppAccountRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppCertRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppRepository;
|
||||
import cn.topiam.employee.support.exception.TopIamException;
|
||||
import cn.topiam.employee.support.util.CertUtils;
|
||||
import cn.topiam.employee.support.util.RsaUtils;
|
||||
|
@ -128,8 +125,9 @@ public abstract class AbstractCertificateApplicationService extends AbstractAppl
|
|||
protected AbstractCertificateApplicationService(AppCertRepository appCertRepository,
|
||||
AppAccountRepository appAccountRepository,
|
||||
AppAccessPolicyRepository appAccessPolicyRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppRepository appRepository) {
|
||||
super(appAccountRepository, appRepository);
|
||||
super(appAccountRepository, appGroupAssociationRepository, appRepository);
|
||||
this.appCertRepository = appCertRepository;
|
||||
this.appAccessPolicyRepository = appAccessPolicyRepository;
|
||||
this.idGenerator = new AlternativeJdkIdGenerator();
|
||||
|
|
|
@ -96,7 +96,7 @@ public interface ApplicationService {
|
|||
* @return {@link Long} 应用ID
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
String create(String name, String icon, String remark, Long groupId);
|
||||
String create(String name, String icon, String remark, Long[] groupId);
|
||||
|
||||
/**
|
||||
* 删除应用
|
||||
|
@ -142,6 +142,6 @@ public interface ApplicationService {
|
|||
* @param authorizationType {@link AuthorizationType}
|
||||
* @return {@link AppEntity}
|
||||
*/
|
||||
AppEntity createApp(String name, String icon, String remark, Long groupId,
|
||||
AppEntity createApp(String name, String icon, String remark, Long[] groupId,
|
||||
InitLoginType initLoginType, AuthorizationType authorizationType);
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ import cn.topiam.employee.common.entity.app.AppFormConfigEntity;
|
|||
import cn.topiam.employee.common.entity.app.po.AppFormConfigPO;
|
||||
import cn.topiam.employee.common.repository.app.AppAccountRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppFormConfigRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
|
||||
import cn.topiam.employee.common.repository.app.AppRepository;
|
||||
|
||||
/**
|
||||
|
@ -83,8 +84,9 @@ public abstract class AbstractFormApplicationService extends AbstractApplication
|
|||
|
||||
protected AbstractFormApplicationService(AppRepository appRepository,
|
||||
AppAccountRepository appAccountRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppFormConfigRepository appFormConfigRepository) {
|
||||
super(appAccountRepository, appRepository);
|
||||
super(appAccountRepository, appGroupAssociationRepository, appRepository);
|
||||
this.appFormConfigRepository = appFormConfigRepository;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import cn.topiam.employee.common.repository.app.AppGroupAssociationRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
@ -199,7 +200,7 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS
|
|||
* @param groupId {@link Long} 分组id
|
||||
*/
|
||||
@Override
|
||||
public String create(String name, String icon, String remark, Long groupId) {
|
||||
public String create(String name, String icon, String remark, Long[] groupId) {
|
||||
//1、创建应用
|
||||
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP,
|
||||
AuthorizationType.AUTHORIZATION);
|
||||
|
@ -216,8 +217,10 @@ public class FormStandardApplicationServiceImpl extends AbstractFormApplicationS
|
|||
protected FormStandardApplicationServiceImpl(AppAccountRepository appAccountRepository,
|
||||
AppFormConfigRepository appFormConfigRepository,
|
||||
AppRepository appRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppFormConfigConverter appFormConfigConverter) {
|
||||
super(appRepository, appAccountRepository, appFormConfigRepository);
|
||||
super(appRepository, appAccountRepository, appGroupAssociationRepository,
|
||||
appFormConfigRepository);
|
||||
this.appFormConfigConverter = appFormConfigConverter;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,8 +102,10 @@ public abstract class AbstractJwtCertificateApplicationService extends
|
|||
AppCertRepository appCertRepository,
|
||||
AppRepository appRepository,
|
||||
AppAccountRepository appAccountRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppAccessPolicyRepository appAccessPolicyRepository) {
|
||||
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository);
|
||||
super(appCertRepository, appAccountRepository, appAccessPolicyRepository,
|
||||
appGroupAssociationRepository, appRepository);
|
||||
this.appCertRepository = appCertRepository;
|
||||
this.appRepository = appRepository;
|
||||
this.appJwtConfigRepository = appJwtConfigRepository;
|
||||
|
|
|
@ -204,7 +204,7 @@ public class JwtStandardCertificateApplicationServiceImpl extends
|
|||
* @param groupId {@link Long} 分组id
|
||||
*/
|
||||
@Override
|
||||
public String create(String name, String icon, String remark, Long groupId) {
|
||||
public String create(String name, String icon, String remark, Long[] groupId) {
|
||||
//1、创建应用
|
||||
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.PORTAL_OR_APP,
|
||||
AuthorizationType.AUTHORIZATION);
|
||||
|
@ -229,9 +229,10 @@ public class JwtStandardCertificateApplicationServiceImpl extends
|
|||
AppCertRepository appCertRepository,
|
||||
AppRepository appRepository,
|
||||
AppAccountRepository appAccountRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppAccessPolicyRepository appAccessPolicyRepository) {
|
||||
super(appJwtConfigRepository, appCertRepository, appRepository, appAccountRepository,
|
||||
appAccessPolicyRepository);
|
||||
appGroupAssociationRepository, appAccessPolicyRepository);
|
||||
this.appJwtConfigConverter = appJwtConfigConverter;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,8 +137,10 @@ public abstract class AbstractOidcCertificateApplicationService extends
|
|||
AppAccountRepository appAccountRepository,
|
||||
AppAccessPolicyRepository appAccessPolicyRepository,
|
||||
AppRepository appRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppOidcConfigRepository appOidcConfigRepository) {
|
||||
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository);
|
||||
super(appCertRepository, appAccountRepository, appAccessPolicyRepository,
|
||||
appGroupAssociationRepository, appRepository);
|
||||
this.appCertRepository = appCertRepository;
|
||||
this.appRepository = appRepository;
|
||||
this.appOidcConfigRepository = appOidcConfigRepository;
|
||||
|
|
|
@ -78,7 +78,7 @@ public class OidcStandardCertificateApplicationServiceImpl extends
|
|||
* @param groupId {@link Long} 分组id
|
||||
*/
|
||||
@Override
|
||||
public String create(String name, String icon, String remark, Long groupId) {
|
||||
public String create(String name, String icon, String remark, Long[] groupId) {
|
||||
//1、创建应用
|
||||
AppEntity appEntity = createApp(name, icon, remark, groupId, InitLoginType.APP,
|
||||
AuthorizationType.AUTHORIZATION);
|
||||
|
@ -275,9 +275,10 @@ public class OidcStandardCertificateApplicationServiceImpl extends
|
|||
AppAccessPolicyRepository appAccessPolicyRepository,
|
||||
AppRepository appRepository,
|
||||
AppOidcConfigRepository appOidcConfigRepository,
|
||||
AppGroupAssociationRepository appGroupAssociationRepository,
|
||||
AppOidcStandardConfigConverter appOidcStandardConfigConverter) {
|
||||
super(appCertRepository, appAccountRepository, appAccessPolicyRepository, appRepository,
|
||||
appOidcConfigRepository);
|
||||
appGroupAssociationRepository, appOidcConfigRepository);
|
||||
this.appOidcStandardConfigConverter = appOidcStandardConfigConverter;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,6 +64,6 @@ public class AppCreateParam implements Serializable {
|
|||
/**
|
||||
* 应用分组id
|
||||
*/
|
||||
@Schema(description = "应用分组id")
|
||||
private Long groupId;
|
||||
@Schema(description = "应用分组ID")
|
||||
private Long[] groupId;
|
||||
}
|
||||
|
|
|
@ -54,11 +54,4 @@ public class AppGroupCreateParam implements Serializable {
|
|||
*/
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 应用分组ID
|
||||
*/
|
||||
@Parameter(description = "应用分组ID")
|
||||
private String[] groupId;
|
||||
|
||||
}
|
||||
|
|
|
@ -94,14 +94,6 @@ public class AppGroupServiceImpl implements AppGroupService {
|
|||
public Boolean createAppGroup(AppGroupCreateParam param) {
|
||||
AppGroupEntity entity = appGroupConverter.appGroupCreateParamConvertToEntity(param);
|
||||
appGroupRepository.save(entity);
|
||||
List<AppGroupAssociationEntity> list = new ArrayList<>();
|
||||
for (String groupId : param.getGroupId()) {
|
||||
AppGroupAssociationEntity appGroupAssociationEntity = new AppGroupAssociationEntity();
|
||||
appGroupAssociationEntity.setGroupId(Long.valueOf(groupId));
|
||||
appGroupAssociationEntity.setAppId(entity.getId());
|
||||
list.add(appGroupAssociationEntity);
|
||||
}
|
||||
appGroupAssociationRepository.saveAll(list);
|
||||
AuditContext.setTarget(
|
||||
Target.builder().id(String.valueOf(entity.getId())).type(TargetType.APP_GROUP).build());
|
||||
return true;
|
||||
|
|
Loading…
Reference in New Issue