admin的数据库文件补全,修复uvue中的数据库接入bug

This commit is contained in:
comlibmb
2026-02-25 10:02:50 +08:00
parent 5d00e3d74e
commit dc8f899610
40 changed files with 1629 additions and 625 deletions

View File

@@ -1,5 +1,5 @@
-- RPC: rpc_admin_delete_diy_page
-- 管理端删除 DIY 页面配置
-- 管理端删除 DIY 页面配置(支持权限检查与首页保护)
CREATE OR REPLACE FUNCTION public.rpc_admin_delete_diy_page(
p_id uuid
@@ -11,24 +11,29 @@ SET search_path = public
AS $$
DECLARE
v_ok boolean;
v_user_id UUID;
BEGIN
-- 1. 权限检查 (仅管理员)
IF NOT EXISTS (
SELECT 1 FROM public.ak_users u
WHERE u.id = auth.uid() AND u.role = 'admin'
) THEN
RAISE EXCEPTION 'permission denied';
-- 1. 权限检查 (使用通用权限校验函数)
IF NOT public.check_admin_permission('decoration:page:delete') THEN
RAISE EXCEPTION 'Permission denied: decoration:page:delete';
END IF;
-- 2. 执行删除 (不允许删除当前生效的首页)
-- 2. 获取当前操作用户 ID
SELECT id INTO v_user_id FROM public.ak_users WHERE auth_id = auth.uid();
-- 3. 校验:不允许删除当前生效的首页
IF EXISTS (
SELECT 1 FROM public.ak_diy_pages
WHERE id = p_id AND is_home = true
WHERE id = p_id AND is_home = true AND deleted_at IS NULL
) THEN
RAISE EXCEPTION 'cannot delete the active home page';
END IF;
DELETE FROM public.ak_diy_pages WHERE id = p_id;
-- 4. 执行软删除:标记 deleted_at
UPDATE public.ak_diy_pages
SET deleted_at = now(),
deleted_by = v_user_id
WHERE id = p_id AND deleted_at IS NULL;
GET DIAGNOSTICS v_ok = ROW_COUNT;
RETURN v_ok;