pears.NetUpdatePermissions

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

Original SQL

CREATE PROCEDURE "pears"."NetUpdatePermissions"( IN "pWebUserID" CHAR(20) ) 
RESULT( "State" VARCHAR(5),"Rights" long VARCHAR,"Switches" long VARCHAR ) 
BEGIN
  SELECT(SELECT "p"."status"
      FROM "PERSON" AS "p"
      WHERE "l"."personid" = "p"."personid") AS "state",
    (SELECT "LIST"("a"."IQXNetRightID")
      FROM "IQXNetRightAllowed" AS "a"
      WHERE "isnull"((SELECT FIRST "Assigned" FROM "IQXNetRightAssigned" WHERE "IQXNetRightID" = "a"."IQXNetRightID" AND "IQXNetUserID" = "u"."IQXNetUserID"),0)
      +"isnull"((SELECT FIRST 1 FROM "IQXNetRightDefault" WHERE "IQXNetRightID" = "a"."IQXNetRightID" AND "IQXNetUserClassID" = "a"."IQXNetUserClassID" AND "ID" = "a"."ID"),0) > 0
      AND "a"."IQXNetUserClassID" = "u"."IQXNetUserClassID" AND "a"."ID" = '*') AS "Rights",
    (SELECT "LIST"("IQXNetSwitchID")
      FROM "IQXNetSwitch"
      WHERE "IQXNetOverrideSwitchValue"("u"."IQXNetUserClassID","u"."IQXNetUserID","IQXNetSwitchID","Value") > 0) AS "Switches"
    FROM "IQXNetUser" AS "u"
      KEY JOIN "IQXNetUserLink" AS "l"
      KEY JOIN "IQXNetUserClass" AS "c"
    WHERE "u"."IQXNetUserID" = "pWebUserID"
END /* DOC
2020-01-31 GJ AW ET Fixed State
2020-01-07 GJ Added State
2019-07-29 GJ Created
 
This will re-fetch the current logged in users State, Rights & Switches to ensure they are kept up-to date.
The state is also used to to check that the candidate is not set to DNU
*/
/* TEST
call NetTestSetup('');
SELECT * FROM NetUpdatePermissions('');
EXPECT EOF;
SELECT * FROM NetUpdatePermissions('TEST.CANDIDATE');
EXPECT ROW;
EXPECT EOF;
*/
GO
 
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."NetUpdatePermissions" IS 
{CREATE PROCEDURE pears."NetUpdatePermissions"(IN "pWebUserID" CHAR(20))
RESULT("State" VARCHAR(5), "Rights" long VARCHAR, "Switches" long VARCHAR)
BEGIN
    SELECT
        (SELECT 
            p.status 
         FROM 
            PERSON p 
         WHERE 
            l.personid = p.personid) AS state,
        (SELECT 
            LIST(a.IQXNetRightID) 
         FROM
            IQXNetRightAllowed AS a 
         WHERE
            isnull((SELECT FIRST Assigned FROM IQXNetRightAssigned WHERE IQXNetRightID = a.IQXNetRightID AND IQXNetUserID = u.IQXNetUserID),0)+
            isnull((SELECT FIRST 1 FROM IQXNetRightDefault WHERE IQXNetRightID = a.IQXNetRightID AND IQXNetUserClassID = a.IQXNetUserClassID AND ID = a.ID),0) > 0 AND
            a.IQXNetUserClassID = u.IQXNetUserClassID AND a.ID = '*') AS Rights,
        (SELECT 
            LIST(IQXNetSwitchID) 
         FROM 
            IQXNetSwitch 
         WHERE 
            IQXNetOverrideSwitchValue(u.IQXNetUserClassID,u.IQXNetUserID,IQXNetSwitchID,VALUE)>0) AS Switches
    FROM 
        IQXNetUser AS u 
        KEY JOIN
            IQXNetUserLink AS l
        KEY JOIN 
            IQXNetUserClass AS c
    WHERE
        u.IQXNetUserID = pWebUserID
END
/* DOC
    2020-01-31 GJ AW ET Fixed State
    2020-01-07 GJ Added State
    2019-07-29 GJ Created
 
    This will re-fetch the current logged in users State, Rights & Switches to ensure they are kept up-to date.
    The state is also used to to check that the candidate is not set to DNU
*/
 
/* TEST
call NetTestSetup('');
SELECT * FROM NetUpdatePermissions('');
EXPECT EOF;
SELECT * FROM NetUpdatePermissions('TEST.CANDIDATE');
EXPECT ROW;
EXPECT EOF;
*/
}