How to Determine if the User is a Member of a Security Group

Description

The context.security object has numerous methods for determining if a user is a member of a specific group (a.k.a. "role").

Discussion

If the security system has been enabled in an application, the context.security object can be used to determine the groups, or "roles", to which a user belongs.

"Role" and "Group" both refer to Security Groups in Alpha Anywhere. The Alpha Anywhere IDE generally uses the term "Group" while the context.security properties and methods use the term "Role". Several methods exist for testing if a user is a member of a specific role (group).

For example, the Xbasic below checks to see if the user "susan_smith@example.com" is a member of the "Sales" group:

dim inSales as L
inSales = context.security.isUserInRole("susan_smith@example.com","Sales")

' Verify the operation succeeded
if (.not. context.security.callResult.Success) then
    ' An error occurred
    error_generate(context.security.callResult.text)
end if

if (inSales) then
    ' User is in the group "Sales"
else
    ' User is not in the group "Sales"
end if

This example uses the context.security.isUserInRole() method to test if the user is a member of the "Sales" group.

Other methods available for testing a user's role membership include:

context.security.isCurrentUserInRole()

Test if the currently logged in user is a member of a group

context.security.isCurrentUserInRoles()

Test if the currently logged in user is a member of at least one of a set of groups

context.security.isUserInRoles()

Test if a user is a member of at least one of a set of groups

In addition to testing for membership, methods exist for adding a user to a group, removing a user from a group, and listing a user's groups. See context.security for more information.

You should always check the value of context.security.callResult before using the value from any property or method of the context.security object.

See Also