ClaimSecurity¶
ClaimSecurity is the per-claim confidentiality evaluator: it combines a claim's sensitivity attributes (worker-conflict, exposure, health-issue, hostile-worker) with the current user's AD resource membership into four independent boolean access flags. It implements a fail-open model — every flag defaults to True and is denied only when a claim explicitly triggers the corresponding sensitivity attribute and the user lacks the matching resource.
Purpose¶
- Recomputes the four claim-confidentiality access flags for a specific claim via
CheckClaim(BR-CLM-007, BR-CLM-008, BR-CLM-009, BR-CLM-010). - Owns the underlying
ClaimUserAccessaccessor used to resolve AD resource membership for the current user. - Consumed by
ClaimAppManager.OnCheckSecurity(which enforces only the conflict flag) and bySAIF.Application.Claim.Legal/LegalManagerBase.vb/clsCaseSearchManager.vb, which re-test the exposure flag themselves.
Context¶
- Namespace:
SAIF.Application.Claim - Assembly/package:
SAIF.Application.Claim(embedded, ProjectReference)
Public members¶
| Member | Signature | Purpose |
|---|---|---|
New(inUserAccess) |
Public Sub New(inUserAccess As ClaimUserAccess) |
Binds an already-constructed AD resource accessor. |
New(inPrincipal) |
Public Sub New(inPrincipal As clsSecurityPrincipal) |
Builds a ClaimUserAccess from the supplied principal and binds it. |
UserAccess |
Public ReadOnly Property As ClaimUserAccess |
The underlying AD resource accessor consulted by CheckClaim. |
ConflictAccess |
Public ReadOnly Property As Boolean |
False only when the claim is a worker-conflict claim and the user lacks ConflictClaim; the only flag ClaimAppManager.OnCheckSecurity enforces as a hard block (BR-CLM-007). |
ExposureAccess |
Public ReadOnly Property As Boolean |
False only when the claim is an exposure claim and the user lacks ExposureClaim; enforcement is left to consumers (BR-CLM-008). |
SecureClaimAccess |
Public ReadOnly Property As Boolean |
False only when the claim has a hostile worker and the user lacks SecureClaim; enforcement is left to consumers (BR-CLM-010). |
HealthIssueAccess |
Public ReadOnly Property As Boolean |
False only when the claim is both a health-issue and exposure claim and the user lacks ExposureClaim; the CollateralHealthClaim resource is never consulted (BR-CLM-009). |
CheckClaim(inClaim) |
Public Sub CheckClaim(inClaim As clsClaimData) |
Recomputes all four access flags against the supplied claim, resetting every flag to permissive first. |
Behavioral notes¶
- Only
ConflictAccessis tested byClaimAppManager.OnCheckSecurity;ExposureAccess,SecureClaimAccess, andHealthIssueAccessare computed but advisory — a consumer that does not re-test them silently bypasses those controls (BR-CLM-012). - Fail-open default: a claim whose sensitivity flags are all false is fully accessible to any authenticated user.
- A private field
m_HasAccessToClaimis declared and initialized toFalsebut never read or written elsewhere — dead state.** - This type is
<Serializable()>, so a resolved verdict can cross app-domain/session boundaries and could become stale if serialized across an AD group-membership change.*
Constraints and usage notes¶
- Consumers that need to enforce exposure, hostile-worker, or health-issue restrictions (e.g.
SAIF.Application.Claim.Legal/LegalManagerBase.vb) must explicitly test the corresponding flag themselves; this type does not block access on their behalf.
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
SAIF.Application.Claim/ClaimSecurity.vb