403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/mail/classes/general/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/mail/classes/general/domain_registrar.php
<?php

class CMailDomainRegistrar
{
	/**
	 * Allowed registrar classes by zones.
	 */
	const REGISTRAR_CLASSES = [
		'ru' => '\Bitrix\Mail\Registrar\RegRu',
		'ua' => '\Bitrix\Mail\Registrar\Omnilance'
	];

	/**
	 * Current registrar class.
	 * @var string
	 */
	private static $classRegistrar = '\Bitrix\Mail\Registrar\RegRu';

	/**
	 * Sets new class registrar.
	 * @param string $className Class name.
	 * @return void
	 */
	public static function setRegistrarClass(string $className): void
	{
		if (in_array($className, self::REGISTRAR_CLASSES))
		{
			self::$classRegistrar = $className;
		}
	}

	/**
	 * Checks domain available.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param string $domain Domain name.
	 * @param string|null &$error Error message if occurred.
	 * @return bool|null Returns true if domain exists.
	 */
	public static function isDomainExists(string $user, string $password, string $domain, ?string &$error): ?bool
	{
		$result = self::$classRegistrar::checkDomain($user, $password, $domain, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	/**
	 * Suggests domains by query words.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param string $word1 Query word 1.
	 * @param string $word2 Query word 2.
	 * @param array $tlds Query tlds.
	 * @param string|null &$error Error message if occurred.
	 * @return array|null
	 */
	public static function suggestDomain(string $user, string $password, ?string $word1, ?string $word2, array $tlds, ?string &$error): ?array
	{
		$result = self::$classRegistrar::suggestDomain($user, $password, $word1, $word2, $tlds, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	/**
	 * Creates new domain.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param string $domain Domain name.
	 * @param array $params Additional params.
	 * @param string|null &$error Error message if occurred.
	 * @return bool|null Returns true on success.
	 */
	public static function createDomain(string $user, string $password, string $domain, array $params, ?string &$error): ?bool
	{
		$result = self::$classRegistrar::createDomain($user, $password, $domain, $params, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	public static function checkDomain($user, $password, $domain, &$error)
	{
		$result = CMailRegru::checkDomainInfo($user, $password, $domain, $error);

		if ($result !== false)
		{
			if (isset($result['dname']) && mb_strtolower($result['dname']) == mb_strtolower($domain))
				return $result;
			else
				$error = 'unknown';
		}

		$error = self::getErrorCode($result['error_code']);
		return null;
	}

	/**
	 * Renews exists domain.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param string $domain Domain name.
	 * @param string|null &$error Error message if occurred.
	 * @return bool|null Returns true on success.
	 */
	public static function renewDomain(string $user, string $password, string $domain, ?string &$error): ?bool
	{
		$result = self::$classRegistrar::renewDomain($user, $password, $domain, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	/**
	 * Updates domain DNS.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param string $domain Domain name.
	 * @param array $params Additional params.
	 * @param string|null &$error Error message if occurred.
	 * @return bool|null Returns true on success.
	 */
	public static function updateDns(string $user, string $password, string $domain, array $params, ?string &$error): ?bool
	{
		$result = self::$classRegistrar::updateDns($user, $password, $domain, $params, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	/**
	 * Returns domain's list.
	 * @param string $user User name.
	 * @param string $password User password.
	 * @param array $filter Filter array (not used).
	 * @param string|null &$error Error message if occurred.
	 * @return array|null Returns true on success.
	 */
	public static function getDomainsList(string $user, string $password, $filter = array(), &$error): ?array
	{
		$result = self::$classRegistrar::getDomainsList($user, $password, $error);

		if ($result === null)
		{
			$error = self::getErrorCode($error);
			return null;
		}
		else
		{
			return $result;
		}
	}

	/**
	 * Returns standard mail error code by error.
	 * @param string|null $error Error.
	 * @return int
	 */
	private static function getErrorCode(?string $error): int
	{
		$errorsList = [
			'unknown'                      => CMail::ERR_API_DEFAULT,
			'INVALID_DOMAIN_NAME_PUNYCODE' => CMail::ERR_API_DEFAULT,
			'TLD_DISABLED'                 => CMail::ERR_API_DEFAULT,
			'DOMAIN_BAD_NAME'              => CMail::ERR_API_DEFAULT,
			'INVALID_DOMAIN_NAME_FORMAT'   => CMail::ERR_API_DEFAULT,
			'DOMAIN_INVALID_LENGTH'        => CMail::ERR_API_DEFAULT,
			'HAVE_MIXED_CODETABLES'        => CMail::ERR_API_DEFAULT
		];

		return array_key_exists($error, $errorsList) ? $errorsList[$error] : CMail::ERR_API_DEFAULT;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit