예제 #1
0
 /**
  * Modify a user
  * 
  * @param string $username The username to query
  * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
  * @param bool $isGUID Is the username passed a GUID or a samAccountName
  * @return bool
  */
 public function modify($username, $attributes, $isGUID = false)
 {
     if ($username === NULL) {
         return "Missing compulsory field [username]";
     }
     if (array_key_exists("password", $attributes) && !$this->adldap->getUseSSL() && !$this->adldap->getUseTLS()) {
         throw new adLDAPException('SSL/TLS must be configured on your webserver and enabled in the class to set passwords.');
     }
     // Find the dn of the user
     $userDn = $this->dn($username, $isGUID);
     if ($userDn === false) {
         return false;
     }
     // Translate the update to the LDAP schema
     $mod = $this->adldap->adldap_schema($attributes);
     // Check to see if this is an enabled status update
     if (!$mod && !array_key_exists("enabled", $attributes)) {
         return false;
     }
     // Set the account control attribute (only if specified)
     if (array_key_exists("enabled", $attributes)) {
         if ($attributes["enabled"]) {
             $controlOptions = array("NORMAL_ACCOUNT");
         } else {
             $controlOptions = array("NORMAL_ACCOUNT", "ACCOUNTDISABLE");
         }
         $mod["userAccountControl"][0] = $this->accountControl($controlOptions);
     }
     // Do the update
     $result = @ldap_modify($this->adldap->getLdapConnection(), $userDn, $mod);
     if ($result == false) {
         return false;
     }
     return true;
 }
예제 #2
0
 /**
  * Mail enable a contact
  * Allows email to be sent to them through Exchange
  * 
  * @param string $distinguishedName The contact to mail enable
  * @param string $emailAddress The email address to allow emails to be sent through
  * @param string $mailNickname The mailnickname for the contact in Exchange.  If NULL this will be set to the display name
  * @return bool
  */
 public function contactMailEnable($distinguishedName, $emailAddress, $mailNickname = NULL)
 {
     if ($distinguishedName === NULL) {
         return "Missing compulsory field [distinguishedName]";
     }
     if ($emailAddress === NULL) {
         return "Missing compulsory field [emailAddress]";
     }
     if ($mailNickname !== NULL) {
         // Find the dn of the user
         $user = $this->adldap->contact()->info($distinguishedName, array("cn", "displayname"));
         if ($user[0]["displayname"] === NULL) {
             return false;
         }
         $mailNickname = $user[0]['displayname'][0];
     }
     $attributes = array("email" => $emailAddress, "contact_email" => "SMTP:" . $emailAddress, "exchange_proxyaddress" => "SMTP:" . $emailAddress, "exchange_mailnickname" => $mailNickname);
     // Translate the update to the LDAP schema
     $mod = $this->adldap->adldap_schema($attributes);
     // Check to see if this is an enabled status update
     if (!$mod) {
         return false;
     }
     // Do the update
     $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
     if ($result == false) {
         return false;
     }
     return true;
 }
예제 #3
0
 /**
  * Modify a contact
  * 
  * @param string $distinguishedName The contact to query
  * @param array $attributes The attributes to modify.  Note if you set the enabled attribute you must not specify any other attributes
  * @return bool
  */
 public function modify($distinguishedName, $attributes)
 {
     if ($distinguishedName === NULL) {
         return "Missing compulsory field [distinguishedname]";
     }
     // Translate the update to the LDAP schema
     $mod = $this->adldap->adldap_schema($attributes);
     // Check to see if this is an enabled status update
     if (!$mod) {
         return false;
     }
     // Do the update
     $result = ldap_modify($this->adldap->getLdapConnection(), $distinguishedName, $mod);
     if ($result == false) {
         return false;
     }
     return true;
 }