MRBS 1.12.2 等保2.0二级整改完整提交

包含:登录失败锁定、90天密码有效期、30分钟会话超时、
强制改密、登录审计日志、屏幕水印、企业背景图、
备案信息固定底部、favicon、JS空集合保护、
会话过期体验优化(403 JSON)、display_errors 关闭、
固定 key 根治 Integrity check failed 等全部改动

注意:config.inc.php/.htaccess/.user.ini 含敏感信息,
通过 .gitignore 排除,勿推送到公开仓库。
This commit is contained in:
人事系统开发
2026-09-09 16:55:02 +08:00
commit 1ba6efd8ed
2151 changed files with 528780 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace MRBS;
// Convert MONTHLY_SAMEDAY repeats into MONTHLY repeats with a specified month_relative (eg '2TU')
require_once 'standard_vars.inc.php'; // to ensure the timezone is set
// Get all the monthly sameday repeats.
$sql = "SELECT T.id, T.start_time, A.timezone
FROM " . _tbl('repeat') . " T, " . _tbl('area') . " A, " . _tbl('room') . " M
WHERE T.rep_type=5
AND T.room_id=M.id
AND M.area_id=A.id";
$res = $upgrade_handle->query($sql);
// Save the current default timezone so that we can restore it at the end
$old_tz = mrbs_default_timezone_get();
$mods = array();
while (false !== ($row = $res->next_row_keyed()))
{
// We need to make sure that we have the correct timezone set when we work out
// the day of the month that this series repeats on
if (!empty($row['timezone']))
{
mrbs_default_timezone_set($row['timezone']);
}
$mods[$row['id']] = date_byday($row['start_time']);
}
foreach ($mods as $id => $month_relative)
{
$sql = "UPDATE " . _tbl('repeat') . "
SET month_relative=?,
rep_type=" . RepeatRule::MONTHLY . "
WHERE id=?";
$upgrade_handle->command($sql, array($month_relative, $id));
}
// Restore the original timezone
mrbs_default_timezone_set($old_tz);