SUPPORT-9601: fixes

This commit is contained in:
adel.ka 2025-11-24 12:32:49 +03:00
parent 8e4eb2a152
commit 6b47376d19
4 changed files with 93 additions and 7 deletions

View file

@ -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="&lt;!&ndash;#echo var="ulUrl"&ndash;&gt;">Личный кабинет</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>

View 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');
}
}
});

View file

@ -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>