function DeleteRelation($userID, $groupID) { global $APPLICATION; $userID = IntVal($userID); if ($userID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_USERID"), "ERROR_USER_ID"); return false; } $groupID = IntVal($groupID); if ($groupID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_UR_EMPTY_GROUPID"), "ERROR_GROUPID"); return false; } $dbResult = CSocNetUserToGroup::GetList(array(), array("GROUP_ID" => $groupID, "USER_ID" => $userID), false, false, array("ID", "ROLE", "GROUP_VISIBLE", "GROUP_NAME")); if ($arResult = $dbResult->Fetch()) { if ($arResult["ROLE"] != SONET_ROLES_USER && $arResult["ROLE"] != SONET_ROLES_MODERATOR) { return false; } if (CSocNetUserToGroup::Delete($arResult["ID"])) { if (IsModuleInstalled("im")) { $arNotifyParams = array("TYPE" => "unjoin", "RELATION_ID" => $arResult["ID"], "USER_ID" => $userID, "GROUP_ID" => $groupID, "GROUP_NAME" => $arResult["GROUP_NAME"]); CSocNetUserToGroup::NotifyImToModerators($arNotifyParams); CSocNetSubscription::DeleteEx($userID, "SG" . $groupID); } } else { $errorMessage = ""; if ($e = $APPLICATION->GetException()) { $errorMessage = $e->GetString(); } if (StrLen($errorMessage) <= 0) { $errorMessage = GetMessage("SONET_UR_ERROR_CREATE_USER2GROUP"); } $GLOBALS["APPLICATION"]->ThrowException($errorMessage, "ERROR_DELETE_RELATION"); return false; } } else { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_NO_USER2GROUP"), "ERROR_NO_MEMBER_REQUEST"); return false; } CSocNetUserToGroup::__SpeedFileCheckMessages($userID); return true; }