UserAdAccount (PQL)

Returns the user's Active Directory account name of the currently logged in user.

  • Returned Output: Text
  • Library: PQL \ Common \ Identity
  • Version: 2018.00.000
  • Compatibility:
    • Can be combined with and other PQL function throughout the application.
    • It CANNOT be used with MDX or VBA functions. But it can be used on MDX-based content in other parts of the application.

Syntax

UserAdAccount()
Comments
  • The function returns a text string of the user's Active Directory account name. As such, this function is only operational when an Active Directory is used as the authentication provider.
  • The function takes no inputs
  • The function is often used to customize the way queries or formula's operate based on the user that is currently running a report or dashboard. It can also be used in driving member level security for data models - allowing a data model to be customized for each user logging into the application.
Different Function types
  • This function is like the MDX username function.
  • The other "identity" functions can be used to secure and customize the analytics experience. For more see the UserName function.

Examples

This example shows how to use the UserAdAccount function to create a member object from a table called "security", on a column called "user".

StrToMember([Security].[User],UserAdAccount())

If the logged in user was called "domainA\jsmith" in the Active Directory, it would return a member with unique name [Security].[User].[jsmith]. If this was used in the member security settings for a model in the admin settings, it could be used to filter all the rows in the Security table of model (as shown below), which in turn would secure the data for the entire model (via country).

So if the security table showed that domainA\jsmith matched up with USA, then this function would limit the entire data model to only show USA data.

 

An alternative to the above approach, would be to set security on the country table directly, using a non-empty function and the following use of the UserAdAccount method.

NonEmpty( AllMembers([customers].[Country]) , (StrToMember([Security].[User],UserAdAccount())) )