mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 14:12:11 +00:00
Bug 5047: Simplified the various map and filter methods in
SecurityService by removing the redundant HasPermissions parameter. This can now be obtained from the given WithQualifiedObjectIdentifier values.
This commit is contained in:
1 parent
2c9cb5cbaa
commit
b330981b40
4 files changed
+30
-32
No files matched your search
@@ -1082,7 +1082,7 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
@Override
|
||||
public Iterable<RoleDefinition> getRoleDefinitions() {
|
||||
Collection<RoleDefinition> result = new ArrayList<>();
|
||||
filterObjectsWithPermissionForCurrentUser(SecuredSecurityTypes.ROLE_DEFINITION, DefaultActions.READ,
|
||||
filterObjectsWithPermissionForCurrentUser(DefaultActions.READ,
|
||||
store.getRoleDefinitions(), t -> result.add(t));
|
||||
return result;
|
||||
}
|
||||
@@ -1822,26 +1822,26 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends WithQualifiedObjectIdentifier> void filterObjectsWithPermissionForCurrentUser(HasPermissions permittedObject,
|
||||
public <T extends WithQualifiedObjectIdentifier> void filterObjectsWithPermissionForCurrentUser(
|
||||
HasPermissions.Action action, Iterable<T> objectsToFilter,
|
||||
Consumer<T> filteredObjectsConsumer) {
|
||||
objectsToFilter.forEach(objectToCheck -> {
|
||||
if (SecurityUtils.getSubject().isPermitted(
|
||||
permittedObject.getStringPermissionForObject(action, objectToCheck))) {
|
||||
objectToCheck.getIdentifier().getStringPermission(action))) {
|
||||
filteredObjectsConsumer.accept(objectToCheck);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends WithQualifiedObjectIdentifier> void filterObjectsWithPermissionForCurrentUser(HasPermissions permittedObject,
|
||||
public <T extends WithQualifiedObjectIdentifier> void filterObjectsWithPermissionForCurrentUser(
|
||||
HasPermissions.Action[] actions, Iterable<T> objectsToFilter,
|
||||
Consumer<T> filteredObjectsConsumer) {
|
||||
objectsToFilter.forEach(objectToCheck -> {
|
||||
boolean isPermitted = actions.length > 0;
|
||||
for (int i = 0; i < actions.length; i++) {
|
||||
isPermitted &= SecurityUtils.getSubject().isPermitted(
|
||||
permittedObject.getStringPermissionForObject(actions[i], objectToCheck));
|
||||
objectToCheck.getIdentifier().getStringPermission(actions[i]));
|
||||
}
|
||||
if (isPermitted) {
|
||||
filteredObjectsConsumer.accept(objectToCheck);
|
||||
@@ -1852,13 +1852,13 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
/** Filters the objects with any of the given permissions for the current user */
|
||||
@Override
|
||||
public <T extends WithQualifiedObjectIdentifier> void filterObjectsWithAnyPermissionForCurrentUser(
|
||||
HasPermissions permittedObject, HasPermissions.Action[] actions, Iterable<T> objectsToFilter,
|
||||
HasPermissions.Action[] actions, Iterable<T> objectsToFilter,
|
||||
Consumer<T> filteredObjectsConsumer) {
|
||||
objectsToFilter.forEach(objectToCheck -> {
|
||||
boolean isPermitted = false;
|
||||
for (int i = 0; i < actions.length; i++) {
|
||||
if (SecurityUtils.getSubject()
|
||||
.isPermitted(permittedObject.getStringPermissionForObject(actions[i], objectToCheck))) {
|
||||
.isPermitted(objectToCheck.getIdentifier().getStringPermission(actions[i]))) {
|
||||
isPermitted = true;
|
||||
break;
|
||||
}
|
||||
@@ -1870,20 +1870,20 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends WithQualifiedObjectIdentifier, R> List<R> mapAndFilterByReadPermissionForCurrentUser(HasPermissions permittedObject,
|
||||
public <T extends WithQualifiedObjectIdentifier, R> List<R> mapAndFilterByReadPermissionForCurrentUser(
|
||||
Iterable<T> objectsToFilter, Function<T, R> filteredObjectsMapper) {
|
||||
final List<R> result = new ArrayList<>();
|
||||
filterObjectsWithPermissionForCurrentUser(permittedObject, DefaultActions.READ, objectsToFilter,
|
||||
filterObjectsWithPermissionForCurrentUser(DefaultActions.READ, objectsToFilter,
|
||||
filteredObject -> result.add(filteredObjectsMapper.apply(filteredObject)));
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends WithQualifiedObjectIdentifier, R> List<R> mapAndFilterByExplicitPermissionForCurrentUser(HasPermissions permittedObject,
|
||||
public <T extends WithQualifiedObjectIdentifier, R> List<R> mapAndFilterByExplicitPermissionForCurrentUser(
|
||||
HasPermissions.Action[] actions, Iterable<T> objectsToFilter,
|
||||
Function<T, R> filteredObjectsMapper) {
|
||||
final List<R> result = new ArrayList<>();
|
||||
filterObjectsWithPermissionForCurrentUser(permittedObject, actions, objectsToFilter,
|
||||
filterObjectsWithPermissionForCurrentUser(actions, objectsToFilter,
|
||||
filteredObject -> result.add(filteredObjectsMapper.apply(filteredObject)));
|
||||
return result;
|
||||
}
|
||||
@@ -1893,7 +1893,7 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
|
||||
HasPermissions permittedObject, HasPermissions.Action[] actions, Iterable<T> objectsToFilter,
|
||||
Function<T, R> filteredObjectsMapper) {
|
||||
final List<R> result = new ArrayList<>();
|
||||
filterObjectsWithAnyPermissionForCurrentUser(permittedObject, actions, objectsToFilter,
|
||||
filterObjectsWithAnyPermissionForCurrentUser(actions, objectsToFilter,
|
||||
filteredObject -> result.add(filteredObjectsMapper.apply(filteredObject)));
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user