MRBS 1.12.2 等保2.0二级整改完整提交
Docker image / push (push) Canceled after 0s

包含:登录失败锁定、90天密码有效期、30分钟会话超时、
强制改密、登录审计日志、屏幕水印、企业背景图、
备案信息固定底部、favicon、登录页JS修复等全部改动
This commit is contained in:
人事系统开发
2026-09-08 21:19:47 +08:00
commit 48092cab42
2221 changed files with 659586 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
<?php
namespace MRBS;
use IntlDateFormatter;
use IntlDatePatternGenerator;
function write_line($fp, string $key, string $value) : void
{
$keywords = ['no', 'yes', 'true', 'false', 'on', 'off', 'null', 'none'];
if (in_arrayi($key, $keywords))
{
// If it's a keyword we put a space before the key because it is a keyword and otherwise
// parse_ini_file() will fail. The space is trimmed when it is parsed.
// See https://stackoverflow.com/questions/6142980/using-a-keyword-as-variable-name-in-an-ini-file
$key = " $key";
$comment = "; The following line has a space before the key because it is a keyword\n";
fwrite($fp, $comment);
}
fwrite($fp, "$key = \"$value\"\n");
}
if (!extension_loaded('intl'))
{
die("The 'intl' extension needs to be loaded.");
}
require "defaultincludes.inc";
$dir = 'tmp';
$locales = \ResourceBundle::getLocales('');
echo "<h2>Skeleton files</h2>\n";
$skeletons = array(
'd',
'dEMMM',
'dMMM',
'dMMMM',
'MMMMy'
);
foreach ($skeletons as $skeleton) {
$filename = "$dir/skeletons/$skeleton.ini";
echo "Generating $filename ...";
$fp = fopen($filename, 'w');
foreach ($locales as $locale)
{
$locale = Language::convertToBcp47($locale);
$pattern_generator = new IntlDatePatternGenerator($locale);
$pattern = $pattern_generator->getBestPattern($skeleton);
write_line($fp, $locale, $pattern);
// Fix up for some locales
if (($locale == 'zh-Hans-CN') && !in_array('zh-CN', $locales)) {
write_line($fp, 'zh-CN', $pattern);
}
if (($locale == 'zh-Hant-TW') && !in_array('zh-TW', $locales)) {
write_line($fp, 'zh-TW', $pattern);
}
}
fclose($fp);
echo " done<br>\n";
}
echo "<h2>Type files</h2>\n";
$types = array(
'full' => IntlDateFormatter::FULL,
'long' => IntlDateFormatter::LONG,
'medium' => IntlDateFormatter::MEDIUM,
'short' => IntlDateFormatter::SHORT,
'none' => IntlDateFormatter::NONE
);
foreach ($types as $date_key => $date_value)
{
foreach ($types as $time_key => $time_value)
{
if (($date_value === IntlDateFormatter::NONE) && ($time_value === IntlDateFormatter::NONE))
{
continue;
}
$filename = "$dir/types/{$date_key}_{$time_key}.ini";
echo "Generating $filename ...";
$fp = fopen($filename, 'w');
foreach ($locales as $locale) {
$locale = Language::convertToBcp47($locale);
$formatter = new IntlDateFormatter($locale, $date_value, $time_value);
$pattern = $formatter->getPattern();
write_line($fp, $locale, $pattern);
// Fix up for some locales
if (($locale == 'zh-Hans-CN') && !in_array('zh-CN', $locales)) {
write_line($fp, 'zh-CN', $pattern);
}
if (($locale == 'zh-Hant-TW') && !in_array('zh-TW', $locales)) {
write_line($fp, 'zh-TW', $pattern);
}
}
fclose($fp);
echo " done<br>\n";
}
}