SUPPORT-9123:fix remove-roles

This commit is contained in:
adel.kalimullin 2025-04-18 11:11:49 +03:00
parent 555898da68
commit 204464bde2
2 changed files with 21 additions and 13 deletions

View file

@ -38,8 +38,8 @@ public class RoleServiceImpl extends AbstractUserDataService {
public List<String> fetchRemovedRoleIds(String accountId, Set<String> newRoleIds) { public List<String> fetchRemovedRoleIds(String accountId, Set<String> newRoleIds) {
try { try {
return fetchRolesByAccountId(accountId).stream() return fetchRolesByAccountId(accountId).stream()
.filter(role -> role.isErvuRole() && !newRoleIds.contains(role.getId()))
.map(Role::getId) .map(Role::getId)
.filter(id -> !newRoleIds.contains(id))
.toList(); .toList();
} }
catch (Exception e) { catch (Exception e) {

View file

@ -48,15 +48,16 @@ export class UserManagementService extends Behavior {
private onClickFunction: Function; private onClickFunction: Function;
private sendToErvu: boolean = false; private sendToErvu: boolean = false;
private rpc: UserApplicationListRpcService; private rpc: UserApplicationListRpcService;
private authService: AuthorizationService;
initialize() { initialize() {
super.initialize(); super.initialize();
this.button = this.getScript(SaveButton); this.button = this.getScript(SaveButton);
this.httpClient = this.injector.get(HttpClient); this.httpClient = this.injector.get(HttpClient);
this.rpc = this.getScript(UserApplicationListRpcService); this.rpc = this.getScript(UserApplicationListRpcService);
let authService = this.injector.get(AuthorizationService); this.authService = this.injector.get(AuthorizationService);
this.onClickFunction = () => { this.onClickFunction = () => {
if (!authService.hasRole('security_administrator') || !this.sendToErvu) { if (!this.authService.hasRole('security_administrator') || !this.sendToErvu) {
return; return;
} }
let kind = this.applicationKind.getValue(); let kind = this.applicationKind.getValue();
@ -79,6 +80,7 @@ export class UserManagementService extends Behavior {
request = new CreateAccountRequest(); request = new CreateAccountRequest();
request.data = createData; request.data = createData;
request.processKey = ProcessKey.CREATE; request.processKey = ProcessKey.CREATE;
this.doRequest(request, formJson['appNumber']);
break; break;
case ApplicationKind.EDIT_USER_MAIN: case ApplicationKind.EDIT_USER_MAIN:
let editPersonData = new EditPersonData(); let editPersonData = new EditPersonData();
@ -87,6 +89,7 @@ export class UserManagementService extends Behavior {
request = new EditPersonRequest(); request = new EditPersonRequest();
request.data = editPersonData; request.data = editPersonData;
request.processKey = ProcessKey.EDIT_PERSON; request.processKey = ProcessKey.EDIT_PERSON;
this.doRequest(request, formJson['appNumber']);
break; break;
case ApplicationKind.EDIT_USER_ACCOUNT: case ApplicationKind.EDIT_USER_ACCOUNT:
let editAccountData = new EditAccountData(); let editAccountData = new EditAccountData();
@ -96,6 +99,7 @@ export class UserManagementService extends Behavior {
request = new EditAccountRequest(); request = new EditAccountRequest();
request.data = editAccountData; request.data = editAccountData;
request.processKey = ProcessKey.EDIT_ACCOUNT; request.processKey = ProcessKey.EDIT_ACCOUNT;
this.doRequest(request, formJson['appNumber']);
break; break;
case ApplicationKind.EDIT_USER_ROLES: case ApplicationKind.EDIT_USER_ROLES:
let editRolesAccount = new EditRolesAccount(); let editRolesAccount = new EditRolesAccount();
@ -108,12 +112,15 @@ export class UserManagementService extends Behavior {
return role; return role;
}); });
this.rpc.getRemovedRoleIds(accountId, rolesList) this.rpc.getRemovedRoleIds(accountId, rolesList)
.then(list => editRolesAccount.removeRoles = list); .then(list => {
let editRolesData = new EditRolesData(); editRolesAccount.removeRoles = list;
editRolesData.account = editRolesAccount; let editRolesData = new EditRolesData();
request = new EditRolesRequest(); editRolesData.account = editRolesAccount;
request.data = editRolesData; request = new EditRolesRequest();
request.processKey = ProcessKey.EDIT_ROLES; request.data = editRolesData;
request.processKey = ProcessKey.EDIT_ROLES;
this.doRequest(request, formJson['appNumber']);
});
break; break;
case ApplicationKind.BLOCK_USER: case ApplicationKind.BLOCK_USER:
let deactivationData = new ChangeActivationData(); let deactivationData = new ChangeActivationData();
@ -121,6 +128,7 @@ export class UserManagementService extends Behavior {
request = new ChangeActivationRequest(); request = new ChangeActivationRequest();
request.data = deactivationData; request.data = deactivationData;
request.processKey = ProcessKey.DEACTIVATE; request.processKey = ProcessKey.DEACTIVATE;
this.doRequest(request, formJson['appNumber']);
break; break;
case ApplicationKind.UNBLOCK_USER: case ApplicationKind.UNBLOCK_USER:
let activationData = new ChangeActivationData(); let activationData = new ChangeActivationData();
@ -128,6 +136,7 @@ export class UserManagementService extends Behavior {
request = new ChangeActivationRequest(); request = new ChangeActivationRequest();
request.data = activationData; request.data = activationData;
request.processKey = ProcessKey.ACTIVATE; request.processKey = ProcessKey.ACTIVATE;
this.doRequest(request, formJson['appNumber']);
break; break;
case ApplicationKind.RESET_PASSWORD: case ApplicationKind.RESET_PASSWORD:
let resetPasswordAccount = new ResetPasswordAccount(); let resetPasswordAccount = new ResetPasswordAccount();
@ -137,12 +146,10 @@ export class UserManagementService extends Behavior {
request = new ResetPasswordRequest(); request = new ResetPasswordRequest();
request.data = resetPasswordData; request.data = resetPasswordData;
request.processKey = ProcessKey.RESET_PASSWORD; request.processKey = ProcessKey.RESET_PASSWORD;
this.doRequest(request, formJson['appNumber']);
break; break;
} }
};
request.userId = authService.getUserId();
this.doRequest(request, formJson['appNumber']);
}
} }
@Visible() @Visible()
@ -171,6 +178,7 @@ export class UserManagementService extends Behavior {
private doRequest(request: any, appNumber: number): void { private doRequest(request: any, appNumber: number): void {
const url = window.location.origin + UserManagementService.PROCESS_START_PATH; const url = window.location.origin + UserManagementService.PROCESS_START_PATH;
request.userId = this.authService.getUserId();
this.httpClient.post(url, request).toPromise() this.httpClient.post(url, request).toPromise()
.then((response: ProcessResponse) => { .then((response: ProcessResponse) => {
let code = response.code; let code = response.code;