====== 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;
*/
}