X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fuseradmin%2FJcrAuthorization.java;fp=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fuseradmin%2FJcrAuthorization.java;h=76f67ce71671b2a4dfcd9720f3a90073e39a698d;hb=6e7769555f6ee64159bbdb5780e34957d6d8895e;hp=0000000000000000000000000000000000000000;hpb=759a7c0396796565b231738b855c8b0a8413be6b;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/useradmin/JcrAuthorization.java b/org.argeo.cms/src/org/argeo/cms/internal/useradmin/JcrAuthorization.java new file mode 100644 index 000000000..76f67ce71 --- /dev/null +++ b/org.argeo.cms/src/org/argeo/cms/internal/useradmin/JcrAuthorization.java @@ -0,0 +1,39 @@ +package org.argeo.cms.internal.useradmin; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.argeo.security.jcr.JcrUserDetails; +import org.osgi.service.useradmin.Authorization; +import org.springframework.security.core.GrantedAuthority; + +class JcrAuthorization implements Authorization { + private final String name; + private final List roles; + + public JcrAuthorization(JcrUserDetails userDetails) { + this.name = userDetails.getUsername(); + List t = new ArrayList(); + for (GrantedAuthority ga : userDetails.getAuthorities()) { + t.add(ga.getAuthority()); + } + roles = Collections.unmodifiableList(t); + } + + @Override + public String getName() { + return name; + } + + @Override + public boolean hasRole(String name) { + return roles.contains(name); + } + + @Override + public String[] getRoles() { + return roles.toArray(new String[roles.size()]); + } + +}