Add analytics
[bus.git] / busui / owa / modules / base / usersChangePassword.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
 
//
// Open Web Analytics - An Open Source Web Analytics Framework
//
// Copyright 2006 Peter Adams. All rights reserved.
//
// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// $Id$
//
 
require_once(OWA_BASE_DIR.'/owa_controller.php');
require_once(OWA_BASE_DIR.'/owa_view.php');
require_once(OWA_BASE_DIR.'/owa_auth.php');
require_once(OWA_BASE_DIR.'/eventQueue.php');
 
/**
 * Change Password Controller
 * 
 * handles from input from the Change password screen
 * 
 * @author      Peter Adams <peter@openwebanalytics.com>
 * @copyright   Copyright &copy; 2006 Peter Adams <peter@openwebanalytics.com>
 * @license     http://www.gnu.org/copyleft/gpl.html GPL v2.0
 * @category    owa
 * @package     owa
 * @version             $Revision$            
 * @since               owa 1.0.0
 */
 
class owa_usersChangePasswordController extends owa_controller {
        
        function owa_usersChangePasswordController($params) {
                
                return owa_usersChangePasswordController::__construct($params);
                
        }
        
        function __construct($params) {
                
                parent::__construct($params);
                
                // Add validations to the run
                $v1 = owa_coreAPI::validationFactory('stringMatch');
                $v1->setValues(array($this->getParam('password'), $this->getParam('password2')));
                $v1->setErrorMessage("Your passwords must match.");
                $this->setValidation('password_match', $v1);
                
                $v2 = owa_coreAPI::validationFactory('stringLength');
                $v2->setValues($this->getParam('password'));
                $v2->setConfig('operator', '>=');
                $v2->setConfig('length', 6);
                $v2->setErrorMessage("Your password must be at least 6 characters in length.");
                $this->setValidation('password_length', $v2);
 
                return;
        }
        
        function action() {
                
                $auth = &owa_auth::get_instance();
                $status = $auth->authenticateUserTempPasskey($this->params['k']);
                        
                // log to event queue
                if ($status === true) {
                        $eq = & eventQueue::get_instance();
                        $new_password = array('key' => $this->params['k'], 'password' => $auth->encryptPassword($this->params['password']), 'ip' => $_SERVER['REMOTE_ADDR']);
                        $eq->log($new_password, 'base.set_password');
                        $auth->deleteCredentials();     
                        $this->setRedirectAction('base.loginForm');
                        $this->set('status_code', 3006);
                } else {
                        $this->setRedirectAction('base.loginForm');
                        $this->set('error_code', 2011); // can't find key in the db
                }
                                
                return;
        }
        
        function errorAction() {
                //print 'error action';
                $this->setView('base.usersPasswordEntry');
                $this->set('k', $this->getParam('k'));
                //$this->set('password',  $this->getParam('password'));
                //$this->set('password2',  $this->getParam('password2'));
                return;
        }
}
 
?>