/** * 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; }
/** * 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; }
/** * 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; }