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; }
function Delete($ID) { global $DB, $APPLICATION; $strError = ''; $res = $DB->Query("DELETE FROM b_xdi_lf_scheme WHERE ID = " . $ID); if (is_object($res)) { CXDILFSchemeRights::DeleteBySchemeID($ID); if (defined("BX_COMP_MANAGED_CACHE")) { $GLOBALS["CACHE_MANAGER"]->ClearByTag("XDI_SCHEME_" . $ID); } return true; } else { $e = $APPLICATION->GetException(); $strError = GetMessage("LFP_CLASS_SCHEME_DELETE_ERROR", array("#error_msg#" => is_object($e) ? $e->GetString() : '')); } $APPLICATION->ResetException(); $e = new CApplicationException($strError); $APPLICATION->ThrowException($e); return false; }
} 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; } } elseif (isset($_REQUEST["delete"])) { $ob = new CXDILFScheme();