1 -- NO create trigger statements. the updater will create them.
3 SELECT dropIfExists('TRIGGER', 'pkgprivbeforetrigger');
4 CREATE OR REPLACE FUNCTION _pkgprivbeforetrigger() RETURNS "trigger" AS $$
5 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
6 -- See www.xtuple.com/CPAL for the full text of the software license.
12 IF (TG_OP = 'UPDATE') THEN
14 RAISE NOTICE 'OLD.priv_name %, NEW.priv_name %',
15 OLD.priv_name, NEW.priv_name;
18 IF (NEW.priv_name != OLD.priv_name) THEN
19 SELECT priv_id INTO _privid FROM priv WHERE priv_name=NEW.priv_name;
21 RAISE EXCEPTION 'Cannot change privilege name % because another privilege with that name already exists.', NEW.priv_name;
25 ELSIF (TG_OP = 'INSERT') THEN
27 RAISE NOTICE 'inserting NEW.priv_name %', NEW.priv_name;
29 SELECT priv_id INTO _privid FROM priv WHERE priv_name=NEW.priv_name;
31 RAISE EXCEPTION 'Cannot create new privilege % because another privilege with that name already exists.', NEW.priv_name;
34 ELSIF (TG_OP = 'DELETE') THEN
35 IF (_debug) THEN RAISE NOTICE 'deleting pkgpriv_id %', OLD.priv_id; END IF;
36 DELETE FROM usrpriv WHERE usrpriv_priv_id=OLD.priv_id;
37 DELETE FROM grppriv WHERE grppriv_priv_id=OLD.priv_id;
44 $$ LANGUAGE 'plpgsql';
46 CREATE OR REPLACE FUNCTION _pkgprivalterTrigger() RETURNS TRIGGER AS $$
47 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
48 -- See www.xtuple.com/CPAL for the full text of the software license.
50 IF (pkgMayBeModified(TG_TABLE_SCHEMA) OR isDba()) THEN
51 IF (TG_OP = 'DELETE') THEN
58 IF (TG_OP = 'INSERT') THEN
59 RAISE EXCEPTION 'You may not create privileges in packages except using the xTuple Updater utility';
61 ELSIF (TG_OP = 'UPDATE') THEN
62 RAISE EXCEPTION 'You may not alter privileges in packages except using the xTuple Updater utility';
64 ELSIF (TG_OP = 'DELETE') THEN
65 RAISE EXCEPTION 'You may not delete privileges from packages. Try deleting or disabling the package.';
72 $$ LANGUAGE 'plpgsql';
74 CREATE OR REPLACE FUNCTION _pkgprivaftertrigger() RETURNS TRIGGER AS $$
75 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
76 -- See www.xtuple.com/CPAL for the full text of the software license.
78 IF (TG_OP = 'DELETE') THEN
84 $$ LANGUAGE 'plpgsql';