Merge remote-tracking branch 'origin/SUPPORT-8943_seamlessness' into feature/SUPPORT-9001_pass_reset

# Conflicts:
#	backend/src/main/resources/config/v_1.0/changelog-1.0.xml
#	frontend/src/ts/account_applications/component/enum/AccountAction.ts
This commit is contained in:
adel.ka 2025-03-14 12:46:32 +03:00
commit f769a34da1
23 changed files with 929 additions and 305 deletions

View file

@ -30,7 +30,9 @@ import ru.micord.ervu.account_applications.dto.Role;
import ru.micord.ervu.account_applications.dto.Roles;
import ru.micord.ervu.account_applications.dto.deactivate.DeactivateData;
import ru.micord.ervu.account_applications.dto.deactivate.DeactivateProcessRequest;
import ru.micord.ervu.account_applications.dto.edit.EditAccountDto;
import ru.micord.ervu.account_applications.dto.edit.EditData;
import ru.micord.ervu.account_applications.dto.edit.EditRolesDto;
import ru.micord.ervu.account_applications.dto.edit.EditPersonDto;
import ru.micord.ervu.account_applications.dto.edit.EditPersonProcessRequest;
import ru.micord.ervu.account_applications.dto.password.ResetPasswordData;
@ -63,7 +65,7 @@ public class AdminController {
this.applicationListService = applicationListService;
}
@PostMapping(value = "/create", consumes = MediaType.APPLICATION_JSON_VALUE)
@PostMapping(value = "", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> create(@RequestBody @Valid CreateUserDto dto) {
Credential credential = new Credential(dto.username());
Account account = new Account(dto.userDomain(), dto.position());
@ -71,34 +73,58 @@ public class AdminController {
dto.email(), dto.birthdate(), dto.snils(), dto.ipAddresses());
List<Role> rolesList = dto.roles()
.stream()
.map(role -> new Role(role, ""))
.map(Role::new)
.collect(Collectors.toList());
Roles roles = new Roles(rolesList);
CreateProcessRequest request = new CreateProcessRequest(
ProcessKey.CREATE.getValue(), getUserId(), new CreateData(credential, account, person, roles));
ResponseEntity<?> responseEntity = doRequest(request);
if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
String traceId = ((ProcessResponse) Objects.requireNonNull(responseEntity.getBody())).traceId();
applicationListService.saveTraceId(traceId, dto.appNumber());
}
return responseEntity;
return doRequestAndSaveTraceId(request, dto.appNumber());
}
@PostMapping(value = "/edit", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> edit(@RequestBody @Valid EditPersonDto dto) {
@PostMapping(value = "/person", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> editPerson(@RequestBody @Valid EditPersonDto dto) {
Person person = new Person(dto.id(), dto.firstname(), dto.surname(), dto.middlename(), dto.sex(),
dto.email(), dto.birthdate(), dto.snils(), dto.ipAddresses());
EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_PERSON.getValue(),
getUserId(), new EditData(dto.accountId(), person));
return doRequest(request);
return doRequestAndSaveTraceId(request, dto.appNumber());
}
@PostMapping(value = "/deactivate", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> deactivate(@RequestBody DeactivateData data) {
@PostMapping(value = "/account", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> editAccount(@RequestBody @Valid EditAccountDto dto) {
Account account = new Account(dto.id(), dto.userDomain(), dto.position());
EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_ACCOUNT.getValue(),
getUserId(), new EditData(account));
return doRequestAndSaveTraceId(request, dto.appNumber());
}
@PostMapping(value = "/roles", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> editRoles(@RequestBody @Valid EditRolesDto dto) {
List<Role> rolesList = dto.roles()
.stream()
.map(Role::new)
.collect(Collectors.toList());
Account account = new Account(dto.accountId(), dto.removeRoles(), rolesList);
EditPersonProcessRequest request = new EditPersonProcessRequest(ProcessKey.EDIT_ROLES.getValue(),
getUserId(), new EditData(account));
return doRequestAndSaveTraceId(request, dto.appNumber());
}
@PostMapping(value = "/deactivation", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<?> deactivate(@RequestBody @Valid DeactivateData data) {
DeactivateProcessRequest request = new DeactivateProcessRequest(ProcessKey.DEACTIVATE.getValue(),
getUserId(), data);
return doRequest(request);
return doRequestAndSaveTraceId(request, data.appNumber());
}
private <R> ResponseEntity<?> doRequestAndSaveTraceId(ProcessRequest<R> request, long appNumber) {
ResponseEntity<?> responseEntity = doRequest(request);
if (responseEntity.getStatusCode().equals(HttpStatus.OK)) {
String traceId = ((ProcessResponse) Objects.requireNonNull(responseEntity.getBody())).traceId();
applicationListService.saveTraceId(traceId, appNumber);
}
return responseEntity;
}
@GetMapping("/exists")

View file

@ -1,15 +1,126 @@
package ru.micord.ervu.account_applications.dto;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* @author gulnaz
* @author Emir Suleimanov
*/
public record Account(String schema, @JsonProperty("user-domain") String userDomain,
String position, boolean enabled, boolean esiaAccount,
String start, String finish) {
@JsonIgnoreProperties(ignoreUnknown = true)
public class Account {
private final String schema = "Account";
@JsonProperty("user-domain")
private String userDomain;
private String position;
private boolean enabled = true;
private boolean esiaAccount;
private String start;
private String finish;
private String id;
private String accountId;
private List<String> removeRoles;
private List<Role> rolesList;
public Account(String userDomain, String position) {
this("Account", userDomain, position, true, false, "", "");
this.userDomain = userDomain;
this.position = position;
}
public Account(String id, String userDomain, String position) {
this(userDomain, position);
this.id = id;
}
public Account(String accountId, List<String> removeRoles, List<Role> rolesList) {
this.accountId = accountId;
this.removeRoles = removeRoles;
this.rolesList = rolesList;
}
public String getSchema() {
return schema;
}
public String getUserDomain() {
return userDomain;
}
public void setUserDomain(String userDomain) {
this.userDomain = userDomain;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isEsiaAccount() {
return esiaAccount;
}
public void setEsiaAccount(boolean esiaAccount) {
this.esiaAccount = esiaAccount;
}
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getFinish() {
return finish;
}
public void setFinish(String finish) {
this.finish = finish;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public List<String> getRemoveRoles() {
return removeRoles;
}
public void setRemoveRoles(List<String> removeRoles) {
this.removeRoles = removeRoles;
}
public List<Role> getRolesList() {
return rolesList;
}
public void setRolesList(List<Role> rolesList) {
this.rolesList = rolesList;
}
}

View file

@ -4,4 +4,7 @@ package ru.micord.ervu.account_applications.dto;
* @author gulnaz
*/
public record Role(String id, String finish) {
public Role(String id) {
this(id, "");
}
}

View file

@ -1,9 +1,10 @@
package ru.micord.ervu.account_applications.dto.deactivate;
import java.util.List;
import javax.validation.constraints.NotNull;
/**
* @author gulnaz
*/
public record DeactivateData(List<String> accountIdList) {
public record DeactivateData(@NotNull long appNumber, List<String> accountIdList) {
}

View file

@ -0,0 +1,14 @@
package ru.micord.ervu.account_applications.dto.edit;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
/**
* @author Emir Suleimanov
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public record EditAccountDto(@NotNull long appNumber, String username, @NotNull String position,
@NotNull String id, @NotNull @NotEmpty String userDomain) {
}

View file

@ -1,9 +1,48 @@
package ru.micord.ervu.account_applications.dto.edit;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import ru.micord.ervu.account_applications.dto.Account;
import ru.micord.ervu.account_applications.dto.Person;
/**
* @author gulnaz
*/
public record EditData(String accountId, Person personData) {
@JsonIgnoreProperties(ignoreUnknown = true)
public class EditData {
private String accountId;
private Person personData;
private Account account;
public EditData(String accountId, Person personData) {
this.accountId = accountId;
this.personData = personData;
}
public EditData(Account account) {
this.account = account;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public Person getPersonData() {
return personData;
}
public void setPersonData(Person personData) {
this.personData = personData;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
}

View file

@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
* @author gulnaz
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public record EditPersonDto(@NotNull String accountId, @NotNull String id,
public record EditPersonDto(@NotNull long appNumber, @NotNull String accountId, @NotNull String id,
@NotNull String firstname, @NotNull String surname, String middlename,
String birthdate, String sex, String position, String email,
@NotNull String snils, List<String> ipAddresses) {

View file

@ -0,0 +1,14 @@
package ru.micord.ervu.account_applications.dto.edit;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
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) {
}

View file

@ -5,6 +5,7 @@ import java.lang.invoke.MethodHandles;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.Optional;
import java.util.concurrent.Executors;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@ -19,6 +20,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import ru.micord.ervu.account_applications.security.model.jwt.authentication.JwtTokenDummy;
import ru.micord.ervu.account_applications.websocket.service.WebSocketService;
@Component
@ -27,9 +29,12 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
MethodHandles.lookup().lookupClass());
private final AuthenticationManager authenticationManager;
private final WebSocketService webSocketService;
public JwtAuthenticationFilter(AuthenticationManager authenticationManager) {
public JwtAuthenticationFilter(AuthenticationManager authenticationManager,
WebSocketService webSocketService) {
this.authenticationManager = authenticationManager;
this.webSocketService = webSocketService;
}
@Override
@ -39,6 +44,8 @@ public class JwtAuthenticationFilter extends OncePerRequestFilter {
Authentication authentication = attemptAuthentication(request);
if (authentication != null) {
SecurityContextHolder.getContext().setAuthentication(authentication);
//TODO SUPPORT-9009 connection by duty user
Executors.newSingleThreadExecutor().execute(webSocketService::connectToSocket);
}
}
catch (AuthenticationException e) {

View file

@ -8,18 +8,14 @@ import ru.micord.ervu.account_applications.security.model.jwt.UserSession;
import ru.micord.ervu.account_applications.security.model.jwt.authentication.JwtTokenAuthentication;
import ru.micord.ervu.account_applications.security.model.jwt.authentication.JwtTokenDummy;
import ru.micord.ervu.account_applications.security.service.JwtTokenService;
import ru.micord.ervu.account_applications.websocket.service.WebSocketService;
@Component
public class ErvuJwtAuthenticationProvider implements AuthenticationProvider {
private final JwtTokenService jwtTokenService;
private final WebSocketService webSocketService;
public ErvuJwtAuthenticationProvider(JwtTokenService jwtTokenService,
WebSocketService webSocketService) {
public ErvuJwtAuthenticationProvider(JwtTokenService jwtTokenService) {
this.jwtTokenService = jwtTokenService;
this.webSocketService = webSocketService;
}
@Override
@ -27,8 +23,6 @@ public class ErvuJwtAuthenticationProvider implements AuthenticationProvider {
JwtTokenDummy jwtTokenDummy = (JwtTokenDummy) authentication;
String jwtToken = jwtTokenDummy.getToken();
UserSession userSession = jwtTokenService.getUserSession(jwtToken);
//TODO SUPPORT-9009 connection by duty user
webSocketService.connectToSocket(jwtToken);
return new JwtTokenAuthentication(userSession, jwtToken);
}

View file

@ -5,6 +5,7 @@ import javax.annotation.PostConstruct;
import net.javacrumbs.shedlock.core.SchedulerLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.DependsOn;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -15,6 +16,7 @@ import static org.springframework.scheduling.config.ScheduledTaskRegistrar.CRON_
* @author Eduard Tihomirov
*/
@Service
@DependsOn("liquibase")
public class ErvuDirectoriesUpdateShedulerService {
@Autowired

View file

@ -12,7 +12,7 @@ import org.springframework.web.socket.client.standard.StandardWebSocketClient;
public class WebSocketConfig {
@Bean
public WebSocketClient webSocketStompClient() {
public WebSocketClient webSocketClient() {
return new StandardWebSocketClient();
}
}

View file

@ -1,6 +1,8 @@
package ru.micord.ervu.account_applications.websocket.handler;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@ -24,6 +26,7 @@ import ru.micord.ervu.account_applications.websocket.service.WebSocketService;
@Component
public class ClientSocketHandler extends TextWebSocketHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(TextWebSocketHandler.class);
private static final Map<String, WebSocketSession> sessionByUserId = new ConcurrentHashMap<>();
private final ObjectMapper objectMapper;
private final UserApplicationListService applicationService;
@ -43,6 +46,7 @@ public class ClientSocketHandler extends TextWebSocketHandler {
@Override
public void afterConnectionEstablished(WebSocketSession session) {
LOGGER.info("established connection {}", session);
sessionByUserId.put(securityContext.getUserId(), session);
}
@Override
@ -96,6 +100,11 @@ public class ClientSocketHandler extends TextWebSocketHandler {
LOGGER.error("Failed to close session on afterConnectionClosed ", e);
}
}
webSocketService.connectToSocket(securityContext.getToken());
sessionByUserId.remove(securityContext.getUserId());
webSocketService.connectToSocket();
}
public boolean isSessionOpen(String userId) {
return sessionByUserId.get(userId) != null && sessionByUserId.get(userId).isOpen();
}
}

View file

@ -3,6 +3,8 @@ package ru.micord.ervu.account_applications.websocket.service;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -11,6 +13,8 @@ import org.springframework.stereotype.Service;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.WebSocketHttpHeaders;
import org.springframework.web.socket.client.WebSocketClient;
import ru.micord.ervu.account_applications.security.context.SecurityContext;
import ru.micord.ervu.account_applications.websocket.handler.ClientSocketHandler;
/**
* @author gulnaz
@ -21,29 +25,38 @@ public class WebSocketService {
private final WebSocketClient webSocketClient;
private final WebSocketHandler webSocketHandler;
private final SecurityContext securityContext;
@Value("${ervu.url}")
private String ervuUrl;
@Value("${ervu.socket.queue:/service/notifier/gateway/notify/notifier.message.send.push}")
private String socketQueue;
@Value("${ervu.socket.connection_timeout:30}")
private long timeout;
public WebSocketService(WebSocketClient webSocketClient, WebSocketHandler webSocketHandler) {
public WebSocketService(WebSocketClient webSocketClient, WebSocketHandler webSocketHandler,
SecurityContext securityContext) {
this.webSocketClient = webSocketClient;
this.webSocketHandler = webSocketHandler;
this.securityContext = securityContext;
}
public void connectToSocket(String token) {
public void connectToSocket() {
if (((ClientSocketHandler) webSocketHandler).isSessionOpen(securityContext.getUserId())) {
return;
}
WebSocketHttpHeaders headers = new WebSocketHttpHeaders();
headers.set("Content-Type", "application/json");
String token = securityContext.getToken();
headers.add("Authorization", "Bearer " + token);
headers.add("Cookie", "JWT=" + token); // to listen private messages
try {
String host = new URI(ervuUrl).getHost();
webSocketClient.doHandshake(webSocketHandler, headers,
URI.create("wss://" + host + socketQueue)).get();
URI.create("wss://" + host + socketQueue)).get(timeout, TimeUnit.SECONDS);
}
catch (InterruptedException | ExecutionException | URISyntaxException e) {
catch (InterruptedException | ExecutionException | URISyntaxException | TimeoutException e) {
LOGGER.error("Failed to connect socket", e);
}
}

View file

@ -15,9 +15,6 @@
<include file="20250304_SUPPORT-8956_drop_security.xml" relativeToChangelogFile="true"/>
<include file="20250307_ERVU-308_create_table_update.xml" relativeToChangelogFile="true"/>
<include file="20250312-SUPPORT-8696_add_column_role.xml" relativeToChangelogFile="true"/>
<include file="20250314_add_password_last_update.xml" relativeToChangelogFile="true"/>
<include file="20250313-SUPPORT-8957_add_trace_id.xml" relativeToChangelogFile="true"/>
<include file="20250314_add_password_last_update.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

View file

@ -27,13 +27,19 @@ export class UserManagementService extends Behavior {
switch (this.action) {
case AccountAction.CREATE:
this.doRequest("user/create", jsonObj);
this.doRequest("user", jsonObj);
break;
case AccountAction.EDIT:
this.doRequest("user/edit", jsonObj);
case AccountAction.EDIT_PERSON:
this.doRequest("user/person", jsonObj);
break;
case AccountAction.EDIT_ACCOUNT:
this.doRequest("user/account", jsonObj);
break;
case AccountAction.EDIT_ROLES:
this.doRequest("user/roles", jsonObj);
break;
case AccountAction.DEACTIVATE:
this.doRequest("user/deactivate", jsonObj);
this.doRequest("users/deactivation", jsonObj);
break;
case AccountAction.RESET_PASSWORD:
this.doRequest("user/password/reset", jsonObj);
@ -53,8 +59,9 @@ export class UserManagementService extends Behavior {
private doRequest(url: string, jsonObj: any): void {
this.httpClient.post(url, jsonObj).toPromise()
.catch(() => {
.catch(reason => {
//TODO change status
console.error("Error while executing request:", reason.toString());
});
}

View file

@ -1,6 +1,8 @@
export enum AccountAction {
CREATE = "CREATE",
EDIT = "EDIT",
EDIT_PERSON = "EDIT_PERSON",
EDIT_ACCOUNT = "EDIT_ACCOUNT",
EDIT_ROLES = "EDIT_ROLES",
DEACTIVATE = "DEACTIVATE",
RESET_PASSWORD="RESET_PASSWORD"
}

View file

@ -91,6 +91,30 @@
<entry>
<key>parts</key>
<value>
<item id="e8932b0d-fc0e-4cd8-8246-4088fd0e67ea" removed="false">
<value>
<complex>
<entry>
<key>inputControl</key>
<value>
<simple>{"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>postfix</key>
<value>
<simple>" пользователя "</simple>
</value>
</entry>
<entry>
<key>prefix</key>
<value>
<simple>"Заявка на "</simple>
</value>
</entry>
</complex>
</value>
</item>
<item id="e7fcbb5d-a8fe-4c33-880b-b033c23afd3f" removed="false">
<value>
<complex>
@ -103,7 +127,7 @@
<entry>
<key>prefix</key>
<value>
<simple>"Заявка на добавление пользователя № "</simple>
<simple>"№ "</simple>
</value>
</entry>
</complex>
@ -254,7 +278,7 @@
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d9e58a3b-d3cf-4859-8233-5cf79b136d1a","packageName":"component","className":"Text","type":"TS"}</simple>
<simple>{"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
@ -274,7 +298,7 @@
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"Заявка на добавление нового пользователя"</simple>
<simple>"добавление"</simple>
</value>
</entry>
</complex>
@ -562,7 +586,7 @@
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d9e58a3b-d3cf-4859-8233-5cf79b136d1a","packageName":"component","className":"Text","type":"TS"}</simple>
<simple>{"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
@ -582,7 +606,7 @@
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"Заявка на изменение пользователя"</simple>
<simple>"изменение"</simple>
</value>
</entry>
</complex>
@ -864,7 +888,7 @@
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d9e58a3b-d3cf-4859-8233-5cf79b136d1a","packageName":"component","className":"Text","type":"TS"}</simple>
<simple>{"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
@ -884,7 +908,7 @@
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"Заявка на деактивацию пользователя"</simple>
<simple>"деактивацию"</simple>
</value>
</entry>
</complex>
@ -894,6 +918,175 @@
</value>
</item>
<item id="b4e369c2-515c-494b-930e-5097408cb0ff" removed="true"/>
<item id="09d5c116-dbac-4817-a43d-a1273df74f31" removed="true"/>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="177da660-19da-4e62-a39f-fb8afb40e676">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>177da660-19da-4e62-a39f-fb8afb40e676</componentRootId>
<name>AC_RESET_PASSWORD</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<properties>
<entry>
<key>elseActions</key>
<value>
<item id="359c89ac-2236-45c9-b363-bf4772c86dc5" removed="true"/>
</value>
</entry>
<entry>
<key>eventRefs</key>
<value>
<item id="1a590440-bd87-4a5d-aab3-8f718a179ec5" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"80f94647-9cb4-4aaf-8c6b-a842e486e98c","packageName":"component.container","className":"Form","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"formLoaded"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c7e8f8f5-8e89-4248-b68b-e1d1afec4cdd" removed="false">
<value>
<complex>
<entry>
<key>_isGroupSelected</key>
<value>
<simple>false</simple>
</value>
</entry>
<entry>
<key>one</key>
<value>
<complex>
<entry>
<key>conditionFirstPart</key>
<value>
<complex>
<entry>
<key>objectValue</key>
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"9e772048-b43f-42f1-a370-2519dd4f6ad7","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"getValue"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>conditionSecondPart</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"RESET_PASSWORD"</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>operation</key>
<value>
<simple>"EQUALS"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="951bae4f-2e83-4b40-8923-81a1435083de" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6a6f7cf8-b71e-4c7c-a2b7-4ed8d3a7c83f" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"522f1f66-b490-45d4-ab45-0e4cacfe63a2","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setValue"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"сброс пароля"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="7534fce5-f3b2-446c-bea5-d092d38693dd" removed="true"/>
<item id="09d5c116-dbac-4817-a43d-a1273df74f31" removed="true"/>
</value>
</entry>
@ -1518,174 +1711,28 @@
</properties>
</scripts>
</children>
<children id="177da660-19da-4e62-a39f-fb8afb40e676">
<prototypeId>98594cec-0a9b-4cef-af09-e1b71cb2ad9e</prototypeId>
<componentRootId>177da660-19da-4e62-a39f-fb8afb40e676</componentRootId>
<name>AC_CREATE_USER</name>
<children id="522f1f66-b490-45d4-ab45-0e4cacfe63a2">
<prototypeId>ba24d307-0b91-4299-ba82-9d0b52384ff2</prototypeId>
<componentRootId>522f1f66-b490-45d4-ab45-0e4cacfe63a2</componentRootId>
<name>Text_tmp</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="37dff5c8-1599-4984-b107-c44a87b6da2e">
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>elseActions</key>
<value>
<item id="359c89ac-2236-45c9-b363-bf4772c86dc5" removed="true"/>
</value>
</entry>
<entry>
<key>eventRefs</key>
<value>
<item id="1a590440-bd87-4a5d-aab3-8f718a179ec5" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"80f94647-9cb4-4aaf-8c6b-a842e486e98c","packageName":"component.container","className":"Form","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>propertyName</key>
<value>
<simple>"formLoaded"</simple>
</value>
</entry>
</complex>
</value>
</item>
</value>
</entry>
<entry>
<key>ifCondition</key>
<value>
<complex>
<entry>
<key>conditions</key>
<value>
<item id="c7e8f8f5-8e89-4248-b68b-e1d1afec4cdd" removed="false">
<value>
<complex>
<entry>
<key>_isGroupSelected</key>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
<entry>
<key>one</key>
<value>
<complex>
<entry>
<key>conditionFirstPart</key>
<value>
<complex>
<entry>
<key>objectValue</key>
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"9e772048-b43f-42f1-a370-2519dd4f6ad7","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"getValue"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>conditionSecondPart</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"RESET_PASSWORD"</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>operation</key>
<value>
<simple>"EQUALS"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="951bae4f-2e83-4b40-8923-81a1435083de" removed="true"/>
</value>
</entry>
<entry>
<key>logicalOperation</key>
<value>
<simple>null</simple>
</value>
</entry>
</complex>
</value>
</entry>
<entry>
<key>thenActions</key>
<value>
<item id="6a6f7cf8-b71e-4c7c-a2b7-4ed8d3a7c83f" removed="false">
<value>
<complex>
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"d9e58a3b-d3cf-4859-8233-5cf79b136d1a","packageName":"component","className":"Text","type":"TS"}</simple>
</value>
</entry>
<entry>
<key>method</key>
<value>
<simple>"setValue"</simple>
</value>
</entry>
<entry>
<key>value</key>
<value>
<complex>
<entry>
<key>staticValue</key>
<value>
<implRef type="TS">
<className>string</className>
<packageName></packageName>
</implRef>
<simple>"Заявка на сброс пароля пользователя"</simple>
</value>
</entry>
</complex>
</value>
</entry>
</complex>
</value>
</item>
<item id="7534fce5-f3b2-446c-bea5-d092d38693dd" removed="true"/>
<item id="09d5c116-dbac-4817-a43d-a1273df74f31" removed="true"/>
</value>
</entry>
</properties>
</scripts>
<scripts id="737b67e2-295f-4356-a1e1-9419344d8c85"/>
<scripts id="a6ccccd9-354c-4725-9d34-c716cf626048"/>
<scripts id="d38c1af5-2bfe-41cd-ab0f-67040f498127"/>
<scripts id="f203f156-be32-4131-9c86-4d6bac6d5d56">
<enabled>false</enabled>
</scripts>
</children>
</children>
<children id="a68c745b-dad9-4eb3-99fb-34c1554f21c3">

View file

@ -1427,6 +1427,22 @@
<simple>{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"number_app"}</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="ab174c90-1aae-4f41-870e-a968c4afda2e">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"appNumber"</simple>
</value>
</entry>
</properties>
</scripts>
</children>

View file

@ -809,7 +809,6 @@
<componentRootId>ff2fba56-3368-4d18-b0ec-155fcbd21e77</componentRootId>
<name>Form1_load</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -1884,45 +1883,7 @@
<componentRootId>225c9751-7b8f-41bf-8416-6c709fe55706</componentRootId>
<name>Организация_id load_1</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="a6c37a96-2bfd-40f4-bd4a-a97c3443b9c0">
<properties>
<entry>
<key>label</key>
<value>
<simple>"Организация_id load_1"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="82c295cd-372d-4867-87b4-d6e22e3071e7"/>
<scripts id="9304bfac-45fd-43bc-96f6-a2414a59a2d7"/>
<scripts id="9bb9b2a8-7cd9-4926-a4ac-64ff03a32d45"/>
<scripts id="03f9d840-8262-4771-a9e2-9a9fc3504f8b">
<enabled>false</enabled>
</scripts>
<scripts id="3923e193-46bb-43ee-b683-43aad12fa82e">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"domainId"</simple>
</value>
</entry>
</properties>
</scripts>
<removed>true</removed>
</children>
<children id="42c9aada-9554-44c2-a562-2958ec26e4fe">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -2587,7 +2548,7 @@
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"225c9751-7b8f-41bf-8416-6c709fe55706","packageName":"component.field","className":"NumberField","type":"TS"}</simple>
<simple>{"objectId":"eda4d409-0970-4f87-9530-f43bfb60eed5","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
@ -2683,6 +2644,52 @@
</value>
</entry>
</properties>
</scripts>
</children>
<children id="eda4d409-0970-4f87-9530-f43bfb60eed5">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>eda4d409-0970-4f87-9530-f43bfb60eed5</componentRootId>
<name>Организация_id load_1</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>label</key>
<value>
<simple>"Организация_id load_1"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
<scripts id="ef53357a-6f68-4479-9a05-d37cfb44b6ba"/>
<scripts id="2e66508a-de36-4816-b32c-18f8c7c39830"/>
<scripts id="cd632c24-f994-46fd-a0fd-3d113f9c81c1">
<enabled>false</enabled>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="6d00f861-5645-4cff-8902-bc1d7047d6a4">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"domainId"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="d3196840-53cf-41ab-b00c-678cbf9032ad">

View file

@ -820,6 +820,7 @@
<componentRootId>c7b13061-f2de-4bfa-8a57-2d3456f7be02</componentRootId>
<name>Form1_load</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -1676,6 +1677,12 @@
<simple>"Логин не должен начинаться с цифры, содержать спецсимволы, буквы кирилицы и быть не более 50 символов"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
@ -1730,6 +1737,7 @@
<componentRootId>249f8d17-82ef-460c-85b7-8850d06527b1</componentRootId>
<name>person_id load_1</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -4204,6 +4212,7 @@
<componentRootId>10c46c32-d98e-444b-a499-14a36ca1c9dc</componentRootId>
<name>Hbox_Обновляемые данные</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f"/>
<scripts id="b6068710-0f31-48ec-8e03-c0c1480a40c0"/>
@ -4361,6 +4370,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="b779feb0-7e57-4aca-94d8-a94dff2c1e73">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"surname"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="c091bd15-d7c5-451f-9a3e-f29366261c72">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -4442,6 +4467,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="c461c410-2707-4470-ab6c-806d8c6def65">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"firstname"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="bc6dbe19-643d-42cd-9721-3890ddd00827">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -4517,6 +4558,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="0f6c01cb-20bb-414b-80da-803bc5fe2df5">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"middlename"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="996ee76c-cb87-4c42-81f6-be9b219c0203">
<prototypeId>bce312bd-0c82-45e5-89dc-a1af90431c18</prototypeId>
@ -4646,6 +4703,22 @@
</entry>
</properties>
</scripts>
<scripts id="57173ad7-bba3-4668-8441-907f976da2a0">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"sex"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="a740116e-a29d-47f0-b426-07bae6fd203b">
<prototypeId>c6a4e38d-d0b3-46dd-960b-36c7e8beba36</prototypeId>
@ -4704,6 +4777,22 @@
</entry>
</properties>
</scripts>
<scripts id="20d7171d-7cfc-44d7-aeea-fa8a98821d3f">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"birthdate"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="2a64b8c1-6a26-48fa-8117-610c0ead39dd">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -4778,6 +4867,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="2ad5c580-21c8-4c77-9016-0b053b135c10">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"snils"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="d4143e87-0c60-4809-8cf9-703d4edda0ee">
<prototypeId>b310f98a-69c6-4e7b-8cdb-f1ab9f9c0d94</prototypeId>
@ -4863,6 +4968,22 @@
</entry>
</properties>
</scripts>
<scripts id="59ade813-da57-457e-a22c-14e8dcf702d1">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"position"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="c604e7ab-46f8-43c3-8b4b-13b9941af78f">
<prototypeId>d7d54cfb-26b5-4dba-b56f-b6247183c24d</prototypeId>
@ -5110,6 +5231,7 @@
<componentRootId>5d412f6e-dd25-4b82-9286-cac7c8f61d50</componentRootId>
<name>person_id 1</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
@ -5166,6 +5288,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="772acb58-94bb-4706-9d8b-6e3c13d83f34">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"id"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="cb03ef33-3a20-46c9-b358-d9e1b9ca128c">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -5228,6 +5366,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="aae9ef6d-ee91-4759-8cd1-907101f4e8f7">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"accountId"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="d61f7ee0-6a2e-43d2-a698-54cad3be9636">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -5418,6 +5572,7 @@
<componentRootId>ffd31fae-8523-492c-a74c-e0c80edaae24</componentRootId>
<name>Vbox_3</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -7157,6 +7312,7 @@
<componentRootId>9008b7eb-df6f-47de-a2c8-0dee67a1cb47</componentRootId>
<name>Hbox</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -7474,6 +7630,7 @@
<componentRootId>362dd20e-da25-4bf9-938e-9853893530e8</componentRootId>
<name>Отправить 1</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -7515,6 +7672,22 @@
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="805241a2-74f8-41c7-95c5-0e867d32227b">
<classRef type="TS">
<className>UserManagementService</className>
<packageName>account_applications.component.button</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>action</key>
<value>
<simple>"EDIT_PERSON"</simple>
</value>
</entry>
</properties>
@ -7605,7 +7778,6 @@
<componentRootId>63464a3d-b824-4808-9640-e19233c56a80</componentRootId>
<name>Учетные записи</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="d1ce20ca-453b-4610-a2a5-bb6498db5cf5">
<properties>
@ -7626,7 +7798,6 @@
<componentRootId>b790bcc9-4d50-476a-b33c-db7e434bf887</componentRootId>
<name>Form2_load</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -7814,12 +7985,6 @@
</complex>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="72befe90-1915-483f-b88c-d1ec5d4bdc8e"/>
@ -8578,6 +8743,7 @@
<componentRootId>5eb99b5b-a93c-4f78-bca1-5e0c2fe932bc</componentRootId>
<name>Vbox_1</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -8851,6 +9017,7 @@
<componentRootId>0a5d31c1-56d8-4b5a-97e0-a77ca379d64f</componentRootId>
<name>Vbox_2</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -8978,6 +9145,12 @@
</item>
</value>
</entry>
<entry>
<key>disabled</key>
<value>
<simple>true</simple>
</value>
</entry>
<entry>
<key>label</key>
<value>
@ -9033,6 +9206,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="2c59ff89-0248-4dba-9d6b-cd6f8b957c1a">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"username"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="69e7e337-9560-481b-bd82-46a38ddf7f17">
<prototypeId>c6a4e38d-d0b3-46dd-960b-36c7e8beba36</prototypeId>
@ -9234,6 +9423,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="172c90a9-fa83-4d5f-9899-0cd384ecfe84">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"position"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="4f84f937-655c-4510-9dab-09b5c6fefbe0">
<prototypeId>d7d54cfb-26b5-4dba-b56f-b6247183c24d</prototypeId>
@ -9391,6 +9596,22 @@
<simple>{"schema":"public","table":"user_application_list","entity":"user_application_list","name":"recruitment_id"}</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="c9be39a1-63cf-4338-a024-6af76a1cd778">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"userDomain"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
@ -9754,6 +9975,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="7df06f02-9b95-4a05-816f-eef4c4609db5">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"id"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
</children>
<children id="d869cc8e-fe9d-44d3-b6dd-6735f31c449e">
@ -11672,6 +11909,7 @@
<componentRootId>1a11489f-f8d9-492a-97e3-f198bc0d937c</componentRootId>
<name>Отправить 2</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -11713,6 +11951,22 @@
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="6e60ff13-fc4e-4c4d-9300-df9d9582341d">
<classRef type="TS">
<className>UserManagementService</className>
<packageName>account_applications.component.button</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>action</key>
<value>
<simple>"EDIT_ACCOUNT"</simple>
</value>
</entry>
</properties>
@ -11796,7 +12050,6 @@
<componentRootId>e8be3c5d-94ee-491d-aea3-428e473af5cf</componentRootId>
<name>Роли</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="d1ce20ca-453b-4610-a2a5-bb6498db5cf5">
<properties>
@ -13471,6 +13724,22 @@
</properties>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="b29ad3b7-5fa0-45db-abfc-497f631a6972">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"accountId"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="7217a74d-4f51-4048-a0ce-e819c12728db">
<prototypeId>f9a38417-9ad0-412a-9b5f-bbeb450dddd6</prototypeId>
@ -13614,7 +13883,6 @@
<componentRootId>29f2587b-8f1e-49cc-a9b1-41e7f46fb5d9</componentRootId>
<name>Many to many</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -13793,6 +14061,22 @@
</scripts>
<scripts id="e8d7e9c0-afbd-4e9e-a475-00e5ad024d6d"/>
<scripts id="39608513-f2fe-47d8-83ae-f4e34ee43cdb"/>
<scripts id="536e6104-4b0f-4c6b-a352-b634c2bc2daf">
<classRef type="TS">
<className>FormField</className>
<packageName>account_applications.component.field</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>name</key>
<value>
<simple>"roles"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="b4b98ca4-43e6-4fb2-8ec1-bafff68377d1">
<prototypeId>dc7d3857-3c89-4245-b2d7-9b16504531ea</prototypeId>
@ -14534,6 +14818,12 @@
</complex>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="b6068710-0f31-48ec-8e03-c0c1480a40c0"/>
@ -15325,6 +15615,7 @@
<componentRootId>6cc167f5-45f0-4625-b6df-2daea33aaafe</componentRootId>
<name>Hbox</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -15642,6 +15933,7 @@
<componentRootId>6f9c9421-2b73-4141-a15e-a169d8ed9203</componentRootId>
<name>Отправить 3</name>
<container>false</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>
@ -15683,6 +15975,22 @@
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="3f42611b-3bd0-49ed-81e1-21e28235a8e1">
<classRef type="TS">
<className>UserManagementService</className>
<packageName>account_applications.component.button</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>action</key>
<value>
<simple>"EDIT_ROLES"</simple>
</value>
</entry>
</properties>

View file

@ -1877,45 +1877,7 @@
<componentRootId>81745f70-b8a4-4636-b443-2cd71dfd0c68</componentRootId>
<name>Организация_id load_1</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="a6c37a96-2bfd-40f4-bd4a-a97c3443b9c0">
<properties>
<entry>
<key>label</key>
<value>
<simple>"Организация_id load_1"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="82c295cd-372d-4867-87b4-d6e22e3071e7"/>
<scripts id="9304bfac-45fd-43bc-96f6-a2414a59a2d7"/>
<scripts id="9bb9b2a8-7cd9-4926-a4ac-64ff03a32d45"/>
<scripts id="03f9d840-8262-4771-a9e2-9a9fc3504f8b">
<enabled>false</enabled>
</scripts>
<scripts id="3923e193-46bb-43ee-b683-43aad12fa82e">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"domainId"</simple>
</value>
</entry>
</properties>
</scripts>
<removed>true</removed>
</children>
<children id="e5666264-105e-4c54-85d4-c2a0c6d1a102">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
@ -2580,7 +2542,7 @@
<entry>
<key>behavior</key>
<value>
<simple>{"objectId":"81745f70-b8a4-4636-b443-2cd71dfd0c68","packageName":"component.field","className":"NumberField","type":"TS"}</simple>
<simple>{"objectId":"121d29ff-d70e-4c68-ab12-5bb0ff393364","packageName":"component.field","className":"TextField","type":"TS"}</simple>
</value>
</entry>
<entry>
@ -2676,6 +2638,52 @@
</value>
</entry>
</properties>
</scripts>
</children>
<children id="121d29ff-d70e-4c68-ab12-5bb0ff393364">
<prototypeId>133ca212-09a6-413a-ac66-e2f6ce188f1f</prototypeId>
<componentRootId>121d29ff-d70e-4c68-ab12-5bb0ff393364</componentRootId>
<name>Организация_id load_1</name>
<container>false</container>
<childrenReordered>false</childrenReordered>
<scripts id="cf4526a1-96ab-4820-8aa9-62fb54c2b64c">
<properties>
<entry>
<key>label</key>
<value>
<simple>"Организация_id load_1"</simple>
</value>
</entry>
<entry>
<key>visible</key>
<value>
<simple>false</simple>
</value>
</entry>
</properties>
</scripts>
<scripts id="5ba072f6-3017-4f32-9a6a-1ca5e690e1dd"/>
<scripts id="ef53357a-6f68-4479-9a05-d37cfb44b6ba"/>
<scripts id="2e66508a-de36-4816-b32c-18f8c7c39830"/>
<scripts id="cd632c24-f994-46fd-a0fd-3d113f9c81c1">
<enabled>false</enabled>
</scripts>
<scripts id="d9ac3145-9d66-42bd-9f24-1c3d0d2e31d0"/>
<scripts id="6d00f861-5645-4cff-8902-bc1d7047d6a4">
<classRef type="JAVA">
<className>ErvuFormLoadComponent</className>
<packageName>ru.micord.ervu.account_applications.component.field.persist</packageName>
</classRef>
<enabled>true</enabled>
<expanded>true</expanded>
<properties>
<entry>
<key>fieldName</key>
<value>
<simple>"domainId"</simple>
</value>
</entry>
</properties>
</scripts>
</children>
<children id="1d5de58e-f454-4c3e-88ce-9c5db0988fd2">
@ -6814,7 +6822,6 @@
<componentRootId>a20bed37-7b67-4df8-95f7-e0a84815b741</componentRootId>
<name>Hbox</name>
<container>true</container>
<expanded>false</expanded>
<childrenReordered>false</childrenReordered>
<scripts id="bf098f19-480e-44e4-9084-aa42955c4d0f">
<properties>