]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeAuthorization.java
1 package org
.argeo
.cms
.internal
.kernel
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Arrays
;
5 import java
.util
.Collection
;
6 import java
.util
.Collections
;
9 import javax
.security
.auth
.x500
.X500Principal
;
11 import org
.osgi
.service
.useradmin
.Authorization
;
13 class NodeAuthorization
implements Authorization
{
14 private final String name
;
15 private final String displayName
;
16 private final List
<String
> systemRoles
;
17 private final List
<String
> roles
;
19 public NodeAuthorization(String name
, String displayName
,
20 Collection
<String
> systemRoles
, String
[] roles
) {
21 this.name
= new X500Principal(name
).getName();
22 this.displayName
= displayName
;
23 this.systemRoles
= Collections
.unmodifiableList(new ArrayList
<String
>(
25 this.roles
= Collections
.unmodifiableList(Arrays
.asList(roles
));
29 public String
getName() {
34 public boolean hasRole(String name
) {
35 if (systemRoles
.contains(name
))
37 if (roles
.contains(name
))
43 public String
[] getRoles() {
44 int size
= systemRoles
.size() + roles
.size();
45 List
<String
> res
= new ArrayList
<String
>(size
);
46 res
.addAll(systemRoles
);
48 return res
.toArray(new String
[size
]);
52 public int hashCode() {
54 return super.hashCode();
55 return name
.hashCode();
59 public boolean equals(Object obj
) {
60 if (!(obj
instanceof Authorization
))
62 Authorization that
= (Authorization
) obj
;
64 return that
.getName() == null;
65 return name
.equals(that
.getName());
69 public String
toString() {