コード例 #1
0
ファイル: Password.php プロジェクト: knatorski/SMS
 /**
  * Metoda zwraca ostanie n haseł dla użytkownika
  * @param type $changeOffset - ilość haseł (domyślnie 10).
  * W przypadku braku haseł dla użytkownika zwracane jest FALSE
  * @return boolean
  * @throws Exception
  */
 public function getOldPasswords($changeOffset = 10)
 {
     $userPassword = new UserPassword();
     $id = Zend_Auth::getInstance()->getIdentity()->id;
     if (is_null($id)) {
         throw new Exception('Pole id jest puste');
     }
     $select = $userPassword->select()->from($userPassword->getName(), array('password'))->where('id_user = ?', $id)->order('id DESC')->limit(intval($changeOffset))->setIntegrityCheck(false);
     $passArray = $userPassword->getAdapter()->fetchCol($select);
     if ($passArray && count($passArray) > 0) {
         return $passArray;
     }
     return FALSE;
 }
コード例 #2
0
ファイル: User.php プロジェクト: knatorski/SMS
 /**
  *  Metoda do resetowanie hasla uzytkownika
  * @param integer $id - id uzytkownika
  */
 public function _resetPassword($id)
 {
     try {
         $user = new User();
         $pass = Base_PasswordGenerator::generate();
         $config = Zend_Registry::get('config');
         $timeOffset = $config['login']['dafault']['freeDaysOffset'];
         if (!empty($timeOffset) && $timeOffset == 1) {
             $offset = $timeOffset . ' day';
         } elseif (!empty($timeOffset) && $timeOffset > 1) {
             $offset = $timeOffset . ' days';
         }
         $date = new DateTime(date('c'));
         $date->modify($offset);
         $values['password'] = $pass['hashed'];
         $values['tmp_password'] = true;
         $values['valid_until'] = $date->format('c');
         $userRow = $user->findOne($id);
         // $resetPassEvent = new Logger_Event_Logic('editUser','Zresetowanie hasła użytkownika '.$userRow['login']);
         $userRow->setFromArray($values);
         // $changes = $userRow->getUpdatedFields();
         // $resetPassEvent->addItem('Zmiana daty', $changes, null); */
         $userRow->save();
         unset($values['valid_until']);
         $userPassword = new UserPassword();
         $select = $userPassword->select()->where('id_user = ?', $id)->where('ghost = false')->setIntegrityCheck(false);
         $dataArray = $userPassword->fetchAll($select);
         $dataArray = $dataArray->toArray();
         foreach ($dataArray as $key => $value) {
             $passRow = $userPassword->findOne($value['id']);
             $passRow->setFromArray(array('ghost' => true));
             $changes = $passRow->getUpdatedFields();
             //                $resetPassEvent->addItem('Dezaktywacja poprzedniego hasła', $changes, null);
             $passRow->save();
         }
         $values['id_user'] = $id;
         $rowPassword = $userPassword->createRow($values);
         $params = $rowPassword->getUpdatedFieldsOnlyNew();
         //            $resetPassEvent->addItem('Wprowadzenie nowego hasła', null, $params);
         $rowPassword->save();
         //            $this->logEvent($resetPassEvent);
         $mailer = new Logic_Mailer(Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view'), $translate);
         $user_row = $user->findOne($id);
         $mailer->userPass($pass['clean'], $user_row);
         // $logger = Zend_Registry::get('logger');
         // $logger['messages']['User'][$id] = 'Password was reset.';
         // Zend_Registry::set('logger', $logger);
     } catch (Exception $e) {
         // $logger = Zend_Registry::get('logger');
         // $logger['messages']['User'][$id] = 'Faile while password reset.';
         // Zend_Registry::set('logger', $logger);
         throw $e;
     }
 }