====== pears.IQXNetAuthenticate ======
Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace.
===== Original SQL =====
create procedure "pears"."IQXNetAuthenticate"(
/* Application Maintained Function / Procedure - DO NOT EDIT*/
in "SettingsID" char(20),in "UID" char(50),in "PWD" char(50),in "CallType" char(1),in "ProcName" char(100),in "pKey" char(50) )
result( "IQXNetUserID" char(20),"Name" char(50),"IQXNetUserClassID" char(20),"StaffID" char(20),"DatabaseUser" char(50),"ReportsFolder" char(250),"PasswordOk" tinyint,"PermissionOk" tinyint,"Expired" tinyint,"Rights" long varchar,"Switches" long varchar,"LastLoggedIn" timestamp )
begin
select "u"."IQXNetUserID",
"u"."Name",
"u"."IQXNetUserClassID",
"isnull"("u"."Staffid","c"."DefaultStaffID","s"."DefaultStaffID") as "StaffID",
"isnull"("c"."DatabaseUser","s"."DefaultDatabaseUser") as "DatabaseUser",
"isnull"("c"."ReportsFolder","s"."DefaultReportsFolder") as "ReportsFolder",
(if cast("PWD" as binary) = "decrypt"("u"."Password","pKey") then 1 else 0 endif) as "PasswordOk",
(case "CallType" when 'S' then "c"."Selects"
when 'P' then "IQXNetAllowed"("ProcName","c"."Calls")
when 'W' then "IQXNetAllowed"("ProcName","c"."Services")
when 'J' then "IQXNetAllowed"("ProcName","c"."Jobs")
when 'A' then "IQXNetHasPermission"("u"."IQXNetUserID",'LOGIN') end) as "PermissionOk",
(if "isnull"("u"."ExpiryDate",current date+1) <= current date then 1 else 0 endif) as "Expired",
(if "CallType" = 'A' then
(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" = '*')
else
null
endif) as "Rights",
(if "CallType" = 'A' then
(select "list"("IQXNetSwitchID") from "IQXNetSwitch" where "IQXNetOverrideSwitchValue"("u"."IQXNetUserClassID","u"."IQXNetUserID","IQXNetSwitchID","Value") > 0)
else
null
endif) as "Switches","u"."LastLoggedIn"
from "IQXNetUser" as "u" key join "IQXNetUserClass" as "c" join "IQXNetSettings" as "s" on "s"."IQXNetSettingsID" = "SettingsID"
where "u"."LoginID" = "UID"
end
go
COMMENT TO PRESERVE FORMAT ON PROCEDURE "pears"."IQXNetAuthenticate" IS
{create procedure IQXNetAuthenticate
/* Application Maintained Function / Procedure - DO NOT EDIT*/
(in SettingsID char(20),in UID char(50),in PWD char(50),in CallType char(1),in ProcName char(100),in pKey char(50))
result(IQXNetUserID char(20),Name char(50),IQXNetUserClassID char(20),StaffID char(20),DatabaseUser char(50),ReportsFolder char(250),PasswordOk tinyint,PermissionOk tinyint,Expired tinyint,Rights long varchar,Switches long varchar,LastLoggedIn timestamp)
begin
select u.IQXNetUserID,
u.Name,
u.IQXNetUserClassID,
isnull(u.Staffid,c.DefaultStaffID,s.DefaultStaffID) as StaffID,
isnull(c.DatabaseUser,s.DefaultDatabaseUser) as DatabaseUser,
isnull(c.ReportsFolder,s.DefaultReportsFolder) as ReportsFolder,
(if cast(PWD as binary) = decrypt(u.Password,pKey) then 1 else 0 endif) as PasswordOk,
(case CallType when 'S' then c.Selects
when 'P' then IQXNetAllowed(ProcName,c.Calls)
when 'W' then IQXNetAllowed(ProcName,c.Services)
when 'J' then IQXNetAllowed(ProcName,c.Jobs)
when 'A' then IQXNetHasPermission(u.IQXNetUserID,'LOGIN')
end) as PermissionOk,
(if isnull(u.ExpiryDate,current date+1) <= current date then 1 else 0 endif) as Expired,
(if CallType = 'A' then
(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 = '*')
else
null
endif) as Rights,
(if CallType = 'A' then
(select list(IQXNetSwitchID) from IQXNetSwitch where IQXNetOverrideSwitchValue(u.IQXNetUserClassID,u.IQXNetUserID,IQXNetSwitchID,Value)>0)
else
null
endif) as Switches, u.LastLoggedIn
from IQXNetUser as u key join IQXNetUserClass as c join IQXNetSettings as s on s.IQXNetSettingsID = SettingsID where
u.LoginID = UID
end
}