Exemple #1
0
 /**
  * inspect set password
  * 
  * @param string   $_userId
  * @param string   $_password
  * @param boolean  $_encrypt
  * @param boolean  $_mustChange
  * @param array    $_ldapData    the data to be written to ldap
  */
 public function inspectSetPassword($_userId, $_password, $_encrypt, $_mustChange, array &$_ldapData)
 {
     if ($_encrypt !== true) {
         Tinebase_Core::getLogger()->crit(__METHOD__ . '::' . __LINE__ . ' can not transform crypted password into nt/lm samba password. Make sure to reset password for user ' . $_userId);
     } else {
         $_ldapData['sambantpassword'] = Tinebase_User_Abstract::encryptPassword($_password, Tinebase_User_Abstract::ENCRYPT_NTPASSWORD);
         $_ldapData['sambalmpassword'] = array();
         if ($_mustChange === true) {
             $_ldapData['sambapwdmustchange'] = '1';
             $_ldapData['sambapwdcanchange'] = '1';
             $_ldapData['sambapwdlastset'] = array();
         } else {
             if ($_mustChange === false) {
                 $_ldapData['sambapwdmustchange'] = '2147483647';
                 $_ldapData['sambapwdcanchange'] = '1';
                 $_ldapData['sambapwdlastset'] = Tinebase_DateTime::now()->getTimestamp();
             } else {
                 if ($_mustChange === null && $_userId instanceof Tinebase_Model_FullUser && isset($_userId->sambaSAM) && isset($_userId->sambaSAM->pwdMustChange) && isset($_userId->sambaSAM->pwdCanChange)) {
                     $_ldapData['sambapwdmustchange'] = $_userId->sambaSAM->pwdMustChange->getTimestamp();
                     $_ldapData['sambapwdcanchange'] = $_userId->sambaSAM->pwdCanChange->getTimestamp();
                     $_ldapData['sambapwdlastset'] = array();
                 }
             }
         }
     }
 }
Exemple #2
0
 /**
  * set the password for given account
  * 
  * @param   int $_accountId
  * @param   string $_password
  * @param   bool $_encrypt encrypt password
  * @return  void
  * @throws  Tinebase_Exception_InvalidArgument
  */
 public function setPassword($_loginName, $_password, $_encrypt = TRUE)
 {
     if (empty($_loginName)) {
         throw new Tinebase_Exception_InvalidArgument('$_loginName can not be empty');
     }
     $user = $this->getFullUserByLoginName($_loginName);
     $metaData = $this->_getMetaData($user);
     $encryptionType = $this->_options['pwEncType'];
     $userpassword = $_encrypt ? Tinebase_User_Abstract::encryptPassword($_password, $encryptionType) : $_password;
     $ldapData = array('userpassword' => $userpassword, 'shadowlastchange' => Tinebase_DateTime::now()->getTimestamp());
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . '  $dn: ' . $metaData['dn']);
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
         Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . '  $ldapData: ' . print_r($ldapData, true));
     }
     $this->_backend->update($metaData['dn'], $ldapData);
 }