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-img"></div>
|
||||
<div class="block-title">Для организаций</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>
|
||||
<div class="block-description">Направление сведений через <a id="ul-lk" href="<!--#echo var="ulUrl"-->">Личный кабинет</a><br /><br /></div>
|
||||
<a href="<!--#echo var="ulLandingUrl"-->" class="btn">Подробнее</a>
|
||||
</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"
|
||||
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"/>
|
||||
<script src="../script/browser-check.js"></script>
|
||||
<script src="../script/check-csp.js"></script>
|
||||
<script src="../script/cadesplugin_api.js"></script>
|
||||
<script src="../script/access-check.js"></script>
|
||||
</head>
|
||||
<body class="ul">
|
||||
|
||||
|
|
@ -22,10 +22,10 @@
|
|||
<div class="browser-check-content">
|
||||
<div class="browser-check-text">
|
||||
<p class="plain-text text-header">
|
||||
Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или Chromium gost.
|
||||
Доступ к личному кабинету для юридических лиц осуществляется исключительно через браузеры Яндекс или 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>
|
||||
|
|
@ -63,7 +63,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<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>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue