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 }