package edu.tamu.tcat.account.apacheds;

import java.util.List;
import java.util.Map;

//
/**
 * This interface provides mutator access to an LDAP server
 */
public interface LdapHelperMutator
{
   void changePasswordUserPassword(String userDistinguishedName, String password) throws LdapException;
   void changePasswordUnicodePassword(String userDistinguishedName, String password) throws LdapException;
   
//   void addUserToGroup(String userDn, String groupDn) throws LdapException;
   void createUser(String cn, String ou, String unicodePassword, String userPassword, List<String> objectClasses, 
		   String instanceType, String objectCategory, Map<String, String> attributes) throws LdapException;
   //   /**
//    * Attempt to add the specified attribute value to the userDistinguishedName in ouSearchPrefix
//    * @ param ouSearchPrefix if null ou search prefix will be extracted from userDistinguishedName
//    * */
//   void addAttribute(String ouSearchPrefix, String userDistinguishedName, String attributeId, Object value) throws LdapException;
//
//   /**
//    * Attempt to remove the specified attribute value from the userDistinguishedName in ouSearchPrefix
//    *  @ param ouSearchPrefix if null ou search prefix will be extracted from userDistinguishedName
//    */
//   void removeAttribute(String ouSearchPrefix, String userDistinguishedName, String attributeId, Object value) throws LdapException;
//
//   /**
//    * Attempt to remove all the values for the specified attribute from the userDistinguishedName in ouSearchPrefix
//    * @ param ouSearchPrefix if null ou search prefix will be extracted from userDistinguishedName
//    */
//   void removeAttribute(String ouSearchPrefix, String userDistinguishedName, String attributeId) throws LdapException;
}

@@ -403,16 +403,45 @@
 on;%0A   %0A
+//TODO add group management %0A
 //   voi
@@ -502,32 +502,822 @@
  LdapException;%0A
+   %0A   /**%0A * DN of new user will be CN=&lt;cn&gt;,OU=&lt;ou&gt;%0A * %0A * @param cn new user common name.  cannot be null or empty.  Value does not start with CN=%0A * @param ou organizational unit for new user.  Value does not start with OU=%0A * @param ou organizational unit for new user.  Value does not start with OU=%0A * @param unicodePassword may be null.  if backing ldap uses unicode passwords, must not be null or empty%0A * @param userPassword may be null.  if backing ldap uses userpassword, must not be null or empty%0A * @param objectClasses classes the new user belongs to ie user, person, top, organizationalPerson.  must have ata least 1 value%0A * @param instanceType %0A * @param objectCategory%0A * @param attributes additional attributes to assign to user%0A * @throws LdapException %0A */%0A
    void createUs
@@ -1415,16 +1415,16 @@
 asses, %0A
-
 %09%09   Str
@@ -1518,16 +1518,18 @@
 eption;%0A
+%0A%0A
    //   

add basic documentation