feat(admin): implement user level, group and label modules with database, rpc and ui

This commit is contained in:
comlibmb
2026-02-10 20:34:45 +08:00
parent 80e5a1ddeb
commit 47968565a5
28 changed files with 1896 additions and 140 deletions

View File

@@ -0,0 +1,12 @@
-- =====================================================================================
-- RLS: 用户分组表
-- 位置docs/sql/20_rls/user/ak_user_groups_rls_v1.sql
-- 对象类型RLS 策略
-- 版本v1
-- 说明:管理端全量访问通过 RPC 完成;消费者端默认不开放直接访问
-- =====================================================================================
ALTER TABLE public.ak_user_groups ENABLE ROW LEVEL SECURITY;
-- 如果未来消费者端需要展示所在分组,可以在此添加对应的 SELECT 策略
-- 目前默认不向普通用户开放任何直接 SQL 读写权限

View File

@@ -0,0 +1,12 @@
-- =====================================================================================
-- RLS: 用户标签表
-- 位置docs/sql/20_rls/user/ak_user_labels_rls_v1.sql
-- 对象类型RLS 策略
-- 版本v1
-- 说明:管理端全量访问通过 RPC 完成;消费者端默认不开放直接访问
-- =====================================================================================
ALTER TABLE public.ak_user_labels ENABLE ROW LEVEL SECURITY;
-- 若后续消费者端需要展示标签,可在此添加 SELECT 策略
-- 当前默认不向普通用户开放任何直接 SQL 读写权限

View File

@@ -0,0 +1,23 @@
-- =====================================================================================
-- RLS: 用户等级表
-- 位置docs/sql/20_rls/user/
-- 对象类型RLS 策略
-- 版本v1
-- 说明:消费者端可读(仅可见/启用/未删除);管理端全量访问通过 RPC 完成
-- =====================================================================================
ALTER TABLE public.ak_user_levels ENABLE ROW LEVEL SECURITY;
-- 消费者端:允许读取可见且启用的等级(未删除)
DROP POLICY IF EXISTS ak_user_levels_public_select_visible_active ON public.ak_user_levels;
CREATE POLICY ak_user_levels_public_select_visible_active
ON public.ak_user_levels
FOR SELECT
TO anon, authenticated
USING (
deleted_at IS NULL
AND status = 1
AND is_visible = TRUE
);
-- 默认不开放写权限INSERT/UPDATE/DELETE给 anon/authenticated