pccs/setup_rbac_perms.sh

89 lines
2.0 KiB
Bash

#!/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 "============================================"