mirror of
https://github.com/thiloho/archtika.git
synced 2025-11-22 02:41:35 +01:00
27 lines
598 B
PL/PgSQL
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
|