Report.ExternalUser
Class Report.ExternalUser Extends %Persistent [ Language = objectscript ]
This class defines a session to report user map using a user's assigned roles An ExternalUser object will be generated when a user visits %CSP.UI.Portal.ReportServerConfiguration Upon unloading %CSP.UI.Portal.ReportServerConfiguration, all ExternalUser objects for that session without active tokens will be deleted An ExternalUser is issued a token when a user selects to use that role on the ReportServer This ExternalUser will persist until that token is used to authenticate the user to the Logi Report Server
Properties
Session
Property Session As %String;
CSP Session that is requesting authentication
ReportServer
Property ReportServer As %String;
Name of a valid %Report.ServerDefinition that the IRIS User is requesting authentication for
ReportUser
Property ReportUser As %String;
External username that IRIS user is requesting authentation as
AuthToken
Property AuthToken As %String;
Token to be exchanged with ReportServer for authentication
IssueTime
Property IssueTime As %TimeStamp;
When AuthToken was issued
ExpiresIn
Property ExpiresIn As %Integer;
The lifetime of AuthToken, in seconds
Methods
IssueToken
ClassMethod IssueToken(pSession As %String, pReportServer As %String, pReportUser As %String, pExpiresIn As %Integer = 30) As %String
Creates a new External User, issues it a token, and returns its ID The token will expire in pExpiresIn seconds
RevokeToken
ClassMethod RevokeToken(pServerName As %String, pSession As %String) As %Status
Revokes any active AuthToken for Session pSession on ReportServer pServerName Deletes the ExternalUser record
CleanTokens
ClassMethod CleanTokens() As %Status
Deletes any expired AuthTokens
AllReportRolesExecute
ClassMethod AllReportRolesExecute(ByRef qHandle As %Binary, pServerName As %String, SSOEnabled As %Boolean) As %Status
Returns a ResultSet with each of the current users' roles on the selected ReportServer as a row Applicable roles are to be formatted as _ (for example: TestServer_admin) Where REPORTSERVER-USER is a valid username on ]]
AllReportRolesFetch
ClassMethod AllReportRolesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = AllReportRolesExecute ]
AllReportRolesClose
ClassMethod AllReportRolesClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = AllReportRolesFetch ]