Exemplo n.º 1
0
 public static function OnUserDelete($ID)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $bSuccess = True;
     if (!CSocNetGroup::DeleteNoDemand($ID)) {
         if ($ex = $GLOBALS["APPLICATION"]->GetException()) {
             $err = $ex->GetString();
         }
         $GLOBALS["APPLICATION"]->ThrowException($err);
         $bSuccess = false;
     }
     if ($bSuccess) {
         CSocNetUserRelations::DeleteNoDemand($ID);
         CSocNetUserPerms::DeleteNoDemand($ID);
         CSocNetUserEvents::DeleteNoDemand($ID);
         CSocNetMessages::DeleteNoDemand($ID);
         CSocNetUserToGroup::DeleteNoDemand($ID);
         CSocNetLogEvents::DeleteNoDemand($ID);
         CSocNetLog::DeleteNoDemand($ID);
         CSocNetLogComments::DeleteNoDemand($ID);
         CSocNetFeatures::DeleteNoDemand($ID);
         CSocNetSubscription::DeleteEx($ID);
         CUserOptions::DeleteOption("socialnetwork", "~menu_" . SONET_ENTITY_USER . "_" . $ID, false, 0);
     }
     return $bSuccess;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 function Delete($ID)
 {
     global $DB;
     if (!CSocNetGroup::__ValidateID($ID)) {
         return false;
     }
     $ID = IntVal($ID);
     $bSuccess = True;
     $db_events = GetModuleEvents("socialnetwork", "OnBeforeSocNetGroupDelete");
     while ($arEvent = $db_events->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID)) === false) {
             return false;
         }
     }
     $arGroup = CSocNetGroup::GetByID($ID);
     if (!$arGroup) {
         $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SONET_NO_GROUP"), "ERROR_NO_GROUP");
         return false;
     }
     $DB->StartTransaction();
     $events = GetModuleEvents("socialnetwork", "OnSocNetGroupDelete");
     while ($arEvent = $events->Fetch()) {
         ExecuteModuleEventEx($arEvent, array($ID));
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_user2group WHERE GROUP_ID = " . $ID . "", true);
     }
     if ($bSuccess) {
         $bSuccessTmp = true;
         $dbResult = CSocNetFeatures::GetList(array(), array("ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP));
         while ($arResult = $dbResult->Fetch()) {
             $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_features2perms WHERE FEATURE_ID = " . $arResult["ID"] . "", true);
             if (!$bSuccessTmp) {
                 break;
             }
         }
         if (!$bSuccessTmp) {
             $bSuccess = false;
         }
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_features WHERE ENTITY_ID = " . $ID . " AND ENTITY_TYPE = '" . $DB->ForSql(SONET_ENTITY_GROUP, 1) . "'", true);
     }
     if ($bSuccess) {
         $dbResult = CSocNetLog::GetList(array(), array("ENTITY_ID" => $ID, "ENTITY_TYPE" => SONET_ENTITY_GROUP), false, false, array("ID"));
         while ($arResult = $dbResult->Fetch()) {
             $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_log_site WHERE LOG_ID = " . $arResult["ID"] . "", true);
             if (!$bSuccessTmp) {
                 break;
             }
             $bSuccessTmp = $DB->Query("DELETE FROM b_sonet_log_right WHERE LOG_ID = " . $arResult["ID"] . "", true);
             if (!$bSuccessTmp) {
                 break;
             }
         }
         if (!$bSuccessTmp) {
             $bSuccess = false;
         }
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_log WHERE ENTITY_TYPE = '" . SONET_ENTITY_GROUP . "' AND ENTITY_ID = " . $ID . "", true);
     }
     if ($bSuccess) {
         $bSuccess = CSocNetLog::DeleteSystemEventsByGroupID($ID);
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_log_events WHERE ENTITY_TYPE = 'G' AND ENTITY_ID = " . $ID . "", true);
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_group_site WHERE GROUP_ID = " . $ID . "", true);
     }
     if ($bSuccess) {
         $bSuccess = $DB->Query("DELETE FROM b_sonet_log_right WHERE GROUP_CODE LIKE 'SG" . $ID . "\\_%' OR GROUP_CODE = 'SG" . $ID . "'", true);
     }
     if ($bSuccess) {
         $bSuccess = CSocNetSubscription::DeleteEx(false, "SG" . $ID);
     }
     if ($bSuccess) {
         CFile::Delete($arGroup["IMAGE_ID"]);
         $bSuccess = $DB->Query("DELETE FROM b_sonet_group WHERE ID = " . $ID . "", true);
     }
     if ($bSuccess) {
         CUserOptions::DeleteOption("socialnetwork", "~menu_" . SONET_ENTITY_GROUP . "_" . $ID, false, 0);
         unset($GLOBALS["SONET_GROUP_CACHE"][$ID]);
     }
     if ($bSuccess) {
         $DB->Commit();
     } else {
         $DB->Rollback();
     }
     if ($bSuccess) {
         unset($GLOBALS["SONET_GROUP_CACHE"][$ID]);
         if (defined("BX_COMP_MANAGED_CACHE")) {
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group_G" . $ID);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_user2group");
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group_" . $ID);
             $GLOBALS["CACHE_MANAGER"]->ClearByTag("sonet_group");
         }
     }
     if ($bSuccess && CModule::IncludeModule("search")) {
         CSearch::DeleteIndex("socialnetwork", "G" . $ID);
     }
     if ($bSuccess) {
         $DB->Query("DELETE FROM b_sonet_event_user_view WHERE ENTITY_TYPE = '" . SONET_ENTITY_GROUP . "' AND ENTITY_ID = " . $ID, true);
     }
     if ($bSuccess) {
         $GLOBALS["USER_FIELD_MANAGER"]->Delete("SONET_GROUP", $ID);
     }
     return $bSuccess;
 }
