function SetSonetLogRights($logID, $entity_type, $entity_id, $event_id) { if (!CModule::IncludeModule("socialnetwork")) { return; } if (in_array($entity_type, array(SONET_SUBSCRIBE_ENTITY_USER, SONET_SUBSCRIBE_ENTITY_GROUP))) { if (in_array($event_id, array("blog_post", "forum", "photo", "blog_post_micro", "files", "wiki"))) { $arLogEventTmp = CSocNetLogTools::FindLogEventByID($event_id); CSocNetLogRights::SetForSonet($logID, $entity_type, $entity_id, CSocNetLogTools::FindFeatureByEventID($event_id), $arLogEventTmp["OPERATION"]); } elseif (in_array($event_id, array("data", "system")) && $entity_type == SONET_SUBSCRIBE_ENTITY_GROUP) { CSocNetLogRights::Add($logID, array("SA", "S" . SONET_SUBSCRIBE_ENTITY_GROUP . $entity_id, "S" . SONET_SUBSCRIBE_ENTITY_GROUP . $entity_id . "_" . SONET_ROLES_OWNER, "S" . SONET_SUBSCRIBE_ENTITY_GROUP . $entity_id . "_" . SONET_ROLES_MODERATOR, "S" . SONET_SUBSCRIBE_ENTITY_GROUP . $entity_id . "_" . SONET_ROLES_USER)); } elseif (in_array($event_id, array("data", "system")) && $entity_type == SONET_SUBSCRIBE_ENTITY_USER) { $perm = CSocNetUserPerms::GetOperationPerms($entity_id, "viewprofile"); if (in_array($perm, array(SONET_RELATIONS_TYPE_FRIENDS2, SONET_RELATIONS_TYPE_FRIENDS))) { CSocNetLogRights::Add($logID, array("SA", "U" . $entity_id, "S" . SONET_SUBSCRIBE_ENTITY_USER . $entity_id . "_" . $perm)); } elseif ($perm == SONET_RELATIONS_TYPE_AUTHORIZED) { CSocNetLogRights::Add($logID, array("SA", "AU")); } elseif ($perm == SONET_RELATIONS_TYPE_ALL) { CSocNetLogRights::Add($logID, array("SA", "G2")); } } } elseif ($entity_type == SONET_SUBSCRIBE_ENTITY_PROVIDER) { $arRights = array("SA"); $rsSchemeRights = CXDILFSchemeRights::GetList(array(), array("SCHEME_ID" => $entity_id)); while ($arSchemeRights = $rsSchemeRights->Fetch()) { if (substr($arSchemeRights["GROUP_CODE"], 0, 1) == "U") { if (substr($arSchemeRights["GROUP_CODE"], 1) == "A") { $arRights[] = "AU"; break; } elseif (substr($arSchemeRights["GROUP_CODE"], 1) == "N") { $arRights[] = "G2"; break; } elseif (intval(substr($arSchemeRights["GROUP_CODE"], 1)) > 0) { $arRights[] = "U" . substr($arSchemeRights["GROUP_CODE"], 1); } } } if (count($arRights) > 0) { CSocNetLogRights::Add($logID, $arRights); } } elseif (defined("SONET_SUBSCRIBE_ENTITY_NEWS") && $entity_type == SONET_SUBSCRIBE_ENTITY_NEWS) { CSocNetLogRights::Add($logID, array("SA", "G2")); } }
} if ($ID > 0) { $res = $ob->Update($ID, $arFields); } else { $res = $ob->Add($arFields); } if ($res > 0 && $_POST["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_PROVIDER) { $ob->Update($res, array("ENTITY_ID" => $res)); } } else { $e = new CAdminException($arError); $GLOBALS["APPLICATION"]->ThrowException($e); } if ($res > 0) { if ($_POST["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_PROVIDER && $arUserRights) { $obSchemeRights = new CXDILFSchemeRights(); $obSchemeRights->Set($res, $arUserRights, array("ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_PROVIDER, "ENTITY_ID" => $res, "EVENT_ID" => $arFields["EVENT_ID"])); } elseif (in_array($_POST["ENTITY_TYPE"], array(SONET_SUBSCRIBE_ENTITY_GROUP, SONET_SUBSCRIBE_ENTITY_USER))) { CXDILFSchemeRights::DeleteBySchemeID($res); } if (isset($_REQUEST["apply"])) { LocalRedirect("/bitrix/admin/xdi_lf_scheme_edit.php?ID=" . $res . "&lang=" . LANGUAGE_ID); } else { LocalRedirect("/bitrix/admin/xdi_lf_scheme_list.php?lang=" . LANGUAGE_ID); } } else { $e = $APPLICATION->GetException(); if (is_object($e)) { $message = new CAdminMessage(GetMessage("LFP_SCHEME_EDIT_SAVE_ERROR"), $e); } $bVarsFromForm = true;
function Set($SchemeID, $arRights = array(), $arEUV = array()) { if (intval($SchemeID) <= 0) { return false; } if (!is_array($arRights)) { return false; } if (!is_array($arEUV) || !array_key_exists("ENTITY_TYPE", $arEUV) || !array_key_exists("EVENT_ID", $arEUV)) { return false; } if (!array_key_exists("ENTITY_ID", $arEUV) || intval($arEUV["ENTITY_ID"]) <= 0) { $arEUV["ENTITY_ID"] = 0; } CXDILFSchemeRights::DeleteBySchemeID($SchemeID); $obSchemeRights = new CXDILFSchemeRights(); $obXDIUser = new CXDIUser(); foreach ($arRights as $prefix => $arRightsTmp) { if (in_array($prefix, array("UA", "UN"))) { $this->Add(array("SCHEME_ID" => $SchemeID, "GROUP_CODE" => $prefix)); } else { if (!is_array($arRightsTmp)) { continue; } foreach ($arRightsTmp as $user_id_tmp) { if (intval($user_id_tmp) > 0) { $obXDIUser->Add(array("USER_ID" => $user_id_tmp, "GROUP_CODE" => $prefix . $user_id_tmp)); $this->Add(array("SCHEME_ID" => $SchemeID, "GROUP_CODE" => $prefix . $user_id_tmp)); } } } } return true; }
} $strWarning = ""; $bVarsFromForm = false; $ob = new CXDILFScheme(); $rsXDILFScheme = CXDILFScheme::GetList(array(), array("TYPE" => "RSS")); $arXDILFScheme = $rsXDILFScheme->Fetch(); if (empty($arXDILFScheme)) { switch (LANGUAGE_ID) { case "ru": $host = "www.1c-bitrix.ru"; $page = "/upload/xdimport/xdimport_rss_ru.xml"; break; case "de": $host = "www.bitrix.de"; $page = "/upload/xdimport/xdimport_rss_de.xml"; break; default: $host = "www.bitrixsoft.com"; $page = "/upload/xdimport/xdimport_rss_en.xml"; break; } $arFields = array("ACTIVE" => "Y", "ENABLE_COMMENTS" => "Y", "SORT" => "100", "NAME" => GetMessage("XDI_SCHEME_NAME"), "TYPE" => "RSS", "LID" => WIZARD_SITE_ID, "DAYS_OF_WEEK" => "1,2,3,4,5,6,7", "TIMES_OF_DAY" => "8:00", "ENTITY_TYPE" => "P", "EVENT_ID" => "data", "HOST" => $host, "PAGE" => $page, "LAST_EXECUTED" => ConvertTimeStamp(time() - 86400, "FULL")); $res = $ob->Add($arFields); if ($res > 0) { $res = $ob->Update($res, array("ENTITY_ID" => $res)); } if ($res > 0) { $obSchemeRights = new CXDILFSchemeRights(); $obSchemeRights->Set($res, array("U" => array(1)), array("ENTITY_TYPE" => SONET_SUBSCRIBE_ENTITY_PROVIDER, "ENTITY_ID" => $res, "EVENT_ID" => "data")); } }