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;
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
         } 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();