use of org.apache.archiva.redback.rbac.Operation in project archiva by apache.
the class ArchivaRbacManager method getOperation.
@Override
public Operation getOperation(String operationName) throws RbacObjectNotFoundException, RbacManagerException {
Operation el = operationsCache.get(operationName);
if (el != null) {
return el;
}
Exception lastException = null;
for (RBACManager rbacManager : rbacManagersPerId.values()) {
try {
Operation o = rbacManager.getOperation(operationName);
if (o != null) {
operationsCache.put(operationName, o);
return o;
}
} catch (Exception e) {
lastException = e;
}
}
if (lastException != null) {
throw new RbacManagerException(lastException.getMessage(), lastException);
}
return null;
}
use of org.apache.archiva.redback.rbac.Operation in project archiva by apache.
the class ArchivaRbacManager method getAllOperations.
@Override
public List<Operation> getAllOperations() throws RbacManagerException {
Map<String, Operation> allOperations = new HashMap<>();
boolean allFailed = true;
Exception lastException = null;
for (RBACManager rbacManager : rbacManagersPerId.values()) {
try {
List<Operation> operations = rbacManager.getAllOperations();
for (Operation o : operations) {
allOperations.put(o.getName(), o);
}
allFailed = false;
} catch (Exception e) {
lastException = e;
}
}
if (lastException != null && allFailed) {
throw new RbacManagerException(lastException.getMessage(), lastException);
}
return new ArrayList<>(allOperations.values());
}
Aggregations