---
title: UserAccess
summary: API reference for the SAIF.Application.UserAccess type.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-24
library: SAIF.Application
reference_type: package
---

# UserAccess

`SAIF.Application.UserAccess` is the library's abstract authorization helper. It delegates resource checks to `clsSecurityPrincipal` and caches the outcome for each resource name.

## Purpose
- Provide reusable resource-authorization checks for callers that work with `clsSecurityPrincipal`.
- Avoid repeated authorization calls for the same resource name during the lifetime of a `UserAccess` instance.

## Context
- Namespace: `SAIF.Application`
- Assembly/package: `SAIF.BOF.Application`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `HasAccess` | `Public Function HasAccess(ByVal inResourceName As String) As Boolean` | Return True if the user has access to the resource; on first check, delegate to `clsSecurityPrincipal.IsAuthorized` and cache the result keyed by lower-cased resource name for subsequent lookups. |
| `CheckAccess` | `Public Sub CheckAccess(ByVal ParamArray inResourceName As String())` | Evaluate one or more AD resource names through `HasAccess`, populating the internal access-control cache for each name (the per-call return value is discarded). |

## Behavioral notes
- This type implements the per-resource cache behavior documented in [BR-003](../../business-rules.md#br-003-authorization-results-are-cached-per-resource-name).
- Resource names are supplied by callers at runtime rather than defined as literals in this library.

## Constraints and usage notes
- This type is abstract and depends on a supplied `clsSecurityPrincipal` instance.
- The helper addresses authorization reuse; it does not define AD resource names or role catalogs itself.

## Sources
- `Application\SAIF.Application\UserAccess.vb`
