summaryrefslogtreecommitdiff
path: root/change_password.php
blob: 1cb4a0d62c2f9e97bad21d54091ddadc70693b1c (plain)
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
<?php
/**
 * $Header: /cvsroot/bitweaver/_bit_users/change_password.php,v 1.14 2009/10/01 13:45:51 wjames5 Exp $
 *
 * Copyright (c) 2004 bitweaver.org
 * Copyright (c) 2003 tikwiki.org
 * Copyright (c) 2002-2003, Luis Argerich, Garland Foster, Eduardo Polidor, et. al.
 * All Rights Reserved. See copyright.txt for details and a complete list of authors.
 * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See http://www.gnu.org/copyleft/lesser.html for details
 *
 * $Id: change_password.php,v 1.14 2009/10/01 13:45:51 wjames5 Exp $
 * @package users
 * @subpackage functions
 */

/**
 * required setup
 */
require_once( '../bit_setup_inc.php' );
if( !isset( $_REQUEST['login'] )) {
	$_REQUEST['login'] = '';
}
if( !isset( $_REQUEST["oldpass"] )) {
	$_REQUEST["oldpass"] = '';
}
if( !isset( $_REQUEST["provpass"] )) {
	$_REQUEST["provpass"] = '';
}

$gBitSmarty->assign( 'login', $_REQUEST['login'] );
$gBitSmarty->assign( 'oldpass', $_REQUEST["oldpass"] );
$gBitSmarty->assign( 'provpass', $_REQUEST["provpass"] );

if( isset( $_REQUEST["change"] )) {
	$userInfo = $gBitUser->getUserInfo( array( 'user_id' => $_REQUEST['user_id'] ));

	if( $_REQUEST["pass"] == $_REQUEST["oldpass"] ) {
		$gBitSystem->fatalError( tra( "You can not use the same password again" ));
	}

	if( $passswordError = $gBitUser->verifyPasswordFormat( $_REQUEST["pass"], $_REQUEST["pass2"] )) {
		$gBitSystem->fatalError( tra( $passswordError ));
	}

	$validated = FALSE;
	if( !empty( $_REQUEST["provpass"] ) ) {
		if( $validated = $gBitUser->confirmRegistration( $userInfo['user_id'], $_REQUEST["provpass"] ) ) {
			if( $gBitSystem->isFeatureActive( 'send_welcome_email' ) ) {
				$siteName = $gBitSystem->getConfig( 'site_title', $_SERVER['HTTP_HOST'] );
				// Send the welcome mail
				$gBitSmarty->assign( 'siteName', $_SERVER["SERVER_NAME"] );
				$gBitSmarty->assign( 'mail_site', $_SERVER["SERVER_NAME"] );
				$gBitSmarty->assign( 'mail_user', $userInfo['login'] );
				$gBitSmarty->assign( 'mailPassword',$_REQUEST['pass'] );
				$gBitSmarty->assign( 'mailEmail',$validated['email'] );
				$mail_data = $gBitSmarty->fetch('bitpackage:users/welcome_mail.tpl');
				mail($validated["email"], tra( 'Welcome to' ).' '.$siteName,$mail_data,"From: ".$gBitSystem->getConfig('site_sender_email')."\r\nContent-type: text/plain;charset=utf-8\r\n");
			}
		} else	{
				$gBitSystem->fatalError( tra("Password reset request is invalid or has expired") );
		}
	} elseif( $gBitUser->isRegistered() ) {
		if( !( $validated = $gBitUser->validate( $userInfo['login'], $_REQUEST["oldpass"], '', '' )) ) {
			$gBitSystem->fatalError( tra("Invalid old password") );
		}
	}

	if( $validated ) {
		$gBitUser->storePassword( $_REQUEST["pass"], $userInfo['login'] );
		$url = $gBitUser->login( $userInfo['login'], $_REQUEST["pass"] );
	}

	bit_redirect( $url );
}

// Display the template
$gBitSystem->display( 'bitpackage:users/change_password.tpl', 'Change Password' , array( 'display_mode' => 'display' ));

?>