Exemplo n.º 4
0
        echo CUtil::PhpToJsObject(array('ERROR' => 'USER_ACTION_FAILED: ' . (($e = $APPLICATION->GetException()) ? $e->GetString() : "")));
        die;
    } elseif ($_POST['ACTION'] == 'SETOWNER' && !CSocNetUserToGroup::SetOwner($arUserID[0], $arGroup["ID"], $arGroup)) {
        echo CUtil::PhpToJsObject(array('ERROR' => 'USER_ACTION_FAILED: ' . (($e = $APPLICATION->GetException()) ? $e->GetString() : "")));
        die;
    } elseif ($_POST['ACTION'] == 'BAN' && !CSocNetUserToGroup::BanMember($GLOBALS["USER"]->GetID(), $arGroup["ID"], $arRelationID, CSocNetUser::IsCurrentUserModuleAdmin())) {
        echo CUtil::PhpToJsObject(array('ERROR' => 'USER_ACTION_FAILED: ' . (($e = $APPLICATION->GetException()) ? $e->GetString() : "")));
        die;
    } elseif ($_POST['ACTION'] == 'UNBAN' && !CSocNetUserToGroup::UnBanMember($GLOBALS["USER"]->GetID(), $arGroup["ID"], $arRelationID, CSocNetUser::IsCurrentUserModuleAdmin())) {
        echo CUtil::PhpToJsObject(array('ERROR' => 'USER_ACTION_FAILED: ' . (($e = $APPLICATION->GetException()) ? $e->GetString() : "")));
        die;
    } elseif ($_POST['ACTION'] == 'EX') {
        foreach ($arRelalationData as $relationData) {
            //group owner can't exclude himself from the group
            if ($relationData["ROLE"] == SONET_ROLES_OWNER) {
                echo CUtil::PhpToJsObject(array('ERROR' => 'SONET_GUE_T_OWNER_CANT_EXCLUDE_HIMSELF'));
                die;
            }
            if (!CSocNetUserToGroup::Delete($relationData["ID"], true)) {
                echo CUtil::PhpToJsObject(array('ERROR' => 'USER_ACTION_FAILED: ' . (($e = $APPLICATION->GetException()) ? $e->GetString() : "")));
                die;
            } else {
                CSocNetSubscription::DeleteEx($relationData["USER_ID"], "SG" . $relationData["GROUP_ID"]);
            }
        }
    }
    echo CUtil::PhpToJsObject(array('SUCCESS' => 'Y'));
} else {
    echo CUtil::PhpToJsObject(array('ERROR' => 'SESSION_ERROR'));
}
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";