]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/kernel/NodeAuthorization.java
Prepare release.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / NodeAuthorization.java
1 package org.argeo.cms.internal.kernel;
2
3 import java.util.ArrayList;
4 import java.util.Arrays;
5 import java.util.Collection;
6 import java.util.Collections;
7 import java.util.List;
8
9 import javax.security.auth.x500.X500Principal;
10
11 import org.osgi.service.useradmin.Authorization;
12
13 @Deprecated
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;
19
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>(
25 systemRoles));
26 this.roles = Collections.unmodifiableList(Arrays.asList(roles));
27 }
28
29 @Override
30 public String getName() {
31 return name;
32 }
33
34 @Override
35 public boolean hasRole(String name) {
36 if (systemRoles.contains(name))
37 return true;
38 if (roles.contains(name))
39 return true;
40 return false;
41 }
42
43 @Override
44 public String[] getRoles() {
45 int size = systemRoles.size() + roles.size();
46 List<String> res = new ArrayList<String>(size);
47 res.addAll(systemRoles);
48 res.addAll(roles);
49 return res.toArray(new String[size]);
50 }
51
52 @Override
53 public int hashCode() {
54 if (name == null)
55 return super.hashCode();
56 return name.hashCode();
57 }
58
59 @Override
60 public boolean equals(Object obj) {
61 if (!(obj instanceof Authorization))
62 return false;
63 Authorization that = (Authorization) obj;
64 if (name == null)
65 return that.getName() == null;
66 return name.equals(that.getName());
67 }
68
69 @Override
70 public String toString() {
71 return displayName;
72 }
73
74 }