| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- <?php
 
- /**
 
-  * Accept an email invitation
 
-  */
 
- $invitecode = get_input("invitecode");
 
- $user = elgg_get_logged_in_user_entity();
 
- $forward_url = REFERER;
 
- if (!empty($invitecode)) {
 
- 	$forward_url = elgg_get_site_url() . "groups/invitations/" . $user->username;
 
- 	$group = group_tools_check_group_email_invitation($invitecode);
 
- 	
 
- 	if (!empty($group)) {
 
- 		if (groups_join_group($group, $user)) {
 
- 			$invitecode = sanitise_string($invitecode);
 
- 			
 
- 			$options = array(
 
- 				"guid" => $group->getGUID(),
 
- 				"annotation_name" => "email_invitation",
 
- 				"wheres" => array("(v.string = '" . $invitecode . "' OR v.string LIKE '" . $invitecode . "|%')"),
 
- 				"annotation_owner_guid" => $group->getGUID(),
 
- 				"limit" => 1
 
- 			);
 
- 			
 
- 			$annotations = elgg_get_annotations($options);
 
- 			if (!empty($annotations)) {
 
- 				// ignore access in order to cleanup the invitation
 
- 				$ia = elgg_set_ignore_access(true);
 
- 				
 
- 				$annotations[0]->delete();
 
- 				
 
- 				// restore access
 
- 				elgg_set_ignore_access($ia);
 
- 			}
 
- 			
 
- 			$forward_url = $group->getURL();
 
- 			system_message(elgg_echo("group_tools:action:groups:email_invitation:success"));
 
- 		} else {
 
- 			register_error(elgg_echo("group_tools:action:groups:email_invitation:error:join", array($group->name)));
 
- 		}
 
- 	} else {
 
- 		register_error(elgg_echo("group_tools:action:groups:email_invitation:error:code"));
 
- 	}
 
- } else {
 
- 	register_error(elgg_echo("group_tools:action:groups:email_invitation:error:input"));
 
- }
 
- forward($forward_url);
 
 
  |