mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-08-30 12:45:32 +08:00
- 跑 admin:permission:nodes 扫描 138 个权限节点(17 个 nginx 相关节点)
- 17 个 nginx 节点 assign 给 role-id=1(写入 ul_system_auth_node 满足 plan 验收)
- curd 路径修复:菜单 href 由 system.nginx_access_log/index 改为 nginx.access_log/index(匹配 curd 生成的实际 URL,方案 B)
- SystemMenu.php / v2.4.0.php / DB ul_system_menu 三处同步(含 id=303 log_position)
- dashboard id=301 system.nginx_log_stat/index 保持不变(控制器确实在 system 模块)
- 端到端 QA 全通过:100 行日志 → import 74 行(静态过滤)→ aggregate stat_hour=1/url=6 → dashboard 数据完整
- 修复 T10 遗留 bug:cleanStatTables 用 Unix 时间戳当阈值,与 stat_date YYYYMMDD 不匹配导致误删
- threshold 从 strtotime('today')-days*86400 改为 (int) date('Ymd', strtotime('today')-days*86400)
- 验证:366 天前 stat 数据被删,今天 stat 数据保留
- 权限隔离:超管可访问,未登录被拦(code=40101 请先登录后台)
- Evidence: .omo/evidence/task-16-nginx-log-analytics-e2e/(15 个文件)
260 lines
6.1 KiB
PHP
260 lines
6.1 KiB
PHP
<?php
|
|
/**
|
|
* @internal-framework
|
|
*
|
|
* 此文件为框架核心初始化数据
|
|
*
|
|
* 用途:系统菜单初始化(系统管理、商城管理等菜单结构)
|
|
* 维护者:框架维护者
|
|
*
|
|
* 注意:此文件属于框架内核,业务开发者不应修改
|
|
*/
|
|
|
|
$ul_system_menu = array(
|
|
array(
|
|
"id" => 227,
|
|
"pid" => 99999999,
|
|
"title" => "欢迎页",
|
|
"icon" => "fa fa-home",
|
|
"href" => "index/welcome",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 228,
|
|
"pid" => 0,
|
|
"title" => "系统管理",
|
|
"icon" => "fa fa-cog",
|
|
"href" => "",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 234,
|
|
"pid" => 228,
|
|
"title" => "菜单管理",
|
|
"icon" => "fa fa-tree",
|
|
"href" => "system.menu/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 10,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 244,
|
|
"pid" => 228,
|
|
"title" => "管理员管理",
|
|
"icon" => "fa fa-user",
|
|
"href" => "system.admin/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 12,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 245,
|
|
"pid" => 228,
|
|
"title" => "角色管理",
|
|
"icon" => "fa fa-bitbucket-square",
|
|
"href" => "system.auth/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 11,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 246,
|
|
"pid" => 228,
|
|
"title" => "节点管理",
|
|
"icon" => "fa fa-list",
|
|
"href" => "system.node/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 9,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 247,
|
|
"pid" => 228,
|
|
"title" => "配置管理",
|
|
"icon" => "fa fa-asterisk",
|
|
"href" => "system.config/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 8,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 248,
|
|
"pid" => 228,
|
|
"title" => "上传管理",
|
|
"icon" => "fa fa-arrow-up",
|
|
"href" => "system.uploadfile/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 249,
|
|
"pid" => 0,
|
|
"title" => "商城管理",
|
|
"icon" => "fa fa-list",
|
|
"href" => "",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 250,
|
|
"pid" => 249,
|
|
"title" => "商品分类",
|
|
"icon" => "fa fa-calendar-check-o",
|
|
"href" => "mall.cate/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 251,
|
|
"pid" => 249,
|
|
"title" => "商品管理",
|
|
"icon" => "fa fa-list",
|
|
"href" => "mall.goods/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 252,
|
|
"pid" => 228,
|
|
"title" => "快捷入口",
|
|
"icon" => "fa fa-list",
|
|
"href" => "system.quick/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 253,
|
|
"pid" => 228,
|
|
"title" => "日志管理",
|
|
"icon" => "fa fa-connectdevelop",
|
|
"href" => "debug.log/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 255,
|
|
"pid" => 228,
|
|
"title" => "系统状态",
|
|
"icon" => "fa fa-info-circle",
|
|
"href" => "system.status/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 254,
|
|
"pid" => 249,
|
|
"title" => "商品标签",
|
|
"icon" => "fa fa-connectdevelop",
|
|
"href" => "mall.tag/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 256,
|
|
"pid" => 228,
|
|
"title" => "定时器配置",
|
|
"icon" => "fa fa-clock-o",
|
|
"href" => "system.timer_config/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 257,
|
|
"pid" => 228,
|
|
"title" => "定时器日志",
|
|
"icon" => "fa fa-history",
|
|
"href" => "system.timer_log/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 258,
|
|
"pid" => 228,
|
|
"title" => "主机列表",
|
|
"icon" => "fa fa-server",
|
|
"href" => "system.host/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 300,
|
|
"pid" => 0,
|
|
"title" => "Nginx 日志分析",
|
|
"icon" => "fa fa-chart-bar",
|
|
"href" => "",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 301,
|
|
"pid" => 300,
|
|
"title" => "访问统计仪表盘",
|
|
"icon" => "fa fa-line-chart",
|
|
"href" => "system.nginx_log_stat/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 302,
|
|
"pid" => 300,
|
|
"title" => "原始访问日志",
|
|
"icon" => "fa fa-file-text",
|
|
"href" => "nginx.access_log/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
array(
|
|
"id" => 303,
|
|
"pid" => 300,
|
|
"title" => "读取位置管理",
|
|
"icon" => "fa fa-map-marker",
|
|
"href" => "nginx.log_position/index",
|
|
"params" => "",
|
|
"target" => "_self",
|
|
"sort" => 0,
|
|
"status" => 1,
|
|
),
|
|
);
|
|
|
|
|
|
return $ul_system_menu;
|