File indexing completed on 2024-12-22 05:36:24

0001 <?php
0002 /**
0003  *  ocs-webserver
0004  *
0005  *  Copyright 2016 by pling GmbH.
0006  *
0007  *    This file is part of ocs-webserver.
0008  *
0009  *    This program is free software: you can redistribute it and/or modify
0010  *    it under the terms of the GNU Affero General Public License as
0011  *    published by the Free Software Foundation, either version 3 of the
0012  *    License, or (at your option) any later version.
0013  *
0014  *    This program is distributed in the hope that it will be useful,
0015  *    but WITHOUT ANY WARRANTY; without even the implied warranty of
0016  *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0017  *    GNU Affero General Public License for more details.
0018  *
0019  *    You should have received a copy of the GNU Affero General Public License
0020  *    along with this program.  If not, see <http://www.gnu.org/licenses/>.
0021  **/
0022 
0023 class Local_Validate_OldPasswordConfirm extends Zend_Validate_Abstract
0024 {
0025     const NOT_MATCH = 'notmatch';
0026     const IS_EMPTY = 'empty';
0027 
0028     protected $_messageTemplates = array(
0029         self::NOT_MATCH => 'Current password isn\'t correct',
0030         self::IS_EMPTY => 'Please enter your old Password'
0031     );
0032 
0033     public function isValid($value, $context = null)
0034     {
0035         if (!isset($value) || $value == '') {
0036             $this->_error(self::IS_EMPTY);
0037             return false;
0038         }
0039 
0040         $value = (string)$value;
0041         $this->_setValue($value);
0042 
0043 
0044         $memberModel = new Default_Model_Member();
0045         $user = $memberModel->fetchMemberData(Zend_Auth::getInstance()->getIdentity()->member_id);
0046 
0047         if (Local_Auth_Adapter_Ocs::getEncryptedPassword($value, $user->password_type) == $user->password) {
0048             return true;
0049         }
0050 
0051         $this->_error(self::NOT_MATCH);
0052         return false;
0053     }
0054 
0055 }