aboutsummaryrefslogtreecommitdiff
path: root/mod/uservalidationbyemail/actions/email/confirm.php
blob: 6f96a076fb87f51641745e661746e671ff036dcd (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
<?php
	/**
	 * Action which confirms an email when it is registered or changed, based on a code.
	 * 
	 * @package Elgg
	 * @subpackage Core
	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
	 * @author 
	 * @copyright Curverider Ltd 2008
	 * @link http://elgg.org/
	 */

	global $CONFIG;

	// Get user id
	$access_status = access_get_show_hidden_status();
	access_show_hidden_entities(true);
	
	$user_guid = (int)get_input('u');
	$user = get_entity($user_guid);
	
	// And the code
	$code = sanitise_string(get_input('c'));
	
	if ( ($code) && ($user) )
	{
		if (uservalidationbyemail_validate_email($user_guid, $code)) {
			system_message(elgg_echo('email:confirm:success'));
		
			$user = get_entity($user_guid);
			$user->enable();
			
			notify_user($user_guid, $CONFIG->site->guid, sprintf(elgg_echo('email:validate:success:subject'), $user->username), sprintf(elgg_echo('email:validate:success:body'), $user->name), NULL, 'email');
			
		} else
			register_error(elgg_echo('email:confirm:fail'));
	}
	else
		register_error(elgg_echo('email:confirm:fail'));
		
	access_show_hidden_entities($access_status);
	
	forward($_SERVER['HTTP_REFERER']);
	exit;

?>