Files
archtika/rest-api/db/migrations/20240808141708_collaborator_not_owner.sql

32 lines
713 B
MySQL
Raw Normal View History

-- migrate:up
CREATE FUNCTION internal.check_user_not_website_owner ()
RETURNS TRIGGER
AS $$
BEGIN
IF EXISTS (
SELECT
1
FROM
internal.website AS w
WHERE
w.id = NEW.website_id
AND w.user_id = NEW.user_id) THEN
RAISE foreign_key_violation
USING message = 'User cannot be added as a collaborator to their own website';
END IF;
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
CREATE CONSTRAINT TRIGGER check_user_not_website_owner
AFTER INSERT ON internal.collab
FOR EACH ROW
EXECUTE FUNCTION internal.check_user_not_website_owner ();
-- migrate:down
DROP TRIGGER check_user_not_website_owner ON internal.collab;
DROP FUNCTION internal.check_user_not_website_owner ();