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

27 lines
598 B
PL/PgSQL

-- 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 NULL;
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