UserRoleVerification for company-service
This commit is contained in:
parent
2269f2c10e
commit
cb3b251ee5
9 changed files with 83 additions and 32 deletions
|
|
@ -9,6 +9,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||||
import ru.spcex.platform.utils.validation.IValidator;
|
import ru.spcex.platform.utils.validation.IValidator;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
|
@ -18,6 +19,7 @@ public class ValidationHelper {
|
||||||
private IMessageResolver messageResolver;
|
private IMessageResolver messageResolver;
|
||||||
|
|
||||||
public ValidationHelper(IMessageResolver messageResolver) {
|
public ValidationHelper(IMessageResolver messageResolver) {
|
||||||
|
Objects.requireNonNull(messageResolver);
|
||||||
this.messageResolver = messageResolver;
|
this.messageResolver = messageResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import org.springframework.context.annotation.Scope;
|
||||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
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.clearing.util.security.UserRoleVerification;
|
||||||
|
import ru.spcex.platform.enumeration.UserRole;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
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;
|
||||||
|
|
@ -27,6 +28,6 @@ public class BeanConfiguration {
|
||||||
@Bean
|
@Bean
|
||||||
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
|
||||||
public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) {
|
public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) {
|
||||||
return new UserRoleVerification(imdgProvider, messageResolver, CompanyErrors.UserVerifyDenial);
|
return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, CompanyErrors.UserVerifyDenial);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCat
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
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.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
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;
|
||||||
|
|
@ -33,12 +34,14 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
private final Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator;
|
private final Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator;
|
||||||
private final Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator;
|
private final Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
|
private final UserRoleVerification userRoleVerification;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ClearingMemberCategoryService(Consumer<String, Object> kafkaQueue,
|
public ClearingMemberCategoryService(Consumer<String, Object> kafkaQueue,
|
||||||
Producer<String, Object> kafkaProducer,
|
Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("clearingMemberCategoryNewRequestValidator") Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator,
|
@Qualifier("clearingMemberCategoryNewRequestValidator") Function<ClearingMemberCategoryNewRequest, IValidator> clearingMemberCategoryNewRequestValidator,
|
||||||
@Qualifier("clearingMemberCategoryUpdateRequestValidator") Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator,
|
@Qualifier("clearingMemberCategoryUpdateRequestValidator") Function<ClearingMemberCategoryUpdateRequest, IValidator> clearingMemberCategoryUpdateRequestValidator,
|
||||||
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator) {
|
@Qualifier("clearingMemberCategoryDeleteRequestValidator") Function<CommonDeleteRequest, IValidator> clearingMemberCategoryDeleteRequestValidator) {
|
||||||
|
|
@ -48,6 +51,7 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator;
|
this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator;
|
||||||
this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator;
|
this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
|
this.userRoleVerification = userRoleVerification;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -67,7 +71,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
private RequestInfoUpdate clearingMemberCategoryNew(BaseRequest<ClearingMemberCategoryNewRequest> userRequest) {
|
private RequestInfoUpdate clearingMemberCategoryNew(BaseRequest<ClearingMemberCategoryNewRequest> userRequest) {
|
||||||
log.debug("ClearingMemberCategoryNewRequest received {}", userRequest.getId());
|
log.debug("ClearingMemberCategoryNewRequest received {}", userRequest.getId());
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload();
|
ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload();
|
||||||
|
|
@ -84,7 +91,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
public RequestInfoUpdate clearingMemberCategoryUpdate(BaseRequest<ClearingMemberCategoryUpdateRequest> userRequest) {
|
public RequestInfoUpdate clearingMemberCategoryUpdate(BaseRequest<ClearingMemberCategoryUpdateRequest> userRequest) {
|
||||||
ClearingMemberCategoryUpdateRequest req = userRequest.getRequestPayload();
|
ClearingMemberCategoryUpdateRequest req = userRequest.getRequestPayload();
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryUpdateRequestValidator);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryUpdateRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
log.debug("ClearingMemberCategoryUpdateRequest received");
|
log.debug("ClearingMemberCategoryUpdateRequest received");
|
||||||
|
|
@ -100,7 +110,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init
|
||||||
private RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest<CommonDeleteRequest> userRequest) {
|
private RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest<CommonDeleteRequest> userRequest) {
|
||||||
CommonDeleteRequest req = userRequest.getRequestPayload();
|
CommonDeleteRequest req = userRequest.getRequestPayload();
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryDeleteRequestValidator);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryDeleteRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
log.debug("CommonDeleteRequest received id = {}", req.getId());
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -49,7 +48,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea
|
||||||
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 = userRoleVerification.setRoleForVerification(UserRole.Admin);
|
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;
|
||||||
|
|
@ -57,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 = userRoleVerification.setRoleForVerification(UserRole.Admin);
|
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);
|
||||||
|
|
@ -82,7 +81,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
CompanyRoleSetNewRequest req = companyRoleNewRequestBaseRequest.getRequestPayload();
|
CompanyRoleSetNewRequest req = companyRoleNewRequestBaseRequest.getRequestPayload();
|
||||||
log.debug("companyroleset-new request received, BaseRequest.id = {}", companyRoleNewRequestBaseRequest.getId());
|
log.debug("companyroleset-new request received, BaseRequest.id = {}", companyRoleNewRequestBaseRequest.getId());
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация, ValidationException
|
||||||
userRoleVerification.validateRoleAndThrow(companyRoleNewRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleNewRequestBaseRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
// RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyNewRequestValidator);
|
// RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyNewRequestValidator);
|
||||||
// if (requestInfoUpdate != null) return requestInfoUpdate;
|
// if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
|
|
@ -118,7 +118,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing
|
||||||
CommonDeleteRequest request = companyRoleSetDeleteRequest.getRequestPayload();
|
CommonDeleteRequest request = companyRoleSetDeleteRequest.getRequestPayload();
|
||||||
log.debug("companyRoleSetDeleteRequest received id = {}", request.getId());
|
log.debug("companyRoleSetDeleteRequest received id = {}", request.getId());
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация, ValidationException
|
||||||
userRoleVerification.validateRoleAndThrow(companyRoleSetDeleteRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleSetDeleteRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
if (request.getId() == null) {
|
if (request.getId() == null) {
|
||||||
return requestHelper.makeErrorResponse(companyRoleSetDeleteRequest, CompanyErrors.RequiredFieldEmpty, "id");
|
return requestHelper.makeErrorResponse(companyRoleSetDeleteRequest, CompanyErrors.RequiredFieldEmpty, "id");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -80,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 = userRoleVerification.setRoleForVerification(UserRole.Admin);
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
this.companyNewRequestValidator = companyNewRequestValidator;
|
this.companyNewRequestValidator = companyNewRequestValidator;
|
||||||
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
this.companyUpdateRequestValidator = companyUpdateRequestValidator;
|
||||||
|
|
@ -107,9 +106,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
private synchronized RequestInfoUpdate createCompany(BaseRequest<CompanyNewRequest> companyNewRequestBaseRequest) throws ValidationException {
|
private synchronized RequestInfoUpdate createCompany(BaseRequest<CompanyNewRequest> companyNewRequestBaseRequest) throws ValidationException {
|
||||||
CompanyNewRequest req = companyNewRequestBaseRequest.getRequestPayload();
|
CompanyNewRequest req = companyNewRequestBaseRequest.getRequestPayload();
|
||||||
log.debug("company-new request received, BaseRequest.id = {}", companyNewRequestBaseRequest.getId());
|
log.debug("company-new request received, BaseRequest.id = {}", companyNewRequestBaseRequest.getId());
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация
|
||||||
userRoleVerification.validateRoleAndThrow(companyNewRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyNewRequestBaseRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator);
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
Company company = new Company();
|
Company company = new Company();
|
||||||
|
|
@ -153,9 +154,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
|
|
||||||
private synchronized RequestInfoUpdate updateCompany(BaseRequest<CompanyNewRequest> companyUpdateRequestBaseRequest) throws ValidationException {
|
private synchronized RequestInfoUpdate updateCompany(BaseRequest<CompanyNewRequest> companyUpdateRequestBaseRequest) throws ValidationException {
|
||||||
CompanyNewRequest updateRequest = companyUpdateRequestBaseRequest.getRequestPayload();
|
CompanyNewRequest updateRequest = companyUpdateRequestBaseRequest.getRequestPayload();
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация,
|
||||||
userRoleVerification.validateRoleAndThrow(companyUpdateRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyUpdateRequestBaseRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyUpdateRequestBaseRequest, companyUpdateRequestValidator);
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(companyUpdateRequestBaseRequest, companyUpdateRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||||
|
|
@ -234,9 +237,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
|
||||||
private synchronized RequestInfoUpdate deleteCompany(BaseRequest<CommonDeleteRequest> companyBlockRequestBaseRequest) throws ValidationException {
|
private synchronized RequestInfoUpdate deleteCompany(BaseRequest<CommonDeleteRequest> companyBlockRequestBaseRequest) throws ValidationException {
|
||||||
CommonDeleteRequest request = companyBlockRequestBaseRequest.getRequestPayload();
|
CommonDeleteRequest request = companyBlockRequestBaseRequest.getRequestPayload();
|
||||||
log.debug("CommonDeleteRequest (block request) received id = {}", request.getId());
|
log.debug("CommonDeleteRequest (block request) received id = {}", request.getId());
|
||||||
{ // Валидация, ValidationException
|
{ // Валидация
|
||||||
userRoleVerification.validateRoleAndThrow(companyBlockRequestBaseRequest);
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyBlockRequestBaseRequest);
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyBlockRequestBaseRequest, companyDeleteRequestValidator);
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(companyBlockRequestBaseRequest, companyDeleteRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
}
|
}
|
||||||
ImdgTransaction transaction = imdgProvider.newTransaction();
|
ImdgTransaction transaction = imdgProvider.newTransaction();
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest
|
||||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest;
|
import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest;
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
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.validation.common.ValidationHelper;
|
import ru.spcex.clearing.validation.common.ValidationHelper;
|
||||||
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;
|
||||||
|
|
@ -30,17 +31,20 @@ public class ContactService extends QueueConsumer implements InitializingBean {
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
private final Function<ContactNewRequest, IValidator> contactNewRequestValidator;
|
private final Function<ContactNewRequest, IValidator> contactNewRequestValidator;
|
||||||
private final Function<ContactUpdateRequest, IValidator> contactUpdateRequestValidator;
|
private final Function<ContactUpdateRequest, IValidator> contactUpdateRequestValidator;
|
||||||
|
private final UserRoleVerification userRoleVerification;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ContactService(Consumer<String, Object> kafkaQueue,
|
public ContactService(Consumer<String, Object> kafkaQueue,
|
||||||
Producer<String, Object> kafkaProducer,
|
Producer<String, Object> kafkaProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
ValidationHelper validationHelper,
|
ValidationHelper validationHelper,
|
||||||
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("contactNewRequestValidator") Function<ContactNewRequest, IValidator> contactNewRequestValidator,
|
@Qualifier("contactNewRequestValidator") Function<ContactNewRequest, IValidator> contactNewRequestValidator,
|
||||||
@Qualifier("contactUpdateRequestValidator") Function<ContactUpdateRequest, IValidator> contactUpdateRequestValidator) {
|
@Qualifier("contactUpdateRequestValidator") Function<ContactUpdateRequest, IValidator> contactUpdateRequestValidator) {
|
||||||
super(kafkaQueue, kafkaProducer);
|
super(kafkaQueue, kafkaProducer);
|
||||||
this.contactMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
this.contactMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class);
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
|
this.userRoleVerification = userRoleVerification;
|
||||||
this.contactNewRequestValidator = contactNewRequestValidator;
|
this.contactNewRequestValidator = contactNewRequestValidator;
|
||||||
this.contactUpdateRequestValidator = contactUpdateRequestValidator;
|
this.contactUpdateRequestValidator = contactUpdateRequestValidator;
|
||||||
}
|
}
|
||||||
|
|
@ -59,9 +63,10 @@ public class ContactService extends QueueConsumer implements InitializingBean {
|
||||||
public RequestInfoUpdate contactNew(BaseRequest<ContactNewRequest> userRequest) {
|
public RequestInfoUpdate contactNew(BaseRequest<ContactNewRequest> userRequest) {
|
||||||
log.debug("ContactNewRequest received");
|
log.debug("ContactNewRequest received");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
userRequest, contactNewRequestValidator
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
);
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, contactNewRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
ContactNewRequest contactNewRequest = userRequest.getRequestPayload();
|
ContactNewRequest contactNewRequest = userRequest.getRequestPayload();
|
||||||
|
|
@ -78,9 +83,10 @@ public class ContactService extends QueueConsumer implements InitializingBean {
|
||||||
public RequestInfoUpdate contactUpdate(BaseRequest<ContactUpdateRequest> userRequest) {
|
public RequestInfoUpdate contactUpdate(BaseRequest<ContactUpdateRequest> userRequest) {
|
||||||
log.debug("ContactUpdateRequest received");
|
log.debug("ContactUpdateRequest received");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest);
|
||||||
userRequest, contactUpdateRequestValidator
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
);
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, contactUpdateRequestValidator);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
// Тип контакта не меняем, при валидации кидаем ошибку.
|
// Тип контакта не меняем, при валидации кидаем ошибку.
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUp
|
||||||
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
|
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.platform.messaging.service.sender.KafkaSender;
|
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||||
|
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.imdg.api.Imdg;
|
import ru.spcex.platform.imdg.api.Imdg;
|
||||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||||
|
|
@ -37,12 +38,14 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
private final Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator;
|
private final Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator;
|
||||||
private final Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator;
|
private final Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator;
|
||||||
private final ValidationHelper validationHelper;
|
private final ValidationHelper validationHelper;
|
||||||
|
private final UserRoleVerification userRoleVerification;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public ProfileDocumentService(Consumer<String, Object> kafkaQueue,
|
public ProfileDocumentService(Consumer<String, Object> kafkaQueue,
|
||||||
Producer<String, Object> kafkaProducer,
|
Producer<String, Object> kafkaProducer,
|
||||||
KafkaSender kafkaReqProducer,
|
KafkaSender kafkaReqProducer,
|
||||||
ImdgProvider imdgProvider,
|
ImdgProvider imdgProvider,
|
||||||
|
UserRoleVerification userRoleVerification,
|
||||||
@Qualifier("profileDocumentNewRequestValidation") Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator,
|
@Qualifier("profileDocumentNewRequestValidation") Function<ProfileDocumentNewRequest, IValidator> profileDocumentNewRequestValidator,
|
||||||
@Qualifier("profileDocumentUpdateRequestValidation") Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator,
|
@Qualifier("profileDocumentUpdateRequestValidation") Function<ProfileDocumentUpdateRequest, IValidator> profileDocumentUpdateRequestValidator,
|
||||||
ValidationHelper validationHelper) {
|
ValidationHelper validationHelper) {
|
||||||
|
|
@ -52,6 +55,7 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
this.profileDocumentNewRequestValidator = profileDocumentNewRequestValidator;
|
this.profileDocumentNewRequestValidator = profileDocumentNewRequestValidator;
|
||||||
this.profileDocumentUpdateRequestValidator = profileDocumentUpdateRequestValidator;
|
this.profileDocumentUpdateRequestValidator = profileDocumentUpdateRequestValidator;
|
||||||
this.validationHelper = validationHelper;
|
this.validationHelper = validationHelper;
|
||||||
|
this.userRoleVerification = userRoleVerification;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -72,9 +76,11 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
private RequestInfoUpdate profileDocumentNew(BaseRequest<ProfileDocumentNewRequest> profileDocumentNewRequestBaseRequest) {
|
private RequestInfoUpdate profileDocumentNew(BaseRequest<ProfileDocumentNewRequest> profileDocumentNewRequestBaseRequest) {
|
||||||
log.trace("Start processing ProfileDocumentNewRequest!");
|
log.trace("Start processing ProfileDocumentNewRequest!");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentNewRequestBaseRequest);
|
||||||
profileDocumentNewRequestBaseRequest,
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
profileDocumentNewRequestValidator
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(
|
||||||
|
profileDocumentNewRequestBaseRequest, profileDocumentNewRequestValidator
|
||||||
);
|
);
|
||||||
if (requestInfoUpdate != null) return requestInfoUpdate;
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
|
@ -106,7 +112,10 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin
|
||||||
private RequestInfoUpdate profileDocumentUpdate(BaseRequest<ProfileDocumentUpdateRequest> profileDocumentUpdateRequestBaseRequest) {
|
private RequestInfoUpdate profileDocumentUpdate(BaseRequest<ProfileDocumentUpdateRequest> profileDocumentUpdateRequestBaseRequest) {
|
||||||
log.trace("Start processing ProfileDocumentUpdateRequest!");
|
log.trace("Start processing ProfileDocumentUpdateRequest!");
|
||||||
|
|
||||||
RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(
|
RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentUpdateRequestBaseRequest);
|
||||||
|
if (requestInfoUpdate != null) return requestInfoUpdate;
|
||||||
|
|
||||||
|
requestInfoUpdate = validationHelper.validateTillFirstError(
|
||||||
profileDocumentUpdateRequestBaseRequest,
|
profileDocumentUpdateRequestBaseRequest,
|
||||||
profileDocumentUpdateRequestValidator
|
profileDocumentUpdateRequestValidator
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@ import java.util.Objects;
|
||||||
* <p/>
|
* <p/>
|
||||||
* Основная проверка прав осуществляется на frontend-api, и использовать этот компонент дополнительно не требуется.
|
* Основная проверка прав осуществляется на frontend-api, и использовать этот компонент дополнительно не требуется.
|
||||||
* <p/>
|
* <p/>
|
||||||
* Использовать @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE), требует задание роли через setRoleForVerification(role)
|
* Использовать @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE), требует задание роли через setRoleForVerification(role).
|
||||||
|
* Либо роль можно задать во втором конструкторе, переопределив её где требуется (если используется scope prototype)
|
||||||
*/
|
*/
|
||||||
public class UserRoleVerification {
|
public class UserRoleVerification {
|
||||||
protected Logger log = LoggerFactory.getLogger(getClass());
|
protected Logger log = LoggerFactory.getLogger(getClass());
|
||||||
|
|
@ -45,6 +46,20 @@ public class UserRoleVerification {
|
||||||
this.roleVerificationError = roleVerificationError;
|
this.roleVerificationError = roleVerificationError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserRoleVerification(ImdgProvider imdg,
|
||||||
|
IMessageResolver messageResolver,
|
||||||
|
UserRole roleForVerification,
|
||||||
|
IErrorEnumId roleVerificationError) {
|
||||||
|
Objects.requireNonNull(roleForVerification);
|
||||||
|
Objects.requireNonNull(roleVerificationError);
|
||||||
|
Objects.requireNonNull(messageResolver);
|
||||||
|
Objects.requireNonNull(roleForVerification);
|
||||||
|
userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class);
|
||||||
|
this.messageResolver = messageResolver;
|
||||||
|
this.roleVerificationError = roleVerificationError;
|
||||||
|
this.roleForVerification = roleForVerification;
|
||||||
|
}
|
||||||
|
|
||||||
protected boolean userHasRole(Long userId, IEnumKey role) {
|
protected boolean userHasRole(Long userId, IEnumKey role) {
|
||||||
return userHasRole(userId, role == null ? null : role.getKey());
|
return userHasRole(userId, role == null ? null : role.getKey());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue