Creating a Redirector IQA

Updated on

An IQA check used with the VA Redirector must:
  • Run automatically - all Prompt options must be set to "No". In other words the IQA must not include any Optional or Required prompts.
  • Return the logged-in user's ID - this is the test that the redirector uses to determine if a redirection instruction is to be followed or not. If the IQA's criteria is not met then the IQA should return a blank value for the ID and the redirector will interpret this as "Did not meet the criteria" or "Check not true".
  • Return a single row - a redirector IQA should only return one value - the ID of the user that is being assessed or a blank. The IQA should not return a list of "all eligible users" as this can easily lead to performance issues.
In order to narrow the IQA's focus to the individual user that is trying to access a page, the VA Redirector relies on the use of dynamic filters in iMIS to identify who the logged-in user is. The following options are available:
  • "@LoggedInUser" and "@Me": Both filter by the currently logged-in user.
  • "@SelectedUser" and "@SubjectContact": Filters by the selected contact. The contact is selected based on the contact key passed in the URL parameter. If no contact key is passed in the URL, the contact is considered to be the On Behalf Of contact (if set), or (finally) the logged in user. Note that the "@SelectedUser" option is normally used by staff or privileged users who have been granted the ability to view records for other users.
Whenever dynamic filters are used, your IQA must include a business object which includes either the ContactKey or UserKey fields. The "NetContact" business object includes the ContactKey field and is functionally equivalent to the CsContact or CsContact_Basic business objects.

In addition to the IQA check, there are two general checks that can be used as catch-alls to allow you to redirect anyone who does not meet the criteria of your IQA:
  • Authenticated - A simple validation check to see if the user is currently logged-in.
  • Not Authenticated - A simple validation check to see if the user is not logged-in

Example

Below is an example of a simple Redirector IQA that shows how these criteria are configured. This IQA checks for Active members who can view the Member Directory:

Summary

Best practice is to document your logic and ensure that the IQA is clearly marked as a utility IQA so that it is not deleted or removed accidently.

Sources

Your sources must include a business object that contains either a ContactKey or a UserKey. "NetContact" is customary, however, other business objects with the "UserKey" property can also be used.
VA_Redirect_2-(1).png

Filters

Your filters should include at least one dynamic filter to focus your IQA onto the user who is trying to access the page in question. Normally this will be done by setting the Contact Key = @LoggedInUser or @SelectedUser (see example). Note that all of the Prompt fields are set to "No" as this IQA runs automatically and without user intervention. In this case, only Active members of six designated member types are permitted to access the directory.

VA_Redirect_3-(1).png

Display

Finally, the display value should be set to the iMIS ID of the logged in user. You may wish to add additional fields for testing purposes, however, only the first field returned by the IQA is evaluated - all other fields are ignored.
VA_Redirect_4-(1).png