HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/barbeatleanalyti/public_html/public_html/webmail/system/Installer.php
<?php
/*
 * This code is licensed under AGPLv3 license or Afterlogic Software License
 * if commercial version of the product was purchased.
 * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
 */

namespace Aurora;

use Composer\Script\Event;

/**
 * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0
 * @license https://afterlogic.com/products/common-licensing Afterlogic Software License
 * @copyright Copyright (c) 2018, Afterlogic Corp.
 */
class Installer
{
	/**
	* This method should be run from composer.
	*/
    public static function updateConfigs()
	{
		$sBaseDir = dirname(__File__);
		$sMessage = "Configuration was updated successfully";
	    
		include_once $sBaseDir . '/autoload.php';
		
		\Aurora\System\Api::Init();
		
		\Aurora\System\Api::GetModuleManager()->SyncModulesConfigs();
		
		// $aModules = \Aurora\System\Api::GetModules();
		
		// if (is_array($aModules))
		// {
			// foreach ($aModules as $oModule)
			// {
				// $oModule->saveModuleConfig();
			// }
		// }

		echo $sMessage;
	}
	
	/**
	* This method should be run from composer.
	*/
    public static function preConfigForce(Event $event)
	{
		self::preConfig($event);
	}
	
	/**
	* This method should be run from composer.
	*/
    public static function preConfigSafe(Event $event)
	{
		$sBaseDir = dirname(__File__);
		
		//Checking that configuration files already exist
		if (count(glob(dirname($sBaseDir)."/data/settings/modules/*")) !== 0)
		{
			echo "The config files are already exist";
			return;
		}
		else
		{
			self::preConfig($event);
		}
	}
	
    private static function preConfig(Event $event)
    {
		$sConfigFilename = 'pre-config.json';
		$sBaseDir = dirname(__File__);
		$sMessage = "Configuration was updated successfully";
	    
	    $oExtra = $event->getComposer()->getPackage()->getExtra();
		
		if ($oExtra && isset($oExtra['aurora-installer-pre-config']))
		{
			$sConfigFilename = $oExtra['aurora-installer-pre-config'];
		}
		
		$sConfigPath = dirname($sBaseDir) . '/' . $sConfigFilename;
				
		if (file_exists($sConfigPath))
		{
			$sPreConfig = file_get_contents($sConfigPath);

			$oPreConfig = json_decode($sPreConfig, true);

			if ($oPreConfig)
			{
				include_once $sBaseDir . '/autoload.php';
				
				\Aurora\System\Api::Init();
				
				if ($oPreConfig['modules'])
				{
					$oModuleManager = \Aurora\System\Api::GetModuleManager();
					
					foreach ($oPreConfig['modules'] as $sModuleName => $oModuleConfig)
					{
						foreach ($oModuleConfig as $sConfigName => $mConfigValue)
						{
							$mValue = $oModuleManager->getModuleConfigValue($sModuleName, $sConfigName, null);
							
							if ($mValue !== null)
							{
								$oModuleManager->setModuleConfigValue($sModuleName, $sConfigName, $mConfigValue);
								$oModuleManager->saveModuleConfigValue($sModuleName);
							}
							else
							{
								echo "\r\nInvalid setting '" . $sConfigName . "' in module '" . $sModuleName . "'";
							}
						}
					}
				}
				if ($oPreConfig['system'])
				{
					$oSettings =&\Aurora\System\Api::GetSettings();
					foreach ($oPreConfig['system'] as $mKey => $mSett)
					{
						$oSettings->{$mKey} = $mSett;
					}
					$oSettings->Save();
				}
			}
			else
			{
				$sMessage = "Invalid config file";
			}
		}
		else
		{	
			$sMessage = "Config file didn't found";
		}

		echo $sMessage;
    }

}