# -
# This test makes sure that DENY_ACCESS ACE has a higher precedence over GRANT_ACCESS ACE
# -
# Initialize a new ACL
Exec InitNewACL

# Set the current trustee to rayland\actest1 and add it to the local access request list
Set TrusteeName rayland\actest1
ToggleAccessPerm COM_RIGHTS_EXECUTE
AddTrustee AccessRequestList

# Call GrantAccessRights
Exec GrantAccessRights

# Chicage client's security context
SwitchClientCtx
actest1
rayland

# Call IsAccessPermitted
Exec IsAccessPermitted

# Call IsAccessPermitted again to see if the caching mechanism works
Exec IsAccessPermitted

# Destroy the old access request list
Destroy AccessRequestList

# Set the current trustee to rayland\actestgroup1 and add it to the local access request list
Set TrusteeName rayland\actestgroup1
Set TrusteeType TRUSTEE_IS_GROUP
AddTrustee AccessRequestList

# Call DenyAccessRights
Exec DenyAccessRights

# Change the current trustee back to rayland\actest1
Set TrusteeName rayland\actest1
Set TrusteeType TRUSTEE_IS_USER

# Call IsAccessPermitted, rayland\actest1 should eb denied access by now
Exec IsAccessPermitted

# Retrieve the ACL fromt he IAccessControl object
Exec GetExplicitAccessRights

# Kill the server
Quit


