]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.core/src/org/argeo/osgi/useradmin/LdifAuthorization.java
1 package org
.argeo
.osgi
.useradmin
;
3 import java
.util
.ArrayList
;
6 import org
.osgi
.service
.useradmin
.Authorization
;
7 import org
.osgi
.service
.useradmin
.Role
;
9 public class LdifAuthorization
implements Authorization
{
10 private final LdifUser user
;
12 public LdifAuthorization(LdifUser user
) {
17 public String
getName() {
20 return user
.getName();
24 public boolean hasRole(String name
) {
25 for (Role role
: getAllRoles()) {
26 if (role
.getName().equals(name
))
33 public String
[] getRoles() {
34 List
<Role
> allRoles
= getAllRoles();
36 allRoles
.add(0, user
);
37 String
[] res
= new String
[allRoles
.size()];
38 for (int i
= 0; i
< allRoles
.size(); i
++)
39 res
[i
] = allRoles
.get(i
).getName();
43 List
<Role
> getAllRoles() {
44 List
<Role
> allRoles
= new ArrayList
<Role
>();
46 collectRoles(user
, allRoles
);
48 collectAnonymousRoles(allRoles
);
52 private void collectRoles(LdifUser user
, List
<Role
> allRoles
) {
53 for (LdifGroup group
: user
.directMemberOf
) {
54 // TODO check for loops
56 collectRoles(group
, allRoles
);
60 private void collectAnonymousRoles(List
<Role
> allRoles
) {
61 // TODO gather anonymous roles