From 992e2c9a8a80294588b38e58a14bf3929c83cb18 Mon Sep 17 00:00:00 2001 From: gulnaz Date: Fri, 1 Aug 2025 10:45:07 +0300 Subject: [PATCH 1/3] SUPPORT-9296: add changeset, update db beans --- .../db_beans/public_/tables/Recruitment.java | 8 +-- .../public_/tables/UserApplicationList.java | 6 ++ .../public_/tables/UserApplicationRole.java | 12 ++-- .../tables/records/RecruitmentRecord.java | 8 +-- .../records/UserApplicationListRecord.java | 19 +++++- .../records/UserApplicationRoleRecord.java | 64 +++++++++---------- ...250801-SUPPORT-9296_add_blocked_region.xml | 16 +++++ .../resources/config/v_1.0/changelog-1.0.xml | 1 + 8 files changed, 87 insertions(+), 47 deletions(-) create mode 100644 backend/src/main/resources/config/v_1.0/20250801-SUPPORT-9296_add_blocked_region.xml diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/Recruitment.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/Recruitment.java index 01ccfef4..663b9287 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/Recruitment.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/Recruitment.java @@ -136,14 +136,14 @@ public class Recruitment extends TableImpl { public final TableField SUBPOENA_SERIES_CODE = createField(DSL.name("subpoena_series_code"), SQLDataType.VARCHAR(64), this, "Серия"); /** - * The column public.recruitment.region_code. Код региона + * The column public.recruitment.region_code. */ - public final TableField REGION_CODE = createField(DSL.name("region_code"), SQLDataType.CLOB, this, "Код региона"); + public final TableField REGION_CODE = createField(DSL.name("region_code"), SQLDataType.CLOB, this, ""); /** - * The column public.recruitment.ts. Отметка времени + * The column public.recruitment.ts. */ - public final TableField TS = createField(DSL.name("ts"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, "Отметка времени"); + public final TableField TS = createField(DSL.name("ts"), SQLDataType.TIMESTAMP(0).nullable(false).defaultValue(DSL.field(DSL.raw("now()"), SQLDataType.TIMESTAMP)), this, ""); /** * The column public.recruitment.name. diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationList.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationList.java index 922f246f..4b7f765f 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationList.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationList.java @@ -248,6 +248,12 @@ public class UserApplicationList extends TableImpl { */ public final TableField SENT_DATE = createField(DSL.name("sent_date"), SQLDataType.TIMESTAMP(0), this, "Дата отправки заявки в ЕРВУ"); + /** + * The column public.user_application_list.blocked_region. + * Заблокированная область (ACCOUNT, PERSON или BOTH) + */ + public final TableField BLOCKED_REGION = createField(DSL.name("blocked_region"), SQLDataType.VARCHAR(7), this, "Заблокированная область (ACCOUNT, PERSON или BOTH)"); + private UserApplicationList(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java index 80726e48..3a973c55 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/UserApplicationRole.java @@ -92,6 +92,12 @@ public class UserApplicationRole extends TableImpl { */ public final TableField ADMIN_ROLE = createField(DSL.name("admin_role"), SQLDataType.BOOLEAN, this, "Признак роли администратора"); + /** + * The column public.user_application_role.deleted. Дата и + * время окончания действия роли + */ + public final TableField DELETED = createField(DSL.name("deleted"), SQLDataType.TIMESTAMP(0), this, "Дата и время окончания действия роли"); + /** * The column public.user_application_role.active. */ @@ -102,12 +108,6 @@ public class UserApplicationRole extends TableImpl { */ public final TableField VERSION = createField(DSL.name("version"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, ""); - /** - * The column public.user_application_role.deleted. Дата и - * время окончания действия роли - */ - public final TableField DELETED = createField(DSL.name("deleted"), SQLDataType.TIMESTAMP(0), this, "Дата и время окончания действия роли"); - private UserApplicationRole(Name alias, Table aliased) { this(alias, aliased, (Field[]) null, null); } diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/RecruitmentRecord.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/RecruitmentRecord.java index 76b4eaed..cfd3bb31 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/RecruitmentRecord.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/RecruitmentRecord.java @@ -246,28 +246,28 @@ public class RecruitmentRecord extends UpdatableRecordImpl { } /** - * Setter for public.recruitment.region_code. Код региона + * Setter for public.recruitment.region_code. */ public void setRegionCode(String value) { set(15, value); } /** - * Getter for public.recruitment.region_code. Код региона + * Getter for public.recruitment.region_code. */ public String getRegionCode() { return (String) get(15); } /** - * Setter for public.recruitment.ts. Отметка времени + * Setter for public.recruitment.ts. */ public void setTs(Timestamp value) { set(16, value); } /** - * Getter for public.recruitment.ts. Отметка времени + * Getter for public.recruitment.ts. */ public Timestamp getTs() { return (Timestamp) get(16); diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationListRecord.java b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationListRecord.java index 0fa2fd8f..65d67e0a 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationListRecord.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/db_beans/public_/tables/records/UserApplicationListRecord.java @@ -522,6 +522,22 @@ public class UserApplicationListRecord extends UpdatableRecordImplpublic.user_application_list.blocked_region. + * Заблокированная область (ACCOUNT, PERSON или BOTH) + */ + public void setBlockedRegion(String value) { + set(32, value); + } + + /** + * Getter for public.user_application_list.blocked_region. + * Заблокированная область (ACCOUNT, PERSON или BOTH) + */ + public String getBlockedRegion() { + return (String) get(32); + } + // ------------------------------------------------------------------------- // Primary key information // ------------------------------------------------------------------------- @@ -545,7 +561,7 @@ public class UserApplicationListRecord extends UpdatableRecordImplpublic.user_application_role.active. - */ - public void setActive(Boolean value) { - set(6, value); - } - - /** - * Getter for public.user_application_role.active. - */ - public Boolean getActive() { - return (Boolean) get(6); - } - - /** - * Setter for public.user_application_role.version. - */ - public void setVersion(Integer value) { - set(7, value); - } - - /** - * Getter for public.user_application_role.version. - */ - public Integer getVersion() { - return (Integer) get(7); - } - /** * Setter for public.user_application_role.deleted. Дата и * время окончания действия роли */ public void setDeleted(Timestamp value) { - set(8, value); + set(6, value); } /** @@ -155,7 +127,35 @@ public class UserApplicationRoleRecord extends UpdatableRecordImplpublic.user_application_role.active. + */ + public void setActive(Boolean value) { + set(7, value); + } + + /** + * Getter for public.user_application_role.active. + */ + public Boolean getActive() { + return (Boolean) get(7); + } + + /** + * Setter for public.user_application_role.version. + */ + public void setVersion(Integer value) { + set(8, value); + } + + /** + * Getter for public.user_application_role.version. + */ + public Integer getVersion() { + return (Integer) get(8); } // ------------------------------------------------------------------------- @@ -181,7 +181,7 @@ public class UserApplicationRoleRecord extends UpdatableRecordImpl + + + + add blocked_region column to user_application_list table + + ALTER TABLE user_application_list ADD COLUMN IF NOT EXISTS blocked_region varchar(7); + COMMENT ON COLUMN user_application_list.blocked_region IS 'Заблокированная область (ACCOUNT, PERSON или BOTH)'; + + + + diff --git a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml index cf7ee888..6b17e54c 100644 --- a/backend/src/main/resources/config/v_1.0/changelog-1.0.xml +++ b/backend/src/main/resources/config/v_1.0/changelog-1.0.xml @@ -25,4 +25,5 @@ + From ddc5f403622d49755d60279dafad1b403022bf82 Mon Sep 17 00:00:00 2001 From: gulnaz Date: Fri, 1 Aug 2025 15:26:42 +0300 Subject: [PATCH 2/3] SUPPORT-9296: fix unblocking --- .../service/AccountGridLoadService.java | 3 +- .../enums/BlockedRegion.java | 13 + .../service/AccountFetchService.java | 19 +- .../component/button/UserManagementService.ts | 24 +- .../Обработка заявки на добавление пользователя.page | 134 ++++++++++ .../Создать заявку на активацию.page | 252 +++++++++++++++++- 6 files changed, 434 insertions(+), 11 deletions(-) create mode 100644 backend/src/main/java/ru/micord/ervu/account_applications/enums/BlockedRegion.java diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AccountGridLoadService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AccountGridLoadService.java index 7b2aee8b..b9e71887 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AccountGridLoadService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AccountGridLoadService.java @@ -83,11 +83,12 @@ public class AccountGridLoadService extends Behavior implements GridService { for (Account account : accounts) { GridRow gridRow = new GridRow(); gridRow.put("row_uid", account.getId() != null ? account.getId() : ""); - gridRow.put("enabled", !account.isBlocked()); + gridRow.put("accountEnabled", !account.isBlocked()); Person person = account.getPerson(); if (person != null) { gridRow.put("login", person.getLogin()); gridRow.put("snils", person.getSnils()); + gridRow.put("personEnabled", !person.isBlocked()); String fullName = person.getFullName(); if (fullName != null) { diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/enums/BlockedRegion.java b/backend/src/main/java/ru/micord/ervu/account_applications/enums/BlockedRegion.java new file mode 100644 index 00000000..f61cf4c6 --- /dev/null +++ b/backend/src/main/java/ru/micord/ervu/account_applications/enums/BlockedRegion.java @@ -0,0 +1,13 @@ +package ru.micord.ervu.account_applications.enums; + +import ru.cg.webbpm.modules.webkit.annotations.Model; + +/** + * @author gulnaz + */ +@Model +public enum BlockedRegion { + ACCOUNT, + PERSON, + BOTH +} diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java index 55f4afe0..905f2b00 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java @@ -33,6 +33,8 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant; import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; +import static ru.micord.ervu.account_applications.enums.BlockedRegion.*; + /** * @author Adel Kalimullin */ @@ -42,6 +44,9 @@ public class AccountFetchService implements EntityFetchService { private static final String FIELD_IP_ADDRESSES = "ipAddresses"; private static final String FIELD_SNILS = "snils"; private static final String FIELD_ROLES = "roles"; + private static final String FIELD_ACCOUNT_BLOCKED = "blocked"; + private static final String FIELD_PERSON_BLOCKED = "person.blocked"; + private static final String FIELD_BLOCKED_REGION = "blockedRegion"; private final RestTemplate restTemplate; private final ObjectMapper mapper; private final SecurityContext securityContext; @@ -140,7 +145,9 @@ public class AccountFetchService implements EntityFetchService { } private Map objectToFlatMap(Object obj) { - return objectToFlatMapInternal(obj, ""); + Map result = objectToFlatMapInternal(obj, ""); + putBlockedValue(result); + return result; } private Map objectToFlatMapInternal(Object obj, String prefix) { @@ -224,4 +231,14 @@ public class AccountFetchService implements EntityFetchService { private boolean isSimple(Class type) { return ClassUtils.isPrimitiveOrWrapper(type) || type == String.class; } + + private void putBlockedValue(Map result) { + boolean accountBlocked = Boolean.parseBoolean(String.valueOf(result.get(FIELD_ACCOUNT_BLOCKED))); + boolean personBlocked = Boolean.parseBoolean(String.valueOf(result.get(FIELD_PERSON_BLOCKED))); + String value = accountBlocked && personBlocked + ? BOTH.toString() : accountBlocked + ? ACCOUNT.toString() : personBlocked + ? PERSON.toString() : null; + result.put(FIELD_BLOCKED_REGION, value); + } } diff --git a/frontend/src/ts/account_applications/component/button/UserManagementService.ts b/frontend/src/ts/account_applications/component/button/UserManagementService.ts index 2f3c9ef7..95c98ea9 100644 --- a/frontend/src/ts/account_applications/component/button/UserManagementService.ts +++ b/frontend/src/ts/account_applications/component/button/UserManagementService.ts @@ -27,12 +27,14 @@ import {ResetPasswordAccount} from "./dto/password/ResetPasswordAccount"; import {ResetPasswordData} from "./dto/password/ResetPasswordData"; 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"; @AnalyticalScope(SaveButton) export class UserManagementService extends Behavior { private static PROCESS_START_PATH = '/service/wf/service/start'; - private static USER_BLOCK_PATH = "/service/idm/accounts/blocked/v1"; + private static ACCOUNT_BLOCK_PATH = "/service/idm/accounts/blocked/v1"; + private static PERSON_BLOCK_PATH = "/service/idm/persons/blocked/v1"; @NotNull() @ObjectRef() @@ -127,7 +129,7 @@ export class UserManagementService extends Behavior { this.doBlockingRequest([accountId], appNumber, true); break; case ApplicationKind.UNBLOCK_USER: - this.doBlockingRequest([accountId], appNumber, false); + this.doBlockingRequest([accountId], appNumber, false, formJson['blockedRegion']); break; case ApplicationKind.RESET_PASSWORD: let resetPasswordAccount = new ResetPasswordAccount(); @@ -188,15 +190,23 @@ export class UserManagementService extends Behavior { }); } - private doBlockingRequest(ids: string[], appNumber: number, block: boolean): void { - const url = window.location.origin + UserManagementService.USER_BLOCK_PATH; + private doBlockingRequest(ids: string[], appNumber: number, block: boolean, blockedRegion?: string): void { + let path = !block && blockedRegion != BlockedRegion.ACCOUNT + ? UserManagementService.PERSON_BLOCK_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) { - this.rpc.saveAcceptedStatus(appNumber) - .then(() => this.statusUpdateService.publishStatus(appNumber, true)) - .catch(err => console.log('failed to update application status', err)); + if (blockedRegion == BlockedRegion.BOTH) { + this.doBlockingRequest(ids, 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() : ''; diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page index d1dc8828..e3d8c130 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Обработка заявки на добавление пользователя.page @@ -2495,6 +2495,7 @@ b838c4d9-b8f2-4142-96fe-240540a4802e Номер false + false false @@ -2557,6 +2558,7 @@ a410163c-e804-4bff-9d0a-28e4853f4a58 Фамилия false + false false @@ -3205,6 +3207,138 @@ "snils" + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 3fb4a21f-d13c-4854-a837-df07f5f3090e + Блокировка + false + false + false + + + + collectible + + false + + + + cssClasses + + + + "width-full" + + + + + + disabled + + true + + + + label + + "Блокировка" + + + + mask + + null + + + + unMaskValue + + false + + + + visible + + false + + + + + + + + + defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"phone"} + + + + loadType + + null + + + + + + + + + columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"} + + + + + + + + textFieldService + + + + displayColumn + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"} + + + + loadDao + + + +graph + + {"conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"nodeByIndex":{"0":{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"nodes":[{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}],"nodeByEntityName":{"user_application_list":{"tableName":"user_application_list","schemaName":"public","x":370.0,"y":295.0,"alias":"user_application_list","conditionGroup":{"operator":"AND","conditions":[],"groups":[]},"emptyEntityAction":"IGNORE_OR_DELETE"}},"matrix":[[null]],"mainNodeIndex":0} + + + + + + + + + + + + + FormField + account_applications.component.field + +true +true + + + name + + "blockedRegion" + + diff --git a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page index 347a6d41..d5fd91bb 100644 --- a/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page +++ b/resources/src/main/resources/business-model/Список заявок на пользователя/Создать заявку на активацию.page @@ -2280,6 +2280,56 @@ + + + + + + + + + +behavior + + {"objectId":"2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e","packageName":"component.field","className":"TextField","type":"TS"} + + + +method + + "setValue" + + + +value + + + + objectValue + + + + argument + + null + + + + behavior + + {"objectId":"d8984d37-f505-4c23-a805-44a44213a4ca","packageName":"component.field","className":"TextField","type":"TS"} + + + + method + + "getValue" + + + + + + @@ -2360,6 +2410,52 @@ + + + +133ca212-09a6-413a-ac66-e2f6ce188f1f +d8984d37-f505-4c23-a805-44a44213a4ca +Блокировка load_1 +false +false + + + + label + + "Блокировка load_1" + + + + visible + + false + + + + + + + + + false + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + + fieldName + + "blockedRegion" + + + @@ -4059,6 +4155,13 @@ true + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e + person_id + false + true + b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94 @@ -4484,6 +4587,84 @@ fieldName "personId" + + + + + + + 133ca212-09a6-413a-ac66-e2f6ce188f1f + 2ad7edcd-a3d0-4ac8-aab2-72ad28e20d7e + blocked_region + false + false + + + +cssClasses + + + + "width-full" + + + + + +label + + "blocked_region" + + + +visible + + false + + + + + + + + +defaultValueColumn + + {"schema":"public","table":"user_list","entity":"user_list","name":"middlename"} + + + +loadType + + null + + + + + + + + +columnForSave + + {"schema":"public","table":"user_application_list","entity":"user_application_list","name":"blocked_region"} + + + + + + + + ErvuFormLoadComponent + ru.micord.ervu.account_applications.component.field.persist + + true + true + + +fieldName + + "blockedRegion" @@ -7497,7 +7678,7 @@ displayName -"Активен" +"Персона активна" @@ -7507,7 +7688,74 @@ column - "enabled" + "personEnabled" + + + + filterType + + "TEXT" + + + + type + + "java.lang.String" + + + + + + + hidden + +true + + + + sortable + +false + + + + + + + d4f69cb0-864e-4895-b6fd-152072774909 + 0385b14c-91ef-4f02-8ebf-5d064d3f65ea + StaticColumn + false + false + + + + valueFormatter + + + DefaultValueFormatter + component.grid.formatters + + + + + + + + + displayName + +"Аккаунт активен" + + + + field + + + + column + + "accountEnabled" From 1d54f21fe580ab4dedf88c24e5ddff0bafd35465 Mon Sep 17 00:00:00 2001 From: gulnaz Date: Mon, 4 Aug 2025 09:09:31 +0300 Subject: [PATCH 3/3] SUPPORT-9296: fix person unblocking --- .../component/button/UserManagementService.ts | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/frontend/src/ts/account_applications/component/button/UserManagementService.ts b/frontend/src/ts/account_applications/component/button/UserManagementService.ts index 95c98ea9..1f91af20 100644 --- a/frontend/src/ts/account_applications/component/button/UserManagementService.ts +++ b/frontend/src/ts/account_applications/component/button/UserManagementService.ts @@ -63,6 +63,7 @@ export class UserManagementService extends Behavior { const formJson = this.collectData(); const appNumber = formJson['appNumber']; const accountId = formJson['accountId']; + const personId = formJson['idPerson']; let request; switch (kind) { @@ -85,7 +86,7 @@ export class UserManagementService extends Behavior { case ApplicationKind.EDIT_USER_MAIN: let editPersonData = new EditPersonData(); editPersonData.accountId = accountId; - editPersonData.personId = formJson['idPerson']; + editPersonData.personId = personId; editPersonData.organizationId = formJson['idDomain']; editPersonData.personData = this.populateDto(new Person(), formJson); request = new ProcessRequest(); @@ -126,10 +127,11 @@ export class UserManagementService extends Behavior { }); break; case ApplicationKind.BLOCK_USER: - this.doBlockingRequest([accountId], appNumber, true); + this.doBlockingRequest(accountId, personId, appNumber, true); break; case ApplicationKind.UNBLOCK_USER: - this.doBlockingRequest([accountId], appNumber, false, formJson['blockedRegion']); + this.doBlockingRequest(accountId, personId, appNumber, false, + formJson['blockedRegion']); break; case ApplicationKind.RESET_PASSWORD: let resetPasswordAccount = new ResetPasswordAccount(); @@ -190,17 +192,26 @@ export class UserManagementService extends Behavior { }); } - private doBlockingRequest(ids: string[], appNumber: number, block: boolean, blockedRegion?: string): void { - let path = !block && blockedRegion != BlockedRegion.ACCOUNT - ? UserManagementService.PERSON_BLOCK_PATH - : UserManagementService.ACCOUNT_BLOCK_PATH; + 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(ids, appNumber, block, BlockedRegion.ACCOUNT); + this.doBlockingRequest(accountId, personId, appNumber, block, BlockedRegion.ACCOUNT); } else { this.rpc.saveAcceptedStatus(appNumber)