From f68ef9d32e61ee1716cdd19751e2807649a48ecb Mon Sep 17 00:00:00 2001 From: "adel.ka" Date: Mon, 24 Nov 2025 14:08:38 +0300 Subject: [PATCH 1/7] SUPPORT-9601: init --- .../ervu/audit/constants/AuditConstants.java | 3 +- .../template/app/component/home_landing.html | 85 ------------------- .../src/resources/template/webbpm/webbpm.html | 14 +-- .../src/ts/modules/app/app-routing.module.ts | 8 -- frontend/src/ts/modules/app/app.module.ts | 2 - .../app/component/home-landing.component.ts | 31 ------- .../ts/modules/security/guard/auth.guard.ts | 7 +- .../webbpm/component/webbpm.component.ts | 2 - 8 files changed, 6 insertions(+), 146 deletions(-) delete mode 100644 frontend/src/resources/template/app/component/home_landing.html delete mode 100644 frontend/src/ts/modules/app/component/home-landing.component.ts diff --git a/backend/src/main/java/ru/micord/ervu/audit/constants/AuditConstants.java b/backend/src/main/java/ru/micord/ervu/audit/constants/AuditConstants.java index b4559353..e8e8fc3b 100644 --- a/backend/src/main/java/ru/micord/ervu/audit/constants/AuditConstants.java +++ b/backend/src/main/java/ru/micord/ervu/audit/constants/AuditConstants.java @@ -16,8 +16,7 @@ public final class AuditConstants { private static final Map routeDescriptions = Map.of( "/", "Личный кабинет ЮР лица", "/mydata", "Информация об организации", - "/filesentlog", "Журнал взаимодействия", - "/home", "Домашняя страница ЛК РП ЮЛ" + "/filesentlog", "Журнал взаимодействия" ); private static final Map downloadTypes = Map.of( diff --git a/frontend/src/resources/template/app/component/home_landing.html b/frontend/src/resources/template/app/component/home_landing.html deleted file mode 100644 index e3852ab5..00000000 --- a/frontend/src/resources/template/app/component/home_landing.html +++ /dev/null @@ -1,85 +0,0 @@ -
-
-
Личный кабинет для ведения воинского учета в организациях
-
-
-
Кому доступен личный кабинет?
-
Организациям, за ĸоторыми заĸреплена обязанность по осуществлению воинсĸого учета в соответствии с ФЗ от 28.03.1998 No 53-ФЗ
-
-
-
Для чего нужен личный кабинет?
-
Для своевременной и оперативной передачи сведений в военĸоматы в элеĸтронном виде
-
-
-
-
-
-
-
-
Как получить доступ к Личному кабинету?
-
- -
-
-
-
Какие виды сведений доступны для отправки?
-
-
-
-
- Сведения о приеме на работу (увольнении), зачислении в образовательную организацию (отчислении) -
Срок передачи сведений: до 5 дней
-
-
- Изменения сведений сотрудников, необходимых для ведения воинского учета -
Срок передачи сведений: до 5 дней
-
-
- Сообщение о гражданах, не состоящих, но обязанных состоять на воинском учете -
Срок передачи сведений: до 3 дней
-
-
-
-
-
-
- Ежегодное предоставление списка граждан мужского пола, подлежащих первоначальной постановке на воинский учет в год достижения ими возраста 17 лет -
Срок передачи сведений: ежегодно, в срок до 1 ноября
-
-
- Ежегодное предоставление списка сотрудников/обучающихся в организации, подлежащих воинскому учету -
Срок передачи сведений: ежегодно, по согласованию с военкоматом
-
-
-
-
-
-
-
Как передавать сведения?
-
-
Войдите в личный ĸабинет организации через Госуслуги
-
Подготовьте файл-csv с данными в соответствии с форматом в личном кабинете организации
-
Убедитесь, что все данные в файле введены ĸорреĸтно
-
Выберите необходимый вид сведений и загрузите файл
-
Следите за статусом приема
-
-
-
-
- Если в файле будут ошибĸи, данные не будут приняты Реестром и выгрузĸу сведений придется повторить -
-
\ No newline at end of file diff --git a/frontend/src/resources/template/webbpm/webbpm.html b/frontend/src/resources/template/webbpm/webbpm.html index bf4aca90..3e20ccce 100644 --- a/frontend/src/resources/template/webbpm/webbpm.html +++ b/frontend/src/resources/template/webbpm/webbpm.html @@ -1,19 +1,7 @@ -
+
-
-
-
-

- Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или Chromium GOST, а также необходимо наличие установленного приложения КриптоПро версии CSP 5.0 R3 и выше с расширением КриптоПро ЭЦП Browser plug-in -

-

- Пожалуйста, попробуйте снова, выбрав один из этих браузеров и установив КриптоПро CSP, КриптоПро ЭЦП Browser plug-in. -

-
-
-
diff --git a/frontend/src/ts/modules/app/app-routing.module.ts b/frontend/src/ts/modules/app/app-routing.module.ts index 24f5ee74..e83f6c6b 100644 --- a/frontend/src/ts/modules/app/app-routing.module.ts +++ b/frontend/src/ts/modules/app/app-routing.module.ts @@ -3,7 +3,6 @@ import {RouterModule, Routes} from "@angular/router"; import {AccessDeniedComponent} from "./component/access-denied.component"; import {AuthGuard} from "../security/guard/auth.guard"; import {ConfirmExitGuard} from "@webbpm/base-package"; -import {HomeLandingComponent} from "./component/home-landing.component"; const appRoutes: Routes = [ { @@ -21,13 +20,6 @@ const appRoutes: Routes = [ loadChildren: 'generated-sources/page-filesentlog.module#PagefilesentlogModule', canActivate: [AuthGuard], }, - { - path: 'home', - component: HomeLandingComponent, - canActivate: [ConfirmExitGuard], - }, - - ]; @NgModule({ diff --git a/frontend/src/ts/modules/app/app.module.ts b/frontend/src/ts/modules/app/app.module.ts index 517811de..00f1ad4d 100644 --- a/frontend/src/ts/modules/app/app.module.ts +++ b/frontend/src/ts/modules/app/app.module.ts @@ -25,7 +25,6 @@ import {ErvuFileUpload} from "../../ervu/component/fileupload/ErvuFileUpload"; import {InMemoryStaticGrid} from "../../ervu/component/grid/InMemoryStaticGrid"; import {ErvuDownloadFileButton} from "../../ervu/component/button/ErvuDownloadFileButton"; import {AuthenticationService} from "../security/authentication.service"; -import {HomeLandingComponent} from "./component/home-landing.component"; import {AuditService} from "../../ervu/service/AuditService"; import { ErvuFileUploadWithAdditionalFiles @@ -43,7 +42,6 @@ export const DIRECTIVES = [ forwardRef(() => ErvuFileUploadWithAdditionalFiles), forwardRef(() => ErvuDownloadFileButton), forwardRef(() => InMemoryStaticGrid), - forwardRef(() => HomeLandingComponent), ]; export function checkAuthentication(authService: AuthenticationService): () => Promise { diff --git a/frontend/src/ts/modules/app/component/home-landing.component.ts b/frontend/src/ts/modules/app/component/home-landing.component.ts deleted file mode 100644 index 0346b38a..00000000 --- a/frontend/src/ts/modules/app/component/home-landing.component.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {ChangeDetectorRef, Component, OnInit} from "@angular/core"; -import {CadesHelper} from "@webbpm/base-package"; -import {AccessChecker} from "../../security/AccessChecker"; -import {AppConfigService} from "@webbpm/base-package"; - -@Component({ - moduleId: module.id, - selector: "home-landing", - templateUrl: "../../../../../src/resources/template/app/component/home_landing.html", - }) -export class HomeLandingComponent implements OnInit { - private cspTimeout: number; - - constructor(private cd: ChangeDetectorRef, - private appConfigService: AppConfigService) { - this.cspTimeout = this.appConfigService.getParamValue("csp_load_timeout"); - } - - ngOnInit(): void { - AccessChecker.checkCsp(this.cspTimeout) - .then((cspCheckPassed) => { - if (AccessChecker.checkBrowser() && cspCheckPassed) { - document.getElementById("browser-check-info").hidden = true; - } - else { - document.getElementById("login-button").classList.add('disabled'); - } - }); - this.cd.markForCheck(); - } -} diff --git a/frontend/src/ts/modules/security/guard/auth.guard.ts b/frontend/src/ts/modules/security/guard/auth.guard.ts index 4bfe8495..b597fec0 100644 --- a/frontend/src/ts/modules/security/guard/auth.guard.ts +++ b/frontend/src/ts/modules/security/guard/auth.guard.ts @@ -10,6 +10,7 @@ import {AccessChecker} from "../AccessChecker"; @Injectable({providedIn: 'root'}) export abstract class AuthGuard implements CanActivate { private cspTimeout: number; + private readonly UL_LANDING_PAGE_URL = '/lkrp/ul/home.html' protected constructor( protected router: Router, @@ -27,15 +28,15 @@ export abstract class AuthGuard implements CanActivate { let url = new URL(window.location.href); if (!AccessChecker.checkBrowser()) { this.progressIndicationService.hideProgressBar(); - this.router.navigateByUrl('/home'); + window.open(url.origin + this.UL_LANDING_PAGE_URL, "_self"); return false; } return AccessChecker.checkCsp(this.cspTimeout) .then((cspCheckPassed) => { if (!cspCheckPassed) { - this.router.navigateByUrl('/home'); - return Promise.reject("Navigation on /home") + window.open(url.origin + this.UL_LANDING_PAGE_URL, "_self"); + return Promise.reject("CSP check failed - redirecting to home") } return Promise.resolve(this.checkAccess()); }).then((isAccess) => { diff --git a/frontend/src/ts/modules/webbpm/component/webbpm.component.ts b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts index b50af4f0..c2d24fe1 100644 --- a/frontend/src/ts/modules/webbpm/component/webbpm.component.ts +++ b/frontend/src/ts/modules/webbpm/component/webbpm.component.ts @@ -18,7 +18,6 @@ import {AuditConstants, AuditService} from "../../../ervu/service/AuditService"; export class WebbpmComponent { public headerVisible: boolean = true; public footerVisible: boolean = true; - public isLanding: boolean = false; constructor(private router: Router, private progressIndicationService: ProgressIndicationService, @@ -27,7 +26,6 @@ export class WebbpmComponent { router.events.subscribe((event: Event) => { if (event instanceof NavigationStart) { progressIndicationService.showProgressBar(); - this.isLanding = event.url == '/home'; this.cd.markForCheck(); } else if (event instanceof NavigationEnd From d249cdc3dda83725bdb9f2ab5174548ab11a2f80 Mon Sep 17 00:00:00 2001 From: "adel.ka" Date: Tue, 25 Nov 2025 11:31:59 +0300 Subject: [PATCH 2/7] SUPPORT-9601: fix --- frontend/src/ts/modules/security/guard/auth.guard.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/frontend/src/ts/modules/security/guard/auth.guard.ts b/frontend/src/ts/modules/security/guard/auth.guard.ts index b597fec0..03b424f5 100644 --- a/frontend/src/ts/modules/security/guard/auth.guard.ts +++ b/frontend/src/ts/modules/security/guard/auth.guard.ts @@ -10,7 +10,7 @@ import {AccessChecker} from "../AccessChecker"; @Injectable({providedIn: 'root'}) export abstract class AuthGuard implements CanActivate { private cspTimeout: number; - private readonly UL_LANDING_PAGE_URL = '/lkrp/ul/home.html' + private landingUlUrl: string; protected constructor( protected router: Router, @@ -21,6 +21,7 @@ export abstract class AuthGuard implements CanActivate { private progressIndicationService: ProgressIndicationService ) { this.cspTimeout = this.appConfigService.getParamValue("csp_load_timeout"); + this.landingUlUrl = this.appConfigService.getParamValue("landing_ul_url"); } public canActivate(route: ActivatedRouteSnapshot, @@ -28,14 +29,14 @@ export abstract class AuthGuard implements CanActivate { let url = new URL(window.location.href); if (!AccessChecker.checkBrowser()) { this.progressIndicationService.hideProgressBar(); - window.open(url.origin + this.UL_LANDING_PAGE_URL, "_self"); + window.open(url.origin + this.landingUlUrl, "_self"); return false; } return AccessChecker.checkCsp(this.cspTimeout) .then((cspCheckPassed) => { if (!cspCheckPassed) { - window.open(url.origin + this.UL_LANDING_PAGE_URL, "_self"); + window.open(url.origin + this.landingUlUrl, "_self"); return Promise.reject("CSP check failed - redirecting to home") } return Promise.resolve(this.checkAccess()); From a5df472819d92b84f1a08c5b96c90ea81b6b13db Mon Sep 17 00:00:00 2001 From: "adel.ka" Date: Tue, 25 Nov 2025 11:40:59 +0300 Subject: [PATCH 3/7] SUPPORT-9601: fix --- frontend/src/ts/modules/security/guard/auth.guard.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/modules/security/guard/auth.guard.ts b/frontend/src/ts/modules/security/guard/auth.guard.ts index 03b424f5..58caaaf5 100644 --- a/frontend/src/ts/modules/security/guard/auth.guard.ts +++ b/frontend/src/ts/modules/security/guard/auth.guard.ts @@ -37,7 +37,7 @@ export abstract class AuthGuard implements CanActivate { .then((cspCheckPassed) => { if (!cspCheckPassed) { window.open(url.origin + this.landingUlUrl, "_self"); - return Promise.reject("CSP check failed - redirecting to home") + return Promise.reject("CSP check failed - redirecting to landing") } return Promise.resolve(this.checkAccess()); }).then((isAccess) => { From 0cb238f91a6d9e361cf416a29df6b3ecd25b531f Mon Sep 17 00:00:00 2001 From: "adel.ka" Date: Tue, 25 Nov 2025 12:32:33 +0300 Subject: [PATCH 4/7] SUPPORT-9601: remove landing from app_header --- .../template/app/component/app_header.html | 10 +++------- .../modules/app/component/app-header.component.ts | 14 +++----------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/frontend/src/resources/template/app/component/app_header.html b/frontend/src/resources/template/app/component/app_header.html index 6e7d284c..b796a66f 100644 --- a/frontend/src/resources/template/app/component/app_header.html +++ b/frontend/src/resources/template/app/component/app_header.html @@ -1,14 +1,10 @@ -