X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAggregatingAuthorization.java;h=758d3e35515aa5af947b7227c77006c92f02a98f;hb=1f642af942db627207d8b171dd2fc4db6dce746a;hp=6729a2c2df1167fa873c18ebbc6e14cb356e59ae;hpb=fba24f5ac520b99b3ac75781c95f11c48ac6252f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java index 6729a2c2d..758d3e355 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java @@ -1,10 +1,9 @@ package org.argeo.osgi.useradmin; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Set; import org.osgi.service.useradmin.Authorization; @@ -14,13 +13,16 @@ class AggregatingAuthorization implements Authorization { private final List systemRoles; private final List roles; - public AggregatingAuthorization(String name, String displayName, - Collection systemRoles, String[] roles) { + public AggregatingAuthorization(String name, String displayName, Set systemRoles, String[] roles) { this.name = name; this.displayName = displayName; - this.systemRoles = Collections.unmodifiableList(new ArrayList( - systemRoles)); - this.roles = Collections.unmodifiableList(Arrays.asList(roles)); + this.systemRoles = Collections.unmodifiableList(new ArrayList(systemRoles)); + List temp = new ArrayList<>(); + for (String role : roles) { + if (!temp.contains(role)) + temp.add(role); + } + this.roles = Collections.unmodifiableList(temp); } @Override