====== pears.IQXNetRightAssigned ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Description =====
Contains the assigned rights for each user class
===== Columns =====
^ Column ^ Type ^ Null ^ Default ^ Comment ^
| **IQXNetUserID** | char(20) | NOT NULL | | |
| **IQXNetRightID** | char(20) | NOT NULL | | |
| Assigned | smallint | NULL | | 1 for assigned, -1 for denied, 0, null or not stored for default |
===== Primary Key =====
* IQXNetUserID, IQXNetRightID
===== Foreign Keys =====
^ Constraint ^ Columns ^ References ^ Delete/update action ^
| IQXNetUser | IQXNetUserID | [[database:tables:pears_iqxnetuser|pears.IQXNetUser (IQXNetUserID)]] | NOT NULL; ON DELETE CASCADE |
| IQXNetRight | IQXNetRightID | [[database:tables:pears_iqxnetright|pears.IQXNetRight (IQXNetRightID)]] | NOT NULL; ON DELETE CASCADE |
===== Referenced By =====
* No incoming foreign keys found.
===== Indexes =====
* No indexes found.
===== Triggers =====
^ Name ^ Timing ^ Event ^
| IQXNetRightAssigned_Audit | after | insert,delete,update order 1 |
===== Original SQL =====
-- IQX database structure split by table
-- Source: IQXDatabaseStructure - with comments.sql
-- Table: "pears"."IQXNetRightAssigned"
-- Table comment: Contains the assigned rights for each user class
-- Statement count: 7
CREATE TABLE "pears"."IQXNetRightAssigned" (
"IQXNetUserID" char(20) NOT NULL
,"IQXNetRightID" char(20) NOT NULL
,"Assigned" smallint NULL
,PRIMARY KEY ("IQXNetUserID" ASC,"IQXNetRightID" ASC)
)
go
COMMENT ON COLUMN "pears"."IQXNetRightAssigned"."Assigned" IS
'1 for assigned, -1 for denied, 0, null or not stored for default'
go
COMMENT ON TABLE "pears"."IQXNetRightAssigned" IS
'Contains the assigned rights for each user class'
go
ALTER TABLE "pears"."IQXNetRightAssigned"
ADD NOT NULL FOREIGN KEY "IQXNetUser" ("IQXNetUserID" ASC)
REFERENCES "pears"."IQXNetUser" ("IQXNetUserID")
ON DELETE CASCADE
go
ALTER TABLE "pears"."IQXNetRightAssigned"
ADD NOT NULL FOREIGN KEY "IQXNetRight" ("IQXNetRightID" ASC)
REFERENCES "pears"."IQXNetRight" ("IQXNetRightID")
ON DELETE CASCADE
go
create trigger "IQXNetRightAssigned_Audit" after insert,delete,update order 1 on
"pears"."IQXNetRightAssigned"
referencing old as "old_name" new as "new_name"
for each row
begin
declare "olddesc" varchar(40);
declare "newdesc" varchar(40);
declare "nid" varchar(20);
declare "rid" varchar(20);
declare "classid" varchar(20);
if "isnull"("old_name"."iqxnetuserid",'') <> '' then
set "nid" = "old_name"."iqxnetuserid"
else set "nid" = "isnull"("new_name"."iqxnetuserid",'')
end if;
select case "IQXNetUserClassID" when 'CANDIDATE' then 'PERSON' when 'CLIENT' then 'COMPANY' when 'OWNER' then 'USER' else '' end,
case "IQXNetUserClassID"
when 'CANDIDATE' then(select top 1 "personid" from "iqxnetuserlink" where "personid" is not null and "iqxnetuserid" = "nid" order by 1 asc)
when 'CLIENT' then(select top 1 "companyid" from "iqxnetuserlink" key join "employment" as "e" where "e"."employmentid" is not null and "iqxnetuserid" = "nid" order by 1 asc)
when 'OWNER' then "staffid" end
into "classid","rid" from "iqxnetuser" where "iqxnetuser"."iqxnetuserid" = "nid";
if "classid" <> '' then
set "olddesc" = "string"("old_name"."iqxnetrightid",':',case "isnull"("old_name"."assigned",0) when-1 then 'Deny' when 1 then 'Allowed' else '' end);
set "newdesc" = "string"("isnull"("new_name"."iqxnetrightid",''),':',case "isnull"("new_name"."assigned",0) when-1 then 'Deny' when 1 then 'Allowed' else '' end);
if "olddesc" = ':' then set "olddesc" = '' end if;
if "olddesc" = "newdesc" then set "newdesc" = '' end if;
call "AuditLog"("classid","rid",'iqx WEB Rights',"olddesc","newdesc")
end if
end
go
COMMENT TO PRESERVE FORMAT ON TRIGGER "pears"."IQXNetRightAssigned"."IQXNetRightAssigned_Audit" IS
{create trigger IQXNetRightAssigned_Audit
after insert,delete,update ORDER 1 ON IQXNetRightAssigned
REFERENCING OLD AS old_name NEW AS new_name
FOR EACH ROW
BEGIN
declare olddesc varchar(40);
declare newdesc varchar(40);
declare nid varchar(20);
declare rid varchar(20);
declare classid varchar(20);
if isnull(old_name.iqxnetuserid,'')<>'' then
set nid = old_name.iqxnetuserid;
else set nid = isnull(new_name.iqxnetuserid,'');
end if;
select
case IQXNetUserClassID when 'CANDIDATE' then 'PERSON' when 'CLIENT' then 'COMPANY' when 'OWNER' then 'USER' else '' end ,
case IQXNetUserClassID
when 'CANDIDATE' then (select top 1 personid from iqxnetuserlink where personid is not null and iqxnetuserid = nid order by 1 )
when 'CLIENT' then (select top 1 companyid from iqxnetuserlink key join employment e where e.employmentid is not null and iqxnetuserid = nid order by 1)
when 'OWNER' then staffid
end into classid, rid from iqxnetuser where iqxnetuser.iqxnetuserid = nid;
if classid<>'' then
set olddesc = string(old_name.iqxnetrightid,':',case isnull(old_name.assigned, 0) when -1 then 'Deny' when 1 then 'Allowed' else '' end) ;
set newdesc = string(isnull(new_name.iqxnetrightid,''),':',case isnull(new_name.assigned, 0) when -1 then 'Deny' when 1 then 'Allowed' else '' end) ;
if olddesc=':' then set olddesc = '' end if;
if olddesc=newdesc then set newdesc = '' end if;
call AuditLog(classid,rid,'iqx WEB Rights', olddesc,newdesc);
end if;
end
}
go