mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
* chore: add database test fixture to insert non-unique linked_ids * chore: create unit test to exercise failed email change bug * fix: add postgres triggers to keep user_links clear of deleted users * Add migrations to prevent deleted users with links * Force soft delete of users, do not allow un-delete
27 lines
637 B
PL/PgSQL
27 lines
637 B
PL/PgSQL
DROP TRIGGER IF EXISTS trigger_update_users ON users;
|
|
DROP FUNCTION IF EXISTS delete_deleted_user_resources;
|
|
|
|
DROP TRIGGER IF EXISTS trigger_upsert_user_links ON user_links;
|
|
DROP FUNCTION IF EXISTS insert_user_links_fail_if_user_deleted;
|
|
|
|
-- Restore the previous trigger
|
|
CREATE FUNCTION delete_deleted_user_api_keys() RETURNS trigger
|
|
LANGUAGE plpgsql
|
|
AS $$
|
|
DECLARE
|
|
BEGIN
|
|
IF (NEW.deleted) THEN
|
|
DELETE FROM api_keys
|
|
WHERE user_id = OLD.id;
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$;
|
|
|
|
|
|
CREATE TRIGGER trigger_update_users
|
|
AFTER INSERT OR UPDATE ON users
|
|
FOR EACH ROW
|
|
WHEN (NEW.deleted = true)
|
|
EXECUTE PROCEDURE delete_deleted_user_api_keys();
|