66 lines
2.3 KiB
MySQL
66 lines
2.3 KiB
MySQL
|
|
-- ============================================
|
||
|
|
-- 应付账款表 RLS 策略
|
||
|
|
-- ============================================
|
||
|
|
|
||
|
|
-- 启用 RLS
|
||
|
|
ALTER TABLE public.accounts_payable ENABLE ROW LEVEL SECURITY;
|
||
|
|
ALTER TABLE public.accounts_payable_items ENABLE ROW LEVEL SECURITY;
|
||
|
|
|
||
|
|
-- 应付账款表策略
|
||
|
|
-- 采购商可以查看自己的应付账款
|
||
|
|
CREATE POLICY purchaser_select_ap ON public.accounts_payable
|
||
|
|
FOR SELECT USING (purchaser_id = get_user_master_company_id());
|
||
|
|
|
||
|
|
-- 纺织厂可以查看与自己相关的应付账款
|
||
|
|
CREATE POLICY textile_select_ap ON public.accounts_payable
|
||
|
|
FOR SELECT USING (textile_factory_id = get_user_master_company_id());
|
||
|
|
|
||
|
|
-- 采购商可以创建应付账款
|
||
|
|
CREATE POLICY purchaser_insert_ap ON public.accounts_payable
|
||
|
|
FOR INSERT WITH CHECK (purchaser_id = get_user_master_company_id());
|
||
|
|
|
||
|
|
-- 采购商可以更新自己的应付账款
|
||
|
|
CREATE POLICY purchaser_update_ap ON public.accounts_payable
|
||
|
|
FOR UPDATE USING (purchaser_id = get_user_master_company_id());
|
||
|
|
|
||
|
|
-- 应付账款明细表策略
|
||
|
|
-- 采购商可以查看自己的应付账款明细
|
||
|
|
CREATE POLICY purchaser_select_ap_items ON public.accounts_payable_items
|
||
|
|
FOR SELECT USING (
|
||
|
|
EXISTS (
|
||
|
|
SELECT 1 FROM public.accounts_payable ap
|
||
|
|
WHERE ap.id = accounts_payable_items.accounts_payable_id
|
||
|
|
AND ap.purchaser_id = get_user_master_company_id()
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 纺织厂可以查看与自己相关的应付账款明细
|
||
|
|
CREATE POLICY textile_select_ap_items ON public.accounts_payable_items
|
||
|
|
FOR SELECT USING (
|
||
|
|
EXISTS (
|
||
|
|
SELECT 1 FROM public.accounts_payable ap
|
||
|
|
WHERE ap.id = accounts_payable_items.accounts_payable_id
|
||
|
|
AND ap.textile_factory_id = get_user_master_company_id()
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 采购商可以创建应付账款明细
|
||
|
|
CREATE POLICY purchaser_insert_ap_items ON public.accounts_payable_items
|
||
|
|
FOR INSERT WITH CHECK (
|
||
|
|
EXISTS (
|
||
|
|
SELECT 1 FROM public.accounts_payable ap
|
||
|
|
WHERE ap.id = accounts_payable_items.accounts_payable_id
|
||
|
|
AND ap.purchaser_id = get_user_master_company_id()
|
||
|
|
)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- 采购商可以更新自己的应付账款明细
|
||
|
|
CREATE POLICY purchaser_update_ap_items ON public.accounts_payable_items
|
||
|
|
FOR UPDATE USING (
|
||
|
|
EXISTS (
|
||
|
|
SELECT 1 FROM public.accounts_payable ap
|
||
|
|
WHERE ap.id = accounts_payable_items.accounts_payable_id
|
||
|
|
AND ap.purchaser_id = get_user_master_company_id()
|
||
|
|
)
|
||
|
|
);
|