if ($e = $APPLICATION->GetException()) {
            $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e);
        }
        $bVarsFromForm = true;
    } elseif ($selfBlock && $_POST["USE_THE_FORCE_LUK"] !== "Y") {
        if ($e = $APPLICATION->GetException()) {
            $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e);
        }
        $bVarsFromForm = true;
        $bShowForce = true;
    } else {
        $arFields = array("RULE_TYPE" => "A", "ACTIVE" => $activate_iprule ? "Y" : ($deactivate_iprule ? "N" : $ACTIVE), "ADMIN_SECTION" => "Y", "SITE_ID" => false, "SORT" => 10, "NAME" => GetMessage("SEC_IPRULE_ADMIN_RULE_NAME"), "ACTIVE_FROM" => false, "ACTIVE_TO" => false, "INCL_IPS" => $INCL_IPS, "EXCL_IPS" => $_POST["EXCL_IPS"], "INCL_MASKS" => array("/bitrix/admin/*"), "EXCL_MASKS" => $exclMasks);
        if ($ID > 0) {
            $res = $ob->Update($ID, $arFields);
        } else {
            $ID = $ob->Add($arFields);
            $res = $ID > 0;
        }
        if ($res) {
            if ($save != "" && $_GET["return_url"] != "") {
                LocalRedirect($_GET["return_url"]);
            }
            LocalRedirect("/bitrix/admin/security_iprule_admin.php?lang=" . LANGUAGE_ID . ($return_url ? "&return_url=" . urlencode($_GET["return_url"]) : "") . "&" . $tabControl->ActiveTabParam());
        } else {
            if ($e = $APPLICATION->GetException()) {
                $message = new CAdminMessage(GetMessage("SEC_IPRULE_ADMIN_SAVE_ERROR"), $e);
            }
            $bVarsFromForm = true;
        }
    }
}
Exemple #2
0
	/**
	 * @param string $ip
	 * @return bool
	 */
	protected function blockCurrentUser($ip = "")
	{
		if(self::currentUserHaveRightsForSkip())
			return false;

		if(!is_string($ip) || $ip === "")
			$ip = $_SERVER["REMOTE_ADDR"];

		$rule = new CSecurityIPRule;

		CTimeZone::Disable();
		$added = $rule->Add(array(
			"RULE_TYPE" => "A",
			"ACTIVE" => "Y",
			"ADMIN_SECTION" => "Y",
			"NAME" => getMessage("SECURITY_FILTER_IP_RULE", array("#IP#" => $ip)),
			"ACTIVE_FROM" => ConvertTimeStamp(false, "FULL"),
			"ACTIVE_TO" => ConvertTimeStamp(time()+COption::getOptionInt("security", "filter_duration")*60, "FULL"),
			"INCL_IPS" => array($ip),
			"INCL_MASKS" => array("/*"),
		));
		CTimeZone::Enable();

		return ($added > 0);
	}
Exemple #3
0
 /**
  * @param string $pIP
  */
 protected function blockCurrentUser($pIP = "")
 {
     static $blocked = array();
     if ($this->currentUserHaveRightsForSkip()) {
         return;
     }
     if (is_string($pIP) && $pIP != "") {
         $ip = $pIP;
     } else {
         $ip = $_SERVER["REMOTE_ADDR"];
     }
     if (!array_key_exists($ip, $blocked)) {
         $rule = new CSecurityIPRule();
         CTimeZone::Disable();
         $rule->Add(array("RULE_TYPE" => "A", "ACTIVE" => "Y", "ADMIN_SECTION" => "Y", "NAME" => GetMessage("SECURITY_FILTER_IP_RULE", array("#IP#" => $ip)), "ACTIVE_FROM" => ConvertTimeStamp(false, "FULL"), "ACTIVE_TO" => ConvertTimeStamp(time() + COption::GetOptionInt("security", "filter_duration") * 60, "FULL"), "INCL_IPS" => array($ip), "INCL_MASKS" => array("*")));
         CTimeZone::Enable();
         $blocked[$ip] = true;
         $this->isUserBlocked = true;
     }
 }