Skip to main content

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 ]