HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/web/mailadmin/background_rule_save.php
<?php

   if (!defined('IN_WEBADMIN'))
      exit();

   $action	   = hmailGetVar("action","");
   $domainid   = hmailGetVar("domainid", 0, true);
   $accountid  = hmailGetVar("accountid", 0, true);
   $ruleid     = hmailGetVar("ruleid", 0);
   $criteriaid = hmailGetVar("criteriaid", 0);
   $actionid   = hmailGetVar("actionid", 0);
   $savetype   = hmailGetVar("savetype", 0);
      
   if (!GetHasRuleAccess($domainid, $accountid))
   	hmailHackingAttemp();

   include "include/rule_strings.php";
      
   $rule_link = "index.php?page=rule&action=edit&domainid=$domainid&accountid=$accountid&ruleid=$ruleid";
   
   if ($action == "add" && $savetype == "rule")
   {
      if ($domainid == 0)
         $rule = $obBaseApp->Rules->Add();
      else
         $rule = $obBaseApp->Domains->ItemByDBID($domainid)->Accounts->ItemByDBID($accountid)->Rules->Add();
   }
   else
   {
      if ($domainid == 0)
         $rule = $obBaseApp->Rules->ItemByDBID($ruleid);
      else
         $rule = $obBaseApp->Domains->ItemByDBID($domainid)->Accounts->ItemByDBID($accountid)->Rules->ItemByDBID($ruleid);
   }  
 

   if ($action == "delete")
   {
   
      if ($savetype == "criteria")
         $rule->Criterias->ItemByDBID($criteriaid)->Delete();
      else if ($savetype == "action")
         $rule->Actions->ItemByDBID($actionid)->Delete();
      else if ($savetype == "rule")
         $rule->Delete();
      
      if ($savetype == "criteria" || $savetype == "action")
         header("Location: $rule_link");
      else
      {
         if ($domainid == 0)
            header("Location: index.php?page=rules");
         else
            header("Location: index.php?page=account&action=edit&accountid=$accountid&domainid=$domainid");
      }
         
      die;
   }
   
   if ($savetype == "criteria")
   {
      
      if ($action == "edit")
         $criteria = $rule->Criterias->ItemByDBID($criteriaid);
      else if ($action == "add")
      {
         $criteria = $rule->Criterias->Add();
      }
   
      $criteria->UsePredefined = hmailGetVar("UsePredefined", 0);
      $criteria->PredefinedField = hmailGetVar("PredefinedField", 0);
      $criteria->MatchType = hmailGetVar("MatchType", 0);
      $criteria->MatchValue = hmailGetVar("MatchValue", 0);
      $criteria->HeaderField = hmailGetVar("HeaderField", 0);
      
      $criteria->Save();
      
      $rule->Save();
    
      header("Location: $rule_link");
      die;
   }
   else if ($savetype == "action")
   {
   
      if ($action == "edit")
         $actionObj = $rule->Actions->ItemByDBID($actionid);
      else if ($action == "add")
         $actionObj = $rule->Actions->Add();
   
      $type = hmailGetVar("Type", 0);
      
      if (hmailGetAdminLevel() != ADMIN_SERVER)
      {
         if ($type != eRADeleteEmail && 
             $type != eRAForwardEmail &&
             $type != eRAReply &&
             $type != eRAMoveToImapFolder &&
             $type != eRAStopRuleProcessing &&
             $type != eRASetHeaderValue)
         {
            hmailHackingAttemp();
         }  
      }
   
      $actionObj->To = hmailGetVar("To", "");
      $actionObj->IMAPFolder = hmailGetVar("IMAPFolder", "");
      $actionObj->ScriptFunction = hmailGetVar("ScriptFunction", "");
      $actionObj->FromName = hmailGetVar("FromName", "");
      $actionObj->FromAddress = hmailGetVar("FromAddress", "");
      $actionObj->Subject = hmailGetVar("Subject", "");
      $actionObj->Body = hmailGetVar("Body", "");
      $actionObj->HeaderName = hmailGetVar("HeaderName", "");
      
	  switch ($type)
	  {
	    case eRASetHeaderValue:
			$actionObj->Value = hmailGetVar("Value", "");
			break;
		case eRABindToAddress:
			$actionObj->Value = hmailGetVar("BindToAddress", "");
			break;
	  }
      
	  $actionObj->Type = $type;

      $actionObj->Save();
      
      $rule->Save();
      
      header("Location: $rule_link");   
      die;
   }
   else if ($savetype == "rule")
   {
      $rule->Name = hmailGetVar("Name", "");
      $rule->Active = hmailGetVar("Active", "") == "1";
      $rule->UseAND = hmailGetVar("UseAND", "") == "1";
      $rule->Save();
      
      $ruleid = $rule->ID;
      
      // can't re-use rule_link since the rule id might be new (if add)
      header("Location: index.php?page=rule&action=edit&domainid=$domainid&accountid=$accountid&ruleid=$ruleid");   
      die;
   }

   
?>