SUPPORT-9380: add application number to request body; fix user blocking requests
This commit is contained in:
parent
1915be2a42
commit
29b63b5016
8 changed files with 46 additions and 46 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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 = "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
export abstract class Data {
|
||||
view: string = "Сотрудники и роли";
|
||||
}
|
||||
applicationNumber: string;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,4 +5,5 @@ export class Person {
|
|||
public firstName: string = "";
|
||||
public middleName: string = "";
|
||||
public secondFactorEnabled: boolean = false;
|
||||
public ipAddresses: string[] = [];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
import {Data} from "../Data";
|
||||
|
||||
export class BlockingData extends Data {
|
||||
public accountIdList: string[];
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
import {Data} from "../Data";
|
||||
|
||||
export class UnblockingData extends Data {
|
||||
public accountIdList: string[] = [];
|
||||
public personIdList: string[] = [];
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue