<?php
/**
 * Action to reset a password, send success email, and log the user in.
 *
 * @package Elgg
 * @subpackage Core
 */

$password = get_input('password1');
$password_repeat = get_input('password2');
$user_guid = get_input('u');
$code = get_input('c');

try {
	validate_password($password);
} catch(RegistrationException $e) {
	register_error($e->getMessage());
	forward(REFERER);
}

if ($password != $password_repeat) {
	register_error(elgg_echo('RegistrationException:PasswordMismatch'));
	forward(REFERER);
}

if (execute_new_password_request($user_guid, $code, $password)) {
	system_message(elgg_echo('user:password:success'));
	
	try {
		login(get_entity($user_guid));
	} catch (LoginException $e) {
		register_error($e->getMessage());
		forward(REFERER);
	}
} else {
	register_error(elgg_echo('user:password:fail'));
}

forward();