]>
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
;
14 class NodeAuthorization
implements Authorization
{
15 private final String name
;
16 private final String displayName
;
17 private final List
<String
> systemRoles
;
18 private final List
<String
> roles
;
20 public NodeAuthorization(String name
, String displayName
,
21 Collection
<String
> systemRoles
, String
[] roles
) {
22 this.name
= new X500Principal(name
).getName();
23 this.displayName
= displayName
;
24 this.systemRoles
= Collections
.unmodifiableList(new ArrayList
<String
>(
26 this.roles
= Collections
.unmodifiableList(Arrays
.asList(roles
));
30 public String
getName() {
35 public boolean hasRole(String name
) {
36 if (systemRoles
.contains(name
))
38 if (roles
.contains(name
))
44 public String
[] getRoles() {
45 int size
= systemRoles
.size() + roles
.size();
46 List
<String
> res
= new ArrayList
<String
>(size
);
47 res
.addAll(systemRoles
);
49 return res
.toArray(new String
[size
]);
53 public int hashCode() {
55 return super.hashCode();
56 return name
.hashCode();
60 public boolean equals(Object obj
) {
61 if (!(obj
instanceof Authorization
))
63 Authorization that
= (Authorization
) obj
;
65 return that
.getName() == null;
66 return name
.equals(that
.getName());
70 public String
toString() {