function OnUserInitialize($user_id, $arFields = array()) { if (intval($user_id) <= 0) { return false; } if (CModule::IncludeModule("im")) { $bIM = true; } $dbRelation = CSocNetUserToGroup::GetList(array(), array("USER_ID" => $user_id, "ROLE" => SONET_ROLES_REQUEST, "INITIATED_BY_TYPE" => SONET_INITIATED_BY_GROUP), false, false, array("ID", "GROUP_ID")); while ($arRelation = $dbRelation->Fetch()) { if (CSocNetUserToGroup::UserConfirmRequestToBeMember($user_id, $arRelation["ID"], false) && defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $arRelation["GROUP_ID"]); $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_U" . $user_id); if ($bIM) { CIMNotify::DeleteByTag("SOCNET|INVITE_GROUP|" . $user_id . "|" . intval($arRelation["ID"])); } } } }
} } } elseif ($_REQUEST["action"] == "reject") { if (!CSocNetUserRelations::RejectRequestToBeFriend($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["eventID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $e->GetString(); } } } if (strlen($errorMessage) > 0) { echo $errorMessage; } } elseif ($_REQUEST["EventType"] == "GroupRequest" && IntVal($_REQUEST["eventID"]) > 0) { $errorMessage = ""; if ($_REQUEST["action"] == "add") { if (!CSocNetUserToGroup::UserConfirmRequestToBeMember($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["eventID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $e->GetString(); } } } elseif ($_REQUEST["action"] == "reject") { if (!CSocNetUserToGroup::UserRejectRequestToBeMember($GLOBALS["USER"]->GetID(), IntVal($_REQUEST["eventID"]))) { if ($e = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $e->GetString(); } } } if (strlen($errorMessage) > 0) { echo $errorMessage; } } elseif ($_REQUEST["EventType"] == "Message" && IntVal($_REQUEST["eventID"]) > 0) {
public static function OnAfterUserAuthorize($arParams) { if (isset($arParams['update']) && $arParams['update'] === false) { return false; } if ($arParams['user_fields']['ID'] <= 0) { return false; } if (array_key_exists('CONFIRM_CODE', $arParams['user_fields']) && strlen(trim($arParams['user_fields']['CONFIRM_CODE'])) >= 0 && CModule::IncludeModule("socialnetwork")) { $dbRelation = CSocNetUserToGroup::GetList(array(), array("USER_ID" => $arParams['user_fields']['ID'], "ROLE" => SONET_ROLES_REQUEST, "INITIATED_BY_TYPE" => SONET_INITIATED_BY_GROUP), false, false, array("ID", "GROUP_ID")); while ($arRelation = $dbRelation->Fetch()) { if (CSocNetUserToGroup::UserConfirmRequestToBeMember($arParams['user_fields']['ID'], $arRelation["ID"], false)) { if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $arRelation["GROUP_ID"]); $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_U" . $arParams['user_fields']['ID']); } if (CModule::IncludeModule("im")) { CIMNotify::DeleteByTag("SOCNET|INVITE_GROUP|" . $arParams['user_fields']['ID'] . "|" . intval($arRelation["ID"])); } } } } }
} } } } } //Handling confirmation with e-mail links if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET["CONFIRM"])) { $errorMessage = ""; //ACCESS CHECK: only user himself and socnet admin are allowed to confirm if ($GLOBALS["USER"]->GetID() != $arParams["USER_ID"] && !CSocNetUser::IsCurrentUserModuleAdmin()) { $errorMessage = GetMessage("SONET_URE_NO_PERMS"); } if (isset($_GET["INVITE_GROUP"])) { $relationID = intval($_GET["INVITE_GROUP"]); if ($_GET["CONFIRM"] == "Y") { if (CSocNetUserToGroup::UserConfirmRequestToBeMember($arParams["USER_ID"], $relationID, $bAutoSubscribe)) { $infoMessage = GetMessage("SONET_URE_GROUP_CONFIRM", array('#GROUP#' => getRelatedGroup($relationID))); } else { if ($e = $APPLICATION->GetException()) { $errorMessage .= $e->GetString(); } } } elseif ($_GET["CONFIRM"] == "N") { $group = getRelatedGroup($relationID); if ($group && CSocNetUserToGroup::UserRejectRequestToBeMember($arParams["USER_ID"], $relationID)) { $infoMessage = GetMessage("SONET_URE_GROUP_REJECT", array("#GROUP#" => $group)); } else { if ($e = $APPLICATION->GetException()) { $errorMessage .= $e->GetString(); } }