# HG changeset patch # User Sascha L. Teichmann # Date 1632324347 -7200 # Node ID 076b6b17c4a9dd930296bfc282c700659a7c6b64 # Parent 26b7921190fa73a9af78db13fd9fdb8d78d6b7af Simplified delete_user a bit. diff -r 26b7921190fa -r 076b6b17c4a9 schema/manage_users.sql --- a/schema/manage_users.sql Wed Sep 22 16:57:45 2021 +0200 +++ b/schema/manage_users.sql Wed Sep 22 17:25:47 2021 +0200 @@ -243,23 +243,17 @@ CREATE OR REPLACE FUNCTION delete_user(rolename text) RETURNS int AS $$ DECLARE - user_exists bool; is_admin bool; has_imports bool; BEGIN - SELECT EXISTS (SELECT 1 FROM pg_roles - WHERE rolname = rolename) - INTO user_exists; + SELECT rolname IN ('waterway_admin', 'sys_admin') INTO is_admin + FROM users.list_users + WHERE username = rolename; - IF NOT user_exists THEN + IF NOT FOUND THEN RETURN 0; END IF; - SELECT EXISTS (SELECT 1 FROM pg_roles - WHERE pg_has_role(rolename, oid, 'member') AND - rolname IN ('waterway_admin', 'sys_admin')) - INTO is_admin; - -- None admins can be deleted. IF NOT is_admin THEN DELETE FROM users.list_users WHERE username = rolename; diff -r 26b7921190fa -r 076b6b17c4a9 schema/updates/1465/01.delete_user.sql --- a/schema/updates/1465/01.delete_user.sql Wed Sep 22 16:57:45 2021 +0200 +++ b/schema/updates/1465/01.delete_user.sql Wed Sep 22 17:25:47 2021 +0200 @@ -101,23 +101,17 @@ CREATE OR REPLACE FUNCTION delete_user(rolename text) RETURNS int AS $$ DECLARE - user_exists bool; is_admin bool; has_imports bool; BEGIN - SELECT EXISTS (SELECT 1 FROM pg_roles - WHERE rolname = rolename) - INTO user_exists; + SELECT rolname IN ('waterway_admin', 'sys_admin') INTO is_admin + FROM users.list_users + WHERE username = rolename; - IF NOT user_exists THEN + IF NOT FOUND THEN RETURN 0; END IF; - SELECT EXISTS (SELECT 1 FROM pg_roles - WHERE pg_has_role(rolename, oid, 'member') AND - rolname IN ('waterway_admin', 'sys_admin')) - INTO is_admin; - -- None admins can be deleted. IF NOT is_admin THEN DELETE FROM users.list_users WHERE username = rolename;