SearchAuthnQueryFilter Class Methods

In this section, the SearchAuthnQueryFilter class methods are presented in alphabetical order.

Syntax

evaluateAttrValues(SBO_name, attr, user_ID)

Description

Use this method to return a list of values for a security attribute for a search user.

Note: This is an abstract method.

Parameters

Field or Control

Definition

SBO_name

Specifies a string representing a searchable object upon which the security attribute value needs to be evaluated

attr

Specifies a string representing the security attribute value as a document-level filtering attribute.

user_ID

Specifies user ID that executed the search query as a string.

Returns

An array of string.

Example

import PTSF_SECURITY:*;

class UserPermission implements PTSF_SECURITY:SearchAuthnQueryFilter
   method UserPermissionList();
   method evaluateAttrValues(&sboName As string, &secAttr As string, &searchUser As string) Returns array of string;
end-class;

method UserPermissionList
end-method;

method evaluateAttrValues
   /+ &sboName as String, +/
   /+ &secAttr as String, +/
   /+ &searchUser as String +/
   /+ Returns Array of String +/
   /+ Extends/implements PTSF_SECURITY:SearchAuthnQueryFilter.evaluateAttrValues +/

   Local SQL &userPermissions_SQL;
   Local array of string &retvalues;
   Local string &isAdmin;
   &retvalues = CreateArrayRept("", 0);

   SQLExec("SELECT 'X' FROM PSROLEUSER WHERE ROLEUSER=:1 AND (ROLENAME=:2 OR ROLENAME=:3)", &searchUser, "Portal Administrator", "PeopleSoft Administrator", &isAdmin);

   If All(&isAdmin) Then
      &retvalues = CreateArray("R:Admin");
   Else
      &retvalues.Push("0"); /* Public */
      &retvalues.Push("1:" | &searchUser); /* Author */
      &userPermissions_SQL = CreateSQL("SELECT DISTINCT A.CLASSID FROM PSROLECLASS A, PSROLEUSER B, PSOPRDEFN C WHERE A.ROLENAME = B.ROLENAME AND C.OPRID = B.ROLEUSER AND C.OPRID = :1", &searchUser);
      Local string &classids;
      While &userPermissions_SQL.Fetch(&classids)
         &retvalues.Push(&classids);
      End-While;
   End-If;
   Return &retvalues;

end-method;