Example #1
0
  @Override
  public boolean hasRole(RoleModel role) {
    Set<RoleModel> roles = getRoleMappings();
    if (roles.contains(role)) return true;

    for (RoleModel mapping : roles) {
      if (mapping.hasRole(role)) return true;
    }
    return false;
  }
Example #2
0
  @Override
  public boolean hasScope(RoleModel role) {
    if (updated != null) return updated.hasScope(role);
    if (cached.isFullScopeAllowed() || cached.getScope().contains(role.getId())) return true;

    Set<RoleModel> roles = getScopeMappings();

    for (RoleModel mapping : roles) {
      if (mapping.hasRole(role)) return true;
    }

    roles = getRoles();
    if (roles.contains(role)) return true;

    for (RoleModel mapping : roles) {
      if (mapping.hasRole(role)) return true;
    }
    return false;
  }
Example #3
0
  public static void applyScope(
      RoleModel role, RoleModel scope, Set<RoleModel> visited, Set<RoleModel> requested) {
    if (visited.contains(scope)) return;
    visited.add(scope);
    if (role.hasRole(scope)) {
      requested.add(scope);
      return;
    }
    if (!scope.isComposite()) return;

    for (RoleModel contained : scope.getComposites()) {
      applyScope(role, contained, visited, requested);
    }
  }