pears.IQXNetRightAssigned

Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.

Contains the assigned rights for each user class

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
  • IQXNetUserID, IQXNetRightID
Constraint Columns References Delete/update action
IQXNetUser IQXNetUserID pears.IQXNetUser (IQXNetUserID) NOT NULL; ON DELETE CASCADE
IQXNetRight IQXNetRightID pears.IQXNetRight (IQXNetRightID) NOT NULL; ON DELETE CASCADE
  • No incoming foreign keys found.
  • No indexes found.
Name Timing Event
IQXNetRightAssigned_Audit after insert,delete,update order 1
-- 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
  • database/tables/pears_iqxnetrightassigned.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1