#!/bin/bash # setup_rbac_perms.sh — PCCS 权限初始化(参考 Sage 同款脚本) # 运行: cd /d/pccs && bash setup_rbac_perms.sh set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" PYTHON="${SCRIPT_DIR}/py3/bin/python3" set_perm() { local role="$1" local path="$2" "$PYTHON" set_role_perm.py "$role" "$path" } echo "============================================" echo " PCCS RBAC 权限初始化" echo "============================================" # === 1. Public: 登录/注册/认证 (any) === echo "" echo ">>> [1/3] Public: 登录/注册/认证 (any)" PUBLIC_PATHS=( "/rbac/user/login.ui" "/rbac/userpassword_login.ui" "/rbac/userpassword_login.dspy" "/rbac/user/up_login.dspy" "/rbac/phone_login.dspy" "/rbac/user/register.ui" "/rbac/user/register.dspy" "/rbac/gen_sms_code.dspy" "/rbac/qr_scan.ui" "/rbac/user/logout.dspy" "/rbac/user/code_login.dspy" "/rbac/user/sms_register.dspy" "/rbac/get_user_info.dspy" "/rbac/user/user_panel.ui" "/appbase/menu.ui" ) for path in "${PUBLIC_PATHS[@]}"; do set_perm "any" "$path" done echo " OK (${#PUBLIC_PATHS[@]} paths)" # === 2. Logined: 已登录用户可访问 === echo "" echo ">>> [2/3] Logined: 用户功能 (logined)" LOGINED_PATHS=( "/rbac/user/myrole.ui" "/rbac/user/edit_profile.dspy" "/rbac/user/save_profile.dspy" "/rbac/usermenu.ui" "/index.ui" ) for path in "${LOGINED_PATHS[@]}"; do set_perm "logined" "$path" done echo " OK (${#LOGINED_PATHS[@]} paths)" # === 3. Static: 静态资源目录通配符 (any) === echo "" echo ">>> [3/3] Static: 静态资源目录 (any + /** 通配符)" STATIC_PATHS=( "/bricks/**" "/imgs/**" "/appbase/**" "/pcpool/**" "/pcc/**" "/storage_mgr/**" "/image_mgr/**" "/pccs/**" ) for path in "${STATIC_PATHS[@]}"; do set_perm "any" "$path" done echo " OK (${#STATIC_PATHS[@]} paths)" echo "" echo "============================================" echo " 权限初始化完成" echo "============================================"