Поддержка серверов

CSecurityIPRule::CheckFields: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=176434

//    CSecurityIPRule::CheckFields()
//    /bitrix/modules/security/classes/general/iprule.php:405

    function CheckFields(&$arFields, $ID)
    {
        global $APPLICATION;

        $this->LAST_ERROR = "";
        $aMsg = array();

        if(array_key_exists("RULE_TYPE", $arFields))
        {
            if($arFields["RULE_TYPE"] !== "A")
                $arFields["RULE_TYPE"] = "M";

        }

        if(array_key_exists("SORT", $arFields))
        {
            if(intval($arFields["SORT"]) <= 0)
                $arFields["SORT"] = 500;
        }

        if(array_key_exists("NAME", $arFields))
        {
            $arFields["NAME"] = trim($arFields["NAME"]);
        }

        if(array_key_exists("ACTIVE_FROM", $arFields))
        {
            $arFields["ACTIVE_FROM_TIMESTAMP"] = MakeTimeStamp($arFields["ACTIVE_FROM"], CSite::GetDateFormat());
        }

        if(array_key_exists("ACTIVE_TO", $arFields))
        {
            $arFields["ACTIVE_TO_TIMESTAMP"] = MakeTimeStamp($arFields["ACTIVE_TO"], CSite::GetDateFormat());
        }

        if(array_key_exists("ACTIVE", $arFields))
        {
            $arFields["ACTIVE"] = $arFields["ACTIVE"] === "Y"? "Y": "N";
        }

        if(array_key_exists("ADMIN_SECTION", $arFields))
        {
            $arFields["ADMIN_SECTION"] = $arFields["ADMIN_SECTION"] === "Y"? "Y": "N";
        }

        if(array_key_exists("INCL_IPS", $arFields) && is_array($arFields["INCL_IPS"]))
        {
            foreach($arFields["INCL_IPS"] as $id => $ip)
            {
                $ip = preg_replace("/[\\s]/".BX_UTF_PCRE_MODIFIER, "", $ip);
                if($ip)
                {
                    $ar = explode("-", $ip);
                    $ip1 = self::ip2number($ar[0]);

                    if($ip1 <= 0)
                    {
                        $aMsg[] = array(
                            "id"=>"INCL_IPS[".htmlspecialcharsEx($id)."]",
                            "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP", array(
                                "#IP#" => htmlspecialcharsEx($ar[0]),
                            )),
                        );
                    }

                    if(count($ar) > 1)
                    {
                        $ip2 = self::ip2number($ar[1]);
                        if($ip2 <= 0)
                        {
                            $aMsg[] = array(
                                "id"=>"INCL_IPS[".htmlspecialcharsEx($id)."]",
                                "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP", array(
                                    "#IP#" => htmlspecialcharsEx($ar[1]),
                                )),
                            );
                        }
                        elseif($ip2 < $ip1)
                        {
                            $aMsg[] = array(
                                "id"=>"INCL_IPS[".htmlspecialcharsEx($id)."]",
                                "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP_RANGE", array(
                                    "#END_IP#" => htmlspecialcharsEx($ar[1]),
                                    "#START_IP#" => htmlspecialcharsEx($ar[0]),
                                )),
                            );
                        }

                        break;
                    }
                }
            }
        }

        if(array_key_exists("EXCL_IPS", $arFields) && is_array($arFields["EXCL_IPS"]))
        {
            foreach($arFields["EXCL_IPS"] as $id => $ip)
            {
                $ip = preg_replace("/[\\s]/".BX_UTF_PCRE_MODIFIER, "", $ip);
                if($ip)
                {
                    $ar = explode("-", $ip);
                    $ip1 = self::ip2number($ar[0]);

                    if($ip1 <= 0)
                    {
                        $aMsg[] = array(
                            "id"=>"EXCL_IPS[".htmlspecialcharsEx($id)."]",
                            "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP", array(
                                "#IP#" => htmlspecialcharsEx($ar[0]),
                            )),
                        );
                    }

                    if(count($ar) > 1)
                    {
                        $ip2 = self::ip2number($ar[1]);
                        if($ip2 <= 0)
                        {
                            $aMsg[] = array(
                                "id"=>"EXCL_IPS[".htmlspecialcharsEx($id)."]",
                                "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP", array(
                                    "#IP#" => htmlspecialcharsEx($ar[1]),
                                )),
                            );
                        }
                        elseif($ip2 < $ip1)
                        {
                            $aMsg[] = array(
                                "id"=>"EXCL_IPS[".htmlspecialcharsEx($id)."]",
                                "text"=>GetMessage("SECURITY_IPRULE_ERROR_WONG_IP_RANGE", array(
                                    "#END_IP#" => htmlspecialcharsEx($ar[1]),
                                    "#START_IP#" => htmlspecialcharsEx($ar[0]),
                                )),
                            );
                        }
                        break;
                    }
                }
            }
        }

        if(!empty($aMsg))
        {
            $e = new CAdminException($aMsg);
            $APPLICATION->ThrowException($e);
            $this->LAST_ERROR = $e->GetString();
            return false;
        }
        return true;
    }
';

Блог разработчика

9 августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение