---
title: SecurityRoles
summary: API reference for SecurityRoles.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
---

# SecurityRoles

`SecurityRoles` (namespace `SAIF.Core.Contracts.Agencies.Imaging`) declares the Agencies imaging AD resource-name constants; `EditRole`, `ConfidentialRole`, and `DeleteRole` have a compiled enforcement point in SAIF.Services authorization checks, while `ViewRole` has no reference anywhere in the repository — see [Security and authorization](../../security-authorization.md) for the full catalog, enforcement coverage, and tech-debt findings across all 16 constants in this library.

## Purpose
- Declares the Agencies imaging AD resource-name constants; `EditRole`, `ConfidentialRole`, and `DeleteRole` are consumed by compiled SAIF.Services authorization checks, while `ViewRole` is unreferenced anywhere in the repository — see [Security and authorization](../../security-authorization.md) for the full 16-constant catalog, enforcement coverage, and tech-debt findings.

## Context
- Namespace: `SAIF.Core.Contracts.Agencies.Imaging`
- Kind: Class
- Assembly/package: `SAIF.Core` (NuGet package `SAIF.SAIFCode.Core`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `ViewRole` | `public const string ViewRole = "AgencyImagingView";` | Named constant value ("AgencyImagingView")*. |
| `EditRole` | `public const string EditRole = "AgencyImagingEdit";` | Named constant value ("AgencyImagingEdit")*. |
| `ConfidentialRole` | `public const string ConfidentialRole = "AgencyImagingConfidential";` | Named constant value ("AgencyImagingConfidential")*. |
| `DeleteRole` | `public const string DeleteRole = "AgencyImagingDeleted";` | Named constant value ("AgencyImagingDeleted")*. |

## Behavioral notes
- The environment suffix (`Resource`/`TestResource`) is not part of the literal constant value; it is appended at runtime by the external `IUserProfileService`/`ISaifUserProfile` authorization check*.

> **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
- Core/SAIF.Core/Contracts/Agencies/Imaging/SecurityRoles.cs
