using ZB.MOM.WW.OtOpcUa.Core.Abstractions;
namespace ZB.MOM.WW.OtOpcUa.Core.Authorization;
///
/// Evaluates whether a session is authorized to perform an OPC UA
/// on the node addressed by a . Phase 6.2 Stream B central surface.
///
///
/// Data-plane only. Reads NodeAcl rows joined against the session's resolved LDAP
/// groups (via ). Must not depend on the control-plane
/// admin-role mapping table per decision #150 — the two concerns share zero runtime code.
///
public interface IPermissionEvaluator
{
///
/// Authorize the requested operation for the session. Callers (DriverNodeManager
/// Read / Write / HistoryRead / Subscribe / Browse / Call dispatch) map their native
/// failure to BadUserAccessDenied per OPC UA Part 4 when the result is not
/// .
///
AuthorizationDecision Authorize(UserAuthorizationState session, OpcUaOperation operation, NodeScope scope);
}