mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 16:35:45 +01:00
Remove duplicate verbs
This commit is contained in:
@@ -21,10 +21,9 @@ import java.util.LinkedHashSet;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static java.util.Collections.unmodifiableCollection;
|
import static java.util.Collections.unmodifiableCollection;
|
||||||
import static java.util.Collections.unmodifiableList;
|
import static java.util.stream.Collectors.toList;
|
||||||
|
|
||||||
class SystemRepositoryPermissionProvider {
|
class SystemRepositoryPermissionProvider {
|
||||||
|
|
||||||
@@ -36,8 +35,8 @@ class SystemRepositoryPermissionProvider {
|
|||||||
@Inject
|
@Inject
|
||||||
public SystemRepositoryPermissionProvider(PluginLoader pluginLoader) {
|
public SystemRepositoryPermissionProvider(PluginLoader pluginLoader) {
|
||||||
AvailableRepositoryPermissions availablePermissions = readAvailablePermissions(pluginLoader);
|
AvailableRepositoryPermissions availablePermissions = readAvailablePermissions(pluginLoader);
|
||||||
this.availableVerbs = unmodifiableList(new ArrayList<>(availablePermissions.availableVerbs));
|
this.availableVerbs = removeDuplicates(availablePermissions.availableVerbs);
|
||||||
this.availableRoles = unmodifiableList(new ArrayList<>(availablePermissions.availableRoles.stream().map(r -> new RepositoryRole(r.name, r.verbs.verbs, "system")).collect(Collectors.toList())));
|
this.availableRoles = removeDuplicates(availablePermissions.availableRoles.stream().map(r -> new RepositoryRole(r.name, r.verbs.verbs, "system")).collect(toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> availableVerbs() {
|
public List<String> availableVerbs() {
|
||||||
@@ -109,6 +108,10 @@ class SystemRepositoryPermissionProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static <T> List<T> removeDuplicates(Collection<T> items) {
|
||||||
|
return items.stream().distinct().collect(toList());
|
||||||
|
}
|
||||||
|
|
||||||
private static class AvailableRepositoryPermissions {
|
private static class AvailableRepositoryPermissions {
|
||||||
private final Collection<String> availableVerbs;
|
private final Collection<String> availableVerbs;
|
||||||
private final Collection<RoleDescriptor> availableRoles;
|
private final Collection<RoleDescriptor> availableRoles;
|
||||||
|
|||||||
Reference in New Issue
Block a user