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/socialnetwork/lib/Collab/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/socialnetwork/lib/Collab/Requirement.php
<?php

declare(strict_types=1);

namespace Bitrix\Socialnetwork\Collab;

use Bitrix\Main\Error;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\ModuleManager;
use Bitrix\Main\Result;
use Bitrix\SocialNetwork\Collab\Access\CollabAccessController;
use Bitrix\SocialNetwork\Collab\Access\CollabDictionary;
use Bitrix\SocialNetwork\Collab\Access\Model\CollabModel;
use Bitrix\Socialnetwork\Collab\Integration\Extranet\Extranet;

class Requirement
{
	public const REQUIRED_MODULES = [
		'intranet',
		'extranet',
		'im',
		'tasks',
		'calendar',
		'disk',
		'humanresources',
	];

	public static function checkWithAccess(int $userId): Result
	{
		$result = static::check();

		if (!$result->isSuccess())
		{
			return $result;
		}

		$accessController = CollabAccessController::getInstance($userId);
		$accessController->check(CollabDictionary::CREATE, new CollabModel());

		$result->addErrors($accessController->getErrors());

		return $result;
	}

	public static function check(): Result
	{
		$result = static::checkRequiredModules();

		if (!$result->isSuccess())
		{
			return $result;
		}

		return static::checkExtranetConfigured();
	}

	public static function checkRequiredModules(): Result
	{
		$result = new Result();

		$uninstalledModules = [];
		foreach (static::REQUIRED_MODULES as $module)
		{
			if (!ModuleManager::isModuleInstalled($module))
			{
				$uninstalledModules[] = $module;
			}
		}

		if (empty($uninstalledModules))
		{
			return $result;
		}

		$uninstalledModules = implode(', ', $uninstalledModules);

		$error = new Error(Loc::getMessage('SOCIALNETWORK_COLLAB_REQUIREMENT_UNINSTALLED_MODULES', [
			'#MODULES#' => $uninstalledModules,
		]));

		$result->addError($error);

		return $result;
	}

	public static function checkExtranetConfigured(): Result
	{
		$result = new Result();

		$extranetSiteId = Extranet::getSiteId();
		if (!empty($extranetSiteId))
		{
			return $result;
		}

		$error = new Error(Loc::getMessage('SOCIALNETWORK_COLLAB_REQUIREMENT_NOT_CONFIGURED_EXTRANET_SITE'));

		$result->addError($error);

		return $result;
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit