namespace ZB.MOM.WW.ScadaBridge.Security; /// /// Single source of truth for role-name string literals used across the /// Security module and downstream authorization checks. /// /// /// /// Role names appear in three independent contexts: /// (LDAP-group → role resolution), /// (policy RequireClaim values + the audit role arrays), and at LDAP /// mapping rows configured by an operator. Holding the literals here means a /// rename either succeeds everywhere or fails to compile, eliminating the /// "string drift" class that Security-018 documented. /// /// /// Task 1.7 canonicalization (auth normalization): role VALUES were /// standardized onto the canonical six (Viewer/Operator/Engineer/Designer/ /// Deployer/Administrator; only four are used by ScadaBridge). The legacy /// ScadaBridge role names were renamed/collapsed as follows: /// /// AdminAdministrator /// DesignDesigner /// DeploymentDeployer /// AuditAdministrator (COLLAPSE — accepted /// separation-of-duties loss; a former audit-only user gains the full admin /// surface) /// AuditReadOnlyViewer (COLLAPSE — keeps /// audit-read + nav, loses bulk export, which it never had) /// /// Operator and Engineer exist in the canonical vocabulary but are /// unused by ScadaBridge, so they are intentionally not declared here. /// /// public static class Roles { public const string Administrator = "Administrator"; public const string Designer = "Designer"; public const string Deployer = "Deployer"; public const string Viewer = "Viewer"; }