logDecision static method

void logDecision(
  1. String source,
  2. AccessDecision decision
)

Implementation

static void logDecision(String source, AccessDecision decision) {
  if (!enabled || kReleaseMode) return;

  final details = <String>[];
  if (decision.missingRoles.isNotEmpty) {
    details.add('missingRoles=${decision.missingRoles.join(',')}');
  }
  if (decision.missingPermissions.isNotEmpty) {
    details.add('missingPermissions=${decision.missingPermissions.join(',')}');
  }
  if (decision.failedCondition) {
    details.add('failedCondition=true');
  }
  if (decision.reasonCode != null) {
    details.add('reasonCode=${decision.reasonCode}');
  }

  debugPrint(
    '[ui_guard][$source] allowed=${decision.allowed}${details.isEmpty ? '' : ' | ${details.join(' | ')}'}',
  );
}