SUPPORT-9380: add application number to request body; fix user blocking requests

This commit is contained in:
gulnaz 2025-09-05 14:59:24 +03:00
parent 1915be2a42
commit 29b63b5016
8 changed files with 46 additions and 46 deletions

View file

@ -29,6 +29,8 @@ import {ProcessRequest} from "./dto/ProcessRequest";
import {StatusUpdateService} from "../../../modules/app/service/status-update.service";
import {BlockedRegion} from "../../../generated/ru/micord/ervu/account_applications/enums/BlockedRegion";
import {ErvuPermission} from "../../../modules/app/enum/ErvuPermission";
import {BlockingData} from "./dto/blocking/BlockingData";
import {UnblockingData} from "./dto/blocking/UnblockingData";
@AnalyticalScope(SaveButton)
export class UserManagementService extends Behavior {
@ -128,11 +130,33 @@ export class UserManagementService extends Behavior {
});
break;
case ApplicationKind.BLOCK_USER:
this.doBlockingRequest(accountId, personId, appNumber, true);
let blockingData = new BlockingData();
blockingData.accountIdList = [accountId];
request = new ProcessRequest<BlockingData>();
request.data = blockingData;
request.processKey = ProcessKey.BLOCK;
this.doRequest(request, appNumber);
break;
case ApplicationKind.UNBLOCK_USER:
this.doBlockingRequest(accountId, personId, appNumber, false,
formJson['blockedRegion']);
let unblockingData = new UnblockingData();
let blockedRegion = formJson['blockedRegion'];
switch (blockedRegion) {
case BlockedRegion.ACCOUNT:
unblockingData.accountIdList = [accountId];
break;
case BlockedRegion.PERSON:
unblockingData.personIdList = [personId];
break;
case BlockedRegion.BOTH:
unblockingData.accountIdList = [accountId];
unblockingData.personIdList = [personId];
break;
}
request = new ProcessRequest<UnblockingData>();
request.data = unblockingData;
request.processKey = ProcessKey.UNBLOCK;
this.doRequest(request, appNumber);
break;
case ApplicationKind.RESET_PASSWORD:
let resetPasswordAccount = new ResetPasswordAccount();
@ -176,6 +200,7 @@ export class UserManagementService extends Behavior {
private doRequest(request: any, appNumber: number): void {
const url = window.location.origin + UserManagementService.PROCESS_START_PATH;
request.userId = this.authService.getUserId();
request.data.applicationNumber = appNumber;
this.httpClient.post(url, request).toPromise()
.then((response: ProcessResponse) => {
let code = response.code;
@ -196,45 +221,6 @@ export class UserManagementService extends Behavior {
});
}
private doBlockingRequest(accountId: string, personId: string, appNumber: number, block: boolean,
blockedRegion?: string): void {
let ids;
let path;
if (!block && blockedRegion != BlockedRegion.ACCOUNT) {
ids = [personId];
path = UserManagementService.PERSON_BLOCK_PATH;
}
else {
ids = [accountId];
path = UserManagementService.ACCOUNT_BLOCK_PATH;
}
const url = window.location.origin + path;
let method = block ? 'delete' : 'post';
this.httpClient.request(method, url, { body: ids, observe: 'response' }).toPromise()
.then((response: any) => {
if (response.ok) {
if (blockedRegion == BlockedRegion.BOTH) {
this.doBlockingRequest(accountId, personId, appNumber, block, BlockedRegion.ACCOUNT);
}
else {
this.rpc.saveAcceptedStatus(appNumber)
.then(() => this.statusUpdateService.publishStatus(appNumber, true))
.catch(err => console.log('failed to update application status', err));
}
}
else {
let reason = response.body ? 'Reason: ' + response.body.toString() : '';
let errorMsg = `Failed to execute blocking request. Http status: ${response.status}. ${reason}`;
this.saveError(appNumber, errorMsg);
}
})
.catch(reason => {
console.error("Error while executing request:", reason.toString());
this.saveError(appNumber, reason.toString());
});
}
private saveError(appNumber: number, errorMsg: string): void {
this.rpc.saveError(appNumber, errorMsg)
.then(() => this.statusUpdateService.publishStatus(appNumber, false))

View file

@ -4,5 +4,6 @@ export class Account {
public idDomain: string = "";
public finish: string = null;
public sessionsLimit: number = 0;
public sessionContinuous: boolean = false;
public idPerson: string = "";
}

View file

@ -1,3 +1,4 @@
export abstract class Data {
view: string = "Сотрудники и роли";
applicationNumber: string;
}

View file

@ -5,4 +5,5 @@ export class Person {
public firstName: string = "";
public middleName: string = "";
public secondFactorEnabled: boolean = false;
public ipAddresses: string[] = [];
}

View file

@ -0,0 +1,5 @@
import {Data} from "../Data";
export class BlockingData extends Data {
public accountIdList: string[];
}

View file

@ -0,0 +1,6 @@
import {Data} from "../Data";
export class UnblockingData extends Data {
public accountIdList: string[] = [];
public personIdList: string[] = [];
}

View file

@ -3,7 +3,7 @@ export enum ProcessKey {
EDIT_PERSON = "milBaseEditAccountPersonIDMProcess",
EDIT_ACCOUNT = "milBaseEditAccountIDMProcess",
EDIT_ROLES = "milBaseEditAccountRolesIDMSubProcess",
DEACTIVATE = "milBaseMassDeActivateAccountIDMProcess",
ACTIVATE = "milBaseMassActivateAccountIDMProcess",
BLOCK = "milBaseBlockAccountIDMProcess",
UNBLOCK = "milBaseUnlockIDMProcess",
RESET_PASSWORD = "milBaseResetPasswordProcess"
}

View file

@ -3,7 +3,7 @@ import {Subject} from "rxjs";
import {HttpClient} from "@angular/common/http";
import {WebsocketService} from "../websocket/websocket.service";
import {StatusUpdateService} from "./status-update.service";
import {ErvuPermission} from "../enum/ErvuRole";
import {ErvuPermission} from "../enum/ErvuPermission";
export interface UserSession {
userId: string,