pears.IQXNetAuthenticate

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

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
}
  • database/procedures/pears_iqxnetauthenticate.txt
  • Last modified: 2026/08/07 19:24
  • by 127.0.0.1