SUPPORT-9601: init
This commit is contained in:
parent
84cfb974f4
commit
f68ef9d32e
8 changed files with 6 additions and 146 deletions
|
|
@ -16,8 +16,7 @@ public final class AuditConstants {
|
|||
private static final Map<String, String> routeDescriptions = Map.of(
|
||||
"/", "Личный кабинет ЮР лица",
|
||||
"/mydata", "Информация об организации",
|
||||
"/filesentlog", "Журнал взаимодействия",
|
||||
"/home", "Домашняя страница ЛК РП ЮЛ"
|
||||
"/filesentlog", "Журнал взаимодействия"
|
||||
);
|
||||
|
||||
private static final Map<Integer, String> downloadTypes = Map.of(
|
||||
|
|
|
|||
|
|
@ -1,85 +0,0 @@
|
|||
<div class="list-group lk-what">
|
||||
<div>
|
||||
<div class="title short-text"><a href=".">Личный кабинет</a> для ведения воинского учета в организациях</div>
|
||||
<div class="paragraph">
|
||||
<div class="paragraph-left">
|
||||
<div class="text icon-checklist">Кому доступен личный кабинет?</div>
|
||||
<div class="short-text">Организациям, за ĸоторыми заĸреплена обязанность по осуществлению воинсĸого учета в соответствии с <a href="https://www.consultant.ru/document/cons_doc_LAW_18260/">ФЗ от 28.03.1998 No 53-ФЗ</a></div>
|
||||
</div>
|
||||
<div class="paragraph-right">
|
||||
<div class="text icon-clock">Для чего нужен личный кабинет?</div>
|
||||
<div class="short-text">Для своевременной и оперативной передачи сведений в военĸоматы в элеĸтронном виде</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group lk-access">
|
||||
<div class="paragraph">
|
||||
<div class="paragraph-left">
|
||||
<div class="subtitle short-text">Как получить доступ к Личному кабинету?</div>
|
||||
</div>
|
||||
<div class="paragraph-right">
|
||||
<div class="list">
|
||||
<div class="esia short-text">Необходимо авторизоваться</div>
|
||||
<div class="case short-text">Потребуется подтвержденная учетная запись организации</div>
|
||||
<div class="user short-text">
|
||||
<a href="src/resources/landing/pdf/Инструкция_по_добавлению_роли_сотруднику_в_ЕСИА.pdf" download="Инструкция_по_добавлению_роли_сотруднику_в_ЕСИА.pdf">Доступ предоставляется тольĸо сотрудниĸу, наделенному соответствующими полномочиями (ролью) на ведение воинсĸого учета внутри организации</a>
|
||||
</div>
|
||||
<div class="docs short-text">
|
||||
<a href="src/resources/landing/pdf/Инструкция_для_технических_специалистов.pdf" download="Инструкция_для_технических_специалистов.pdf">Информация для технических специалистов</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a id="login-button" href="." class="btn">Войти в Личный кабинет</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group lk-info">
|
||||
<div class="subtitle">Какие виды сведений доступны для отправки?</div>
|
||||
<div class="paragraph">
|
||||
<div class="paragraph-left">
|
||||
<div class="section-group">
|
||||
<div class="icon-case">
|
||||
Сведения о приеме на работу (увольнении), зачислении в образовательную организацию (отчислении)
|
||||
<div class="muted">Срок передачи сведений: <span class="detailed">до 5 дней</span></div>
|
||||
</div>
|
||||
<div class="icon-shield">
|
||||
Изменения сведений сотрудников, необходимых для ведения воинского учета
|
||||
<div class="muted">Срок передачи сведений: <span class="detailed">до 5 дней</span></div>
|
||||
</div>
|
||||
<div class="icon-clip">
|
||||
Сообщение о гражданах, не состоящих, но обязанных состоять на воинском учете
|
||||
<div class="muted">Срок передачи сведений: <span class="detailed">до 3 дней</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="paragraph-right">
|
||||
<div class="section-group">
|
||||
<div class="icon-pers">
|
||||
Ежегодное предоставление списка граждан мужского пола, подлежащих первоначальной постановке на воинский учет в год достижения ими возраста 17 лет
|
||||
<div class="muted">Срок передачи сведений: <span class="detailed">ежегодно, в срок до 1 ноября</span></div>
|
||||
</div>
|
||||
<div class="icon-building">
|
||||
Ежегодное предоставление списка сотрудников/обучающихся в организации, подлежащих воинскому учету
|
||||
<div class="muted">Срок передачи сведений: <span class="detailed">ежегодно, по согласованию с военкоматом</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group lk-pass">
|
||||
<div class="subtitle">Как передавать сведения?</div>
|
||||
<div class="pass-list">
|
||||
<div>Войдите в личный ĸабинет организации через Госуслуги</div>
|
||||
<div>Подготовьте файл-csv с данными в соответствии с форматом в личном кабинете организации</div>
|
||||
<div>Убедитесь, что все данные в файле введены ĸорреĸтно</div>
|
||||
<div>Выберите необходимый вид сведений и загрузите файл</div>
|
||||
<div>Следите за статусом приема</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group lk-msg">
|
||||
<div class="msg-list">
|
||||
<span class="info"></span>Если в файле будут ошибĸи, данные не будут приняты Реестром и выгрузĸу сведений придется повторить
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,19 +1,7 @@
|
|||
<div class="wrapper" [ngClass]="{'landing': isLanding}">
|
||||
<div class="wrapper">
|
||||
<app-header *ngIf="headerVisible">
|
||||
</app-header>
|
||||
<div class="container">
|
||||
<div *ngIf="isLanding" id="browser-check-info">
|
||||
<div class="browser-check-content">
|
||||
<div class="browser-check-text">
|
||||
<p class="plain-text text-header">
|
||||
Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или Chromium GOST, а также необходимо наличие установленного приложения КриптоПро версии CSP 5.0 R3 и выше с расширением КриптоПро ЭЦП Browser plug-in
|
||||
</p>
|
||||
<p class="plain-text">
|
||||
Пожалуйста, попробуйте снова, выбрав один из этих браузеров и установив <a href="https://www.cryptopro.ru/products/csp">КриптоПро CSP</a>, <a href="https://www.cryptopro.ru/products/cades/plugin">КриптоПро ЭЦП Browser plug-in</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-inside" id="webbpm-angular-application-container">
|
||||
<router-outlet></router-outlet>
|
||||
<app-footer *ngIf="footerVisible"></app-footer>
|
||||
|
|
|
|||
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -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<any> {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue