Skip to content

SAIF.Application security and authorization

This page documents authorization mechanisms implemented or consumed by SAIF.Application. Authentication is infrastructure-provided; this library focuses on programmatic authorization checks, role assignment, and reusable access caching.

Authorization architecture

SAIF.Application uses local programmatic checks that delegate resource authorization to clsSecurityPrincipal. UserAccess caches resource checks, while AppManagerBase exposes application-level accessibility flags derived from a single effective AppSecurityRole value.

flowchart TD
    Caller[Calling code] --> AppManager[AppManagerBase]
    Caller --> Access[UserAccess]
    AppManager --> Role[MarkUpdate / MarkViewOnly / MarkNoAccess]
    Access --> Principal[clsSecurityPrincipal]
    Principal --> Access
    Role --> Result[Accessibility flags]

AD resource catalog

Resource name Purpose Enforcement point Source
(none documented as literals) Resource names are supplied by callers at runtime rather than defined in this library. UserAccess.HasAccess(...); UserAccess.CheckAccess(...) Application\SAIF.Application\UserAccess.vb

Authorization enforcement points

Programmatic authorization checks

Class Method Resource / Role Check type Source
UserAccess HasAccess(inResourceName) Caller-supplied resource name IsAuthorized Application\SAIF.Application\UserAccess.vb
UserAccess CheckAccess(ParamArray inResourceName()) Caller-supplied resource names HasAccess Application\SAIF.Application\UserAccess.vb
AppManagerBase SecurityRole, IsAccessible, IsUpdateable, IsViewOnly, IsRestricted AppSecurityRole (ViewOnly, Update, NoAccess) Role state Application\SAIF.Application\AppManagerBase.vb
AppManagerBase OnCheckSecurity() Role assignment through MarkUpdate(), MarkViewOnly(), MarkNoAccess() Security hook Application\SAIF.Application\AppManagerBase.vb

Security interfaces and contracts

Interface / Class Role Consumers Source
clsSecurityPrincipal Framework security principal used for authorization decisions. UserAccess; AppManagerBase Application\SAIF.Application\UserAccess.vb; Application\SAIF.Application\AppManagerBase.vb
UserAccess Library-local authorization cache wrapper over clsSecurityPrincipal. Application-manager implementations and other callers that need reusable resource checks. Application\SAIF.Application\UserAccess.vb
AppManagerBase Base class that translates security decisions into library-visible accessibility state. Concrete application-manager implementations in consuming applications. Application\SAIF.Application\AppManagerBase.vb

Notes

  • AD resource names listed here use runtime caller input rather than hard-coded string literals in this library.
  • Role-state behavior aligns with BR-001, and cached access behavior aligns with BR-003.

Sources

  • Application\SAIF.Application\AppManagerBase.vb
  • Application\SAIF.Application\Enums.vb
  • Application\SAIF.Application\UserAccess.vb