UserRoleVerification modification 2
This commit is contained in:
parent
5366a7d79b
commit
cff4302c4a
5 changed files with 30 additions and 11 deletions
|
|
@ -4,7 +4,11 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
|
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||||
import ru.spcex.clearing.company.util.RequestHelper;
|
import ru.spcex.clearing.company.util.RequestHelper;
|
||||||
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
import ru.spcex.platform.utils.enumeration.SimpleMessageResolver;
|
||||||
|
|
||||||
|
|
@ -21,4 +25,8 @@ public class BeanConfiguration {
|
||||||
return new RequestHelper(messageResolver);
|
return new RequestHelper(messageResolver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) {
|
||||||
|
return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, CompanyErrors.UserVerifyDenial);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
@ -42,13 +41,14 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea
|
||||||
public CompanyInfoService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public CompanyInfoService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider, CompanyService companyService,
|
ImdgProvider imdgProvider, CompanyService companyService,
|
||||||
RequestHelper requestHelper, ValidationHelper validationHelper,
|
RequestHelper requestHelper, ValidationHelper validationHelper,
|
||||||
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("CompanyInfoUpdateRequestValidator")
|
@Qualifier("CompanyInfoUpdateRequestValidator")
|
||||||
Function<CompanyInfoUpdateRequest, IValidator> companyInfoUpdateRequestValidator) {
|
Function<CompanyInfoUpdateRequest, IValidator> companyInfoUpdateRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.companyService = companyService;
|
this.companyService = companyService;
|
||||||
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial);
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator;
|
this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator;
|
||||||
this.requestHelper = requestHelper.setLogger(log);
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,6 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
||||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -48,7 +47,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
public CompanyRoleSetService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
public CompanyRoleSetService(Consumer<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
ValidationHelper validationHelper
|
ValidationHelper validationHelper,
|
||||||
|
UserRoleVerification userRoleVerification
|
||||||
// @Qualifier("CompanyRoleSetRequestValidator")
|
// @Qualifier("CompanyRoleSetRequestValidator")
|
||||||
// Function<CompanyRoleSetNewRequest, IValidator> companyNewRequestValidator,
|
// Function<CompanyRoleSetNewRequest, IValidator> companyNewRequestValidator,
|
||||||
) {
|
) {
|
||||||
|
|
@ -56,7 +56,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
this.imdgProvider = imdgProvider;
|
this.imdgProvider = imdgProvider;
|
||||||
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial);
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
// this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
// this.companyDeleteRequestValidator = companyDeleteRequestValidator;
|
||||||
this.requestHelper = requestHelper.setLogger(log);
|
this.requestHelper = requestHelper.setLogger(log);
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||||
import ru.spcex.clearing.util.security.UserRoleVerification;
|
import ru.spcex.clearing.util.security.UserRoleVerification;
|
||||||
import ru.spcex.clearing.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
import ru.spcex.platform.enumeration.CompanySymbol;
|
import ru.spcex.platform.enumeration.CompanySymbol;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
|
||||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgId;
|
import ru.spcex.platform.imdg.api.ImdgId;
|
||||||
|
|
@ -62,6 +61,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
RequestHelper requestHelper,
|
RequestHelper requestHelper,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("companyNewRequestValidator")
|
@Qualifier("companyNewRequestValidator")
|
||||||
Function<CompanyNewRequest, IValidator> companyNewRequestValidator,
|
Function<CompanyNewRequest, IValidator> companyNewRequestValidator,
|
||||||
@Qualifier("companyUpdateRequestValidator")
|
@Qualifier("companyUpdateRequestValidator")
|
||||||
|
|
@ -79,7 +79,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
||||||
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||||
this.idSequence = imdgProvider.getImdgIdGenerator();
|
this.idSequence = imdgProvider.getImdgIdGenerator();
|
||||||
this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial);
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.companyNewRequestValidator = companyNewRequestValidator;
|
this.companyNewRequestValidator = companyNewRequestValidator;
|
||||||
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,14 @@ import ru.spcex.platform.enumeration.Status;
|
||||||
import ru.spcex.platform.enumeration.UserRole;
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
import ru.spcex.platform.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||||
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
import ru.spcex.platform.utils.enumeration.IErrorEnumId;
|
||||||
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.error.ValidationException;
|
import ru.spcex.platform.utils.error.ValidationException;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Проверка дополнительных прав пользователя.
|
* Проверка дополнительных прав пользователя.
|
||||||
|
|
@ -27,9 +30,16 @@ public class UserRoleVerification {
|
||||||
protected Imdg<UserRoleSession> userRoleSessions;
|
protected Imdg<UserRoleSession> userRoleSessions;
|
||||||
protected UserRole roleForVerification;
|
protected UserRole roleForVerification;
|
||||||
protected IErrorEnumId roleVerificationError;
|
protected IErrorEnumId roleVerificationError;
|
||||||
|
protected IMessageResolver messageResolver;
|
||||||
|
|
||||||
public UserRoleVerification(ImdgProvider imdg, UserRole roleForVerification, IErrorEnumId roleVerificationError) {
|
public UserRoleVerification(ImdgProvider imdg,
|
||||||
|
IMessageResolver messageResolver,
|
||||||
|
UserRole roleForVerification,
|
||||||
|
IErrorEnumId roleVerificationError) {
|
||||||
|
Objects.requireNonNull(roleForVerification);
|
||||||
|
Objects.requireNonNull(roleVerificationError);
|
||||||
userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class);
|
userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class);
|
||||||
|
this.messageResolver = messageResolver;
|
||||||
this.roleForVerification = roleForVerification;
|
this.roleForVerification = roleForVerification;
|
||||||
this.roleVerificationError = roleVerificationError;
|
this.roleVerificationError = roleVerificationError;
|
||||||
}
|
}
|
||||||
|
|
@ -60,13 +70,14 @@ public class UserRoleVerification {
|
||||||
public RequestInfoUpdate validateRoleAndGetResult(BaseRequest<?> req) {
|
public RequestInfoUpdate validateRoleAndGetResult(BaseRequest<?> req) {
|
||||||
Long requesterId = req.getUserId();
|
Long requesterId = req.getUserId();
|
||||||
if (requesterId != null && !userHasRole(requesterId, roleForVerification)) {
|
if (requesterId != null && !userHasRole(requesterId, roleForVerification)) {
|
||||||
log.trace("User {} has no role to allow this action", requesterId);
|
log.debug("User {} has no role to allow this action", requesterId);
|
||||||
|
String errMsg = messageResolver.resolve(new EnumMessage(roleVerificationError, requesterId));
|
||||||
return new RequestInfoUpdate()
|
return new RequestInfoUpdate()
|
||||||
.setId(req.getId())
|
.setId(req.getId())
|
||||||
.setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error)
|
.setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error)
|
||||||
.setMessage("User (id %d) has no role to allow this action".formatted(requesterId));
|
.setMessage(errMsg);
|
||||||
} else {
|
} else {
|
||||||
log.trace("Request without userId");
|
log.debug("Request without userId");
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue