You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
PL/PgSQL
36 lines
1.1 KiB
PL/PgSQL
GRANT SELECT, INSERT, UPDATE, DELETE ON public.af_user TO supabase_auth_admin;
|
|
|
|
-- Trigger Function to delete a user from the pulic.af_user table
|
|
-- when a user is deleted from auth.users table (with matching uuid) field
|
|
CREATE OR REPLACE FUNCTION public.delete_user()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
DELETE FROM public.af_user WHERE uuid = OLD.id;
|
|
RETURN OLD;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER delete_user_trigger
|
|
AFTER DELETE ON auth.users
|
|
FOR EACH ROW EXECUTE FUNCTION public.delete_user();
|
|
|
|
-- Trigger Function to update the 'deleted_at' field in the pulic.af_user table
|
|
-- (Soft Delete)
|
|
CREATE OR REPLACE FUNCTION public.update_af_user_deleted_at()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
-- Check if 'deleted_at' field is modified
|
|
IF OLD.deleted_at IS DISTINCT FROM NEW.deleted_at THEN
|
|
-- Update 'deleted_at' in public.af_user
|
|
UPDATE public.af_user
|
|
SET deleted_at = NEW.deleted_at
|
|
WHERE uuid = NEW.id;
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE TRIGGER update_af_user_deleted_at_trigger
|
|
AFTER UPDATE OF deleted_at ON auth.users
|
|
FOR EACH ROW EXECUTE FUNCTION public.update_af_user_deleted_at();
|