SUPPORT-9601: fixes
This commit is contained in:
parent
8e4eb2a152
commit
6b47376d19
4 changed files with 93 additions and 7 deletions
|
|
@ -36,8 +36,8 @@
|
||||||
<div class="block block-ul">
|
<div class="block block-ul">
|
||||||
<div class="block-img"></div>
|
<div class="block-img"></div>
|
||||||
<div class="block-title">Для организаций</div>
|
<div class="block-title">Для организаций</div>
|
||||||
<!-- <div class="block-description">Направление сведений через <a id="ul-lk" href="<!–#echo var="ulUrl"–>">Личный кабинет</a><br /><br /></div>-->
|
<div class="block-description">Направление сведений через <a id="ul-lk" href="<!--#echo var="ulUrl"-->">Личный кабинет</a><br /><br /></div>
|
||||||
<a href="ul/home.html" class="btn">Подробнее</a>
|
<a href="<!--#echo var="ulLandingUrl"-->" class="btn">Подробнее</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
86
html/script/access-check.js
Normal file
86
html/script/access-check.js
Normal file
|
|
@ -0,0 +1,86 @@
|
||||||
|
function checkBrowser() {
|
||||||
|
const userAgent = navigator.userAgent;
|
||||||
|
return userAgent.includes("Chromium GOST") || userAgent.includes("YaBrowser");
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkCsp(cspTimeout) {
|
||||||
|
let timeoutMillis;
|
||||||
|
if (cspTimeout) {
|
||||||
|
timeoutMillis = cspTimeout * 1000;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
timeoutMillis = 5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const timeout = setTimeout(() => {
|
||||||
|
reject(new Error('Истекло время ожидания загрузки плагина'));
|
||||||
|
}, timeoutMillis);
|
||||||
|
window.cadesplugin
|
||||||
|
.then(() => {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
if (window.cadesplugin.CreateObjectAsync) {
|
||||||
|
return window.cadesplugin.CreateObjectAsync("CAdESCOM.About");
|
||||||
|
} else {
|
||||||
|
return Promise.resolve(window.cadesplugin.CreateObject("CAdESCOM.About"));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.then((oAbout) => {
|
||||||
|
if (!oAbout || !oAbout.CSPVersion) {
|
||||||
|
throw new Error('Не удалось создать объект CAdESCOM.About');
|
||||||
|
}
|
||||||
|
return oAbout.CSPVersion();
|
||||||
|
})
|
||||||
|
.then((cspVersion) => {
|
||||||
|
return Promise.all([
|
||||||
|
cspVersion.MajorVersion,
|
||||||
|
cspVersion.MinorVersion,
|
||||||
|
cspVersion.BuildVersion
|
||||||
|
]);
|
||||||
|
})
|
||||||
|
.then(([majorVersion, minorVersion, buildVersion]) => {
|
||||||
|
if (majorVersion === 5 && minorVersion === 0 && buildVersion >= 12000) {
|
||||||
|
resolve(true);
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
`Версия CSP не подходит. Необходима версия 5.0.12000 и выше, текущая версия: ${majorVersion}.${minorVersion}.${buildVersion}`
|
||||||
|
);
|
||||||
|
resolve(false);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("Ошибка при получении версии CSP:", error);
|
||||||
|
clearTimeout(timeout);
|
||||||
|
resolve(false);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
console.error("Ошибка при проверке CSP:", error);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const browserCheckInfo = document.getElementById('browser-check-info');
|
||||||
|
const loginButton = document.getElementById('login-button');
|
||||||
|
|
||||||
|
const browserPassed = checkBrowser();
|
||||||
|
|
||||||
|
if (browserPassed) {
|
||||||
|
checkCsp(5).then(cspCheckPassed => {
|
||||||
|
if (cspCheckPassed) {
|
||||||
|
if (browserCheckInfo) {
|
||||||
|
browserCheckInfo.hidden = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (loginButton) {
|
||||||
|
loginButton.classList.add('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (loginButton) {
|
||||||
|
loginButton.classList.add('disabled');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
@ -7,8 +7,8 @@
|
||||||
<meta http-equiv="Content-Security-Policy"
|
<meta http-equiv="Content-Security-Policy"
|
||||||
content="default-src 'self'; script-src 'self'; style-src 'unsafe-inline' 'self' data:; font-src 'self' data:; img-src 'self' data:"/>
|
content="default-src 'self'; script-src 'self'; style-src 'unsafe-inline' 'self' data:; font-src 'self' data:; img-src 'self' data:"/>
|
||||||
<meta name="referrer" content="strict-origin-when-cross-origin"/>
|
<meta name="referrer" content="strict-origin-when-cross-origin"/>
|
||||||
<script src="../script/browser-check.js"></script>
|
<script src="../script/cadesplugin_api.js"></script>
|
||||||
<script src="../script/check-csp.js"></script>
|
<script src="../script/access-check.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body class="ul">
|
<body class="ul">
|
||||||
|
|
||||||
|
|
@ -22,10 +22,10 @@
|
||||||
<div class="browser-check-content">
|
<div class="browser-check-content">
|
||||||
<div class="browser-check-text">
|
<div class="browser-check-text">
|
||||||
<p class="plain-text text-header">
|
<p class="plain-text text-header">
|
||||||
Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или Chromium gost.
|
Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или Chromium GOST, а также необходимо наличие установленного приложения КриптоПро версии CSP 5.0 R3 и выше с расширением КриптоПро ЭЦП Browser plug-in
|
||||||
</p>
|
</p>
|
||||||
<p class="plain-text">
|
<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>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a id="login-button" href="." class="btn">Войти в Личный кабинет</a>
|
<a id="login-button" href="<!--#echo var="ulUrl"-->" class="btn">Войти в Личный кабинет</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue