From 08e435104c42751689553537b1f20ffb14b8dfcc Mon Sep 17 00:00:00 2001 From: ckonstanski Date: Sat, 18 Jul 2026 21:18:18 -0600 Subject: initial commit --- sql/functions/auth.user_delete.sql | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sql/functions/auth.user_delete.sql (limited to 'sql/functions/auth.user_delete.sql') diff --git a/sql/functions/auth.user_delete.sql b/sql/functions/auth.user_delete.sql new file mode 100644 index 0000000..8cb399e --- /dev/null +++ b/sql/functions/auth.user_delete.sql @@ -0,0 +1,50 @@ +drop function auth.user_delete ( + p_id bigint +); + +create or replace function auth.user_delete ( + p_id bigint +) +returns bool +as $$ +declare + l_id bigint; + l_result bool; +begin + if p_id is null then + l_result := false::bool; + else + select id into l_id + from auth.users + where id = p_id; + + if l_id is null or l_id != p_id then + l_result := false::bool; + else + delete + from auth.users_roles_append + where user_id = l_id; + + delete + from auth.users_roles_exclude + where user_id = l_id; + + delete + from auth.users_role_groups + where user_id = l_id; + + delete + from contact.contact_us_posts_read + where user_id = l_id; + + delete + from auth.users + where id = l_id; + + l_result := true::bool; + end if; + end if; + + return l_result; +end; +$$ language plpgsql; -- cgit v1.3