resolveConfiguredGuard<TContext, TResponse> function

AuthGuard<TContext, TResponse>? resolveConfiguredGuard<TContext, TResponse>({
  1. required GuardDefinition definition,
  2. required AuthGuard<TContext, TResponse> authenticatedGuard(
    1. String realm
    ),
  3. required AuthGuard<TContext, TResponse> rolesGuard(
    1. List<String> roles,
    2. bool any
    ),
})

Resolves a generic auth guard from definition.

Returns null when a role guard has no roles to check.

Implementation

AuthGuard<TContext, TResponse>? resolveConfiguredGuard<TContext, TResponse>({
  required GuardDefinition definition,
  required AuthGuard<TContext, TResponse> Function(String realm)
  authenticatedGuard,
  required AuthGuard<TContext, TResponse> Function(List<String> roles, bool any)
  rolesGuard,
}) {
  switch (definition.type) {
    case GuardType.authenticated:
      final realm = definition.realm == null || definition.realm!.trim().isEmpty
          ? 'Restricted'
          : definition.realm!;
      return authenticatedGuard(realm);
    case GuardType.roles:
      if (definition.roles.isEmpty) {
        return null;
      }
      return rolesGuard(definition.roles, definition.any);
  }
}