diff --git a/wwwroot/index.ui b/wwwroot/index.ui new file mode 100644 index 0000000..f161450 --- /dev/null +++ b/wwwroot/index.ui @@ -0,0 +1,212 @@ +{% set roles = get_user_roles(get_user()) %} +{ + "widgettype": "VBox", + "options": { + "width": "100%", + "height": "100%", + "padding": "0", + "bgcolor": "#0B1120" + }, + "subwidgets": [ + { + "widgettype": "HBox", + "options": { + "width": "100%", + "alignItems": "center", + "marginBottom": "24px" + }, + "subwidgets": [ + { + "widgettype": "Title2", + "options": { + "text": "用户与权限", + "color": "#F1F5F9", + "fontWeight": "700" + } + }, + { + "widgettype": "Filler" + }, + { + "widgettype": "Text", + "options": { + "text": "用户管理、角色权限与安全审计", + "fontSize": "14px", + "color": "#64748B" + } + } + ] + }, +{% if 'reseller.admin' in roles or 'owner.superuser' in roles %} + { + "widgettype": "ResponsableBox", + "options": { + "gap": "16px", + "minWidth": "250px", + "marginBottom": "24px" + }, + "subwidgets": [ + { + "widgettype": "VBox", + "options": { + "bgcolor": "#1E293B", + "padding": "24px", + "borderRadius": "12px", + "border": "1px solid #334155", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.rbac_content", + "options": { + "url": "{{entire_url('/rbac/users')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Svg", + "options": { + "svg": "", + "width": "36px", + "height": "36px", + "marginBottom": "16px" + } + }, + { + "widgettype": "Title4", + "options": { + "text": "用户管理", + "color": "#F1F5F9", + "fontWeight": "600", + "marginBottom": "8px" + } + }, + { + "widgettype": "Text", + "options": { + "text": "管理系统用户、角色分配与账户信息", + "fontSize": "14px", + "color": "#94A3B8" + } + } + ] + }, + { + "widgettype": "VBox", + "options": { + "bgcolor": "#1E293B", + "padding": "24px", + "borderRadius": "12px", + "border": "1px solid #334155", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.rbac_content", + "options": { + "url": "{{entire_url('/rbac/list_path_roles.ui')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Svg", + "options": { + "svg": "", + "width": "36px", + "height": "36px", + "marginBottom": "16px" + } + }, + { + "widgettype": "Title4", + "options": { + "text": "路径权限角色", + "color": "#F1F5F9", + "fontWeight": "600", + "marginBottom": "8px" + } + }, + { + "widgettype": "Text", + "options": { + "text": "查询各路径绑定的角色与权限配置", + "fontSize": "14px", + "color": "#94A3B8" + } + } + ] + }, + { + "widgettype": "VBox", + "options": { + "bgcolor": "#1E293B", + "padding": "24px", + "borderRadius": "12px", + "border": "1px solid #334155", + "cursor": "pointer" + }, + "binds": [ + { + "wid": "self", + "event": "click", + "actiontype": "urlwidget", + "target": "app.rbac_content", + "options": { + "url": "{{entire_url('/rbac/find_unauth_files.dspy')}}" + }, + "mode": "replace" + } + ], + "subwidgets": [ + { + "widgettype": "Svg", + "options": { + "svg": "", + "width": "36px", + "height": "36px", + "marginBottom": "16px" + } + }, + { + "widgettype": "Title4", + "options": { + "text": "扫描未授权文件", + "color": "#F1F5F9", + "fontWeight": "600", + "marginBottom": "8px" + } + }, + { + "widgettype": "Text", + "options": { + "text": "检测未配置RBAC权限的页面文件", + "fontSize": "14px", + "color": "#94A3B8" + } + } + ] + } + ] + }, +{% endif %} + { + "widgettype": "VBox", + "id": "rbac_content", + "options": { + "width": "100%", + "flex": "1", + "marginTop": "20px" + } + } + ] +}