namespace ZB.MOM.WW.OtOpcUa.OpcUaServer.Security;
///
/// Canonical string constants for the OPC UA data-plane roles the LDAP group→role map
/// produces and carries onto the session identity.
/// These are distinct from the control-plane AdminRole enum (Admin UI capabilities) — the
/// two planes share zero runtime code path by design.
///
/// Across the codebase these data-plane roles (ReadOnly, WriteOperate,
/// WriteTune, WriteConfigure, AlarmAck, …) are used as bare strings
/// (they originate as LDAP group names mapped through RoleMapper). T18 introduced this
/// single shared const for the one role the inbound alarm-method gate reads, so the gate and
/// its tests reference one symbol instead of a re-typed literal. Comparison is case-insensitive
/// (the role set is built with ), so the
/// gate matches with that comparer too.
///
///
public static class OpcUaDataPlaneRoles
{
/// The role that grants OPC UA Part 9 alarm acknowledge / confirm / shelve / comment
/// authority. A session must carry this role for the inbound alarm-condition method handlers to
/// route the command to the engine; absent it, the call is denied with
/// BadUserAccessDenied.
public const string AlarmAck = "AlarmAck";
/// The role that grants authority to write a writable equipment-tag variable node
/// (FreeAccess / Operate attributes). A session must carry this role for the inbound
/// OnWriteValue handler to route the value to the backing driver; absent it the
/// write is denied with BadUserAccessDenied before any driver call.
public const string WriteOperate = "WriteOperate";
}