Merge branch 'SUPPORT-8943_seamlessness' into feature/SUPPORT-9037_fix_rejection
This commit is contained in:
commit
daaa4a867c
3 changed files with 25 additions and 5 deletions
|
|
@ -46,6 +46,7 @@ import ru.micord.ervu.account_applications.dto.password.ResetPasswordProcessRequ
|
|||
import ru.micord.ervu.account_applications.dto.password.UserIdInfo;
|
||||
import ru.micord.ervu.account_applications.enums.ProcessKey;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
import ru.micord.ervu.account_applications.service.RoleServiceImpl;
|
||||
import ru.micord.ervu.account_applications.service.UserApplicationListService;
|
||||
|
||||
/**
|
||||
|
|
@ -60,15 +61,17 @@ public class AdminController {
|
|||
private final RestTemplate restTemplate;
|
||||
private final SecurityContext securityContext;
|
||||
private final UserApplicationListService applicationListService;
|
||||
private final RoleServiceImpl roleService;
|
||||
|
||||
@Value("${ervu.url}")
|
||||
private String ervuUrl;
|
||||
|
||||
public AdminController(RestTemplate restTemplate, SecurityContext securityContext,
|
||||
UserApplicationListService applicationListService) {
|
||||
UserApplicationListService applicationListService, RoleServiceImpl roleService) {
|
||||
this.restTemplate = restTemplate;
|
||||
this.securityContext = securityContext;
|
||||
this.applicationListService = applicationListService;
|
||||
this.roleService = roleService;
|
||||
}
|
||||
|
||||
@PostMapping(value = "", consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
|
|
@ -110,7 +113,9 @@ public class AdminController {
|
|||
.stream()
|
||||
.map(Role::new)
|
||||
.collect(Collectors.toList());
|
||||
Account account = new Account(dto.accountId(), dto.removeRoles(), rolesList);
|
||||
List<String> removedRoleIds = roleService.fetchRemovedRoleIds(dto.accountId(), dto.roles());
|
||||
|
||||
Account account = new Account(dto.accountId(), removedRoleIds, rolesList);
|
||||
EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_ROLES.getValue(),
|
||||
getUserId(), new EditData(account));
|
||||
return doRequestAndSaveTraceId(request, dto.appNumber());
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
package ru.micord.ervu.account_applications.dto.edit;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
|
@ -9,6 +9,5 @@ import javax.validation.constraints.NotNull;
|
|||
* @author Emir Suleimanov
|
||||
*/
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public record EditRolesDto(@NotNull long appNumber, @NotNull String accountId,
|
||||
List<String> removeRoles, List<String> roles) {
|
||||
public record EditRolesDto(@NotNull long appNumber, @NotNull String accountId, Set<String> roles) {
|
||||
}
|
||||
|
|
@ -6,12 +6,15 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.type.CollectionType;
|
||||
import model.grid.GridRow;
|
||||
import model.grid.GridRows;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import ru.micord.ervu.account_applications.component.exception.UserDataLoadException;
|
||||
import ru.micord.ervu.account_applications.component.model.Role;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
||||
|
|
@ -19,6 +22,7 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
|||
/**
|
||||
* @author Adel Kalimullin
|
||||
*/
|
||||
@Service
|
||||
public class RoleServiceImpl extends AbstractUserDataService {
|
||||
private static final String ROLES = "roles";
|
||||
|
||||
|
|
@ -33,6 +37,18 @@ public class RoleServiceImpl extends AbstractUserDataService {
|
|||
return objectToMap(roles);
|
||||
}
|
||||
|
||||
public List<String> fetchRemovedRoleIds(String accountId, Set<String> newRoleIds) {
|
||||
try {
|
||||
return fetchRolesByAccountId(accountId).stream()
|
||||
.map(Role::getId)
|
||||
.filter(id -> !newRoleIds.contains(id))
|
||||
.toList();
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new UserDataLoadException("Ошибка при получении ролей пользователя", e);
|
||||
}
|
||||
}
|
||||
|
||||
private List<Role> fetchRolesByAccountId(Object accountId) throws IOException, InterruptedException {
|
||||
String url = UriComponentsBuilder.fromHttpUrl(ervuUrl)
|
||||
.path(PathConstant.ACCOUNTS_PATH)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue