Add Authorization, with chained groups
[lgpl/argeo-commons.git] / org.argeo.security.core / src / org / argeo / osgi / useradmin / LdifUser.java
index 1de18c5b42be9a9468e64e7c2784751e094b7377..379ac23ab2ca6349203655b318b4166efc8e620d 100644 (file)
@@ -1,17 +1,20 @@
 package org.argeo.osgi.useradmin;
 
+import java.util.ArrayList;
 import java.util.Dictionary;
-import java.util.Hashtable;
+import java.util.List;
 
 import javax.naming.directory.Attributes;
 import javax.naming.ldap.LdapName;
 
 import org.osgi.service.useradmin.User;
-import org.osgi.service.useradmin.UserAdmin;
 
 class LdifUser implements User {
+       // optimisation
+       List<LdifGroup> directMemberOf = new ArrayList<LdifGroup>();
+
        private final LdapName dn;
-       private final Attributes attributes;
+       private Attributes attributes;
 
        LdifUser(LdapName dn, Attributes attributes) {
                this.dn = dn;
@@ -56,4 +59,25 @@ class LdifUser implements User {
                return attributes;
        }
 
+       @Override
+       public int hashCode() {
+               return dn.hashCode();
+       }
+
+       @Override
+       public boolean equals(Object obj) {
+               if (this == obj)
+                       return true;
+               if (obj instanceof LdifUser) {
+                       LdifUser that = (LdifUser) obj;
+                       return this.dn.equals(that.dn);
+               }
+               return false;
+       }
+
+       @Override
+       public String toString() {
+               return dn.toString();
+       }
+
 }