Returns arrays representing a user's access and email alerting rights to security classes. The arrays have a one-to-one correspondence.
<HsvSecurityAccess>.EnumSecurityClassRightsForPrincipal bstrUserSID, pvaralSecurityClassIDs, pvarabstrSecurityClasses, pvaralRights, pvaralEmailAlerting| Argument | Description |
|---|---|
| bstrUserSID | String (ByVal). The user's security identifier. |
| pvaralSecurityClassIDs | Variant array. Returns the IDs of the security classes to which the user has been assigned access rights. The array's subtype is Long. |
| pvarabstrSecurityClasses | Variant array. Returns the names of the security classes. The array's subtype is String. |
| pvaralRights | Variant array. Returns the user's rights to the security classes. Valid values are represented by the constants in Table 68, Access Rights Constants. The array's subtype is Long. |
| pvaralEmailAlerting | Variant array. Returns an array of bitmasks that represent user's email alerting rights to the security classes. Valid values for the bits are represented by the enumeration described in E-mail Alerting Constants. The array's subtype is Long. |
The following function returns the names of the security classes to which a user has All access rights.
Function GetUserSecClassesAllAccess(sName As String) As Variant
Dim sSId As String, cSecurity As HsvSecurityAccess, lCounter As Long
Dim vaSecIds, vaSecNames, vaRights, vaAlerts, vaRet()
'g_cSession represents an HsvSession instance
Set cSecurity = g_cSession.Security
cSecurity.GetUserSID sName, sSId
cSecurity.EnumSecurityClassRightsForPrincipal sSId, vaSecIds, _
vaSecNames, vaRights, vaAlerts
lCounter = -1
If IsArray(vaSecNames) = True Then
For i = LBound(vaSecNames) To UBound(vaSecNames)
If vaRights(i) = HFM_ACCESS_RIGHTS_ALL Then
lCounter = lCounter + 1
ReDim Preserve vaRet(lCounter)
vaRet(lCounter) = vaSecNames(i)
End If
Next i
End If
GetUserSecClassesAllAccess = vaRet
End Function