View Javadoc
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  }