<?php gatekeeper(); $site_guid = (int) get_input("site_guid", elgg_get_site_entity()->getGUID()); $user_guid = (int) get_input("user_guid", elgg_get_logged_in_user_guid()); $forward_url = REFERER; if (($subsite = get_entity($site_guid)) && ($user = get_user($user_guid))) { if (elgg_instanceof($subsite, "site", Subsite::SUBTYPE, "Subsite")) { if ($subsite->canJoin()) { if (subsite_manager_set_missing_subsite_profile_fields($user_guid)) { if ($subsite->addUser($user->getGUID())) { elgg_clear_sticky_form("subsite_missing_profile_fields"); // where should we forward the user to if (isset($_SESSION["no_access_forward_from"])) { // did we get here by access validation $forward_url = $_SESSION["no_access_forward_from"]; unset($_SESSION["no_access_forward_from"]); } elseif (isset($_SESSION["last_forward_from"])) { // did we get here by a gatekeeper $forward_url = $_SESSION["last_forward_from"]; unset($_SESSION["last_forward_from"]); } else { $forward_url = $subsite->getURL(); } system_message(elgg_echo("subsite_manager:action:subsites:add_user:success", array($user->name, $subsite->name))); } else { register_error(elgg_echo("subsite_manager:action:subsites:add_user:error:add", array($user->name, $subsite->name))); } } else { register_error(elgg_echo("subsite_manager:action:subsites:join:error:missing_fields")); }
<?php $subsite_guid = (int) get_input("subsite_guid"); $email = get_input("email"); $user = elgg_get_logged_in_user_entity(); $site_secret = get_site_secret(); $forward_url = REFERER; if (!empty($subsite_guid)) { if (($subsite = elgg_get_site_entity($subsite_guid)) && elgg_instanceof($subsite, "site", Subsite::SUBTYPE, "Subsite")) { try { if (validate_email_address($email)) { // handle missing profile fields here if (subsite_manager_set_missing_subsite_profile_fields()) { if ($subsite->validateEmailDomain($user->getGUID(), $email)) { $code = md5($user->getGUID() . $site_secret . $subsite_guid); $link = $subsite->getOwnerEntity()->url . "subsites/join_domain?user="******"&site=" . $subsite_guid . "&code=" . $code; $subject = elgg_echo("subsite_manager:subsites:join:validate_domain:subject", array($subsite->name)); $message = elgg_echo("subsite_manager:subsites:join:validate_domain:message", array($user->name, $subsite->name, $link)); $old_email = $user->email; $user->email = $email; $user->save(); notify_user($user->getGUID(), $subsite->getGUID(), $subject, $message, null, "email"); $user->email = $old_email; $user->save(); // cleanup some stuff elgg_clear_sticky_form("subsite_missing_profile_fields"); // forward to the main site $forward_url = $subsite->getOwnerEntity()->url . "subsites"; system_message(elgg_echo("subsite_manager:actions:subsites:join:validate_domain:success")); } else { register_error(elgg_echo("subsite_manager:actions:subsites:join:validate_domain:error:domain"));