1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
Requirement.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab;
6
7use Bitrix\Main\Error;
8use Bitrix\Main\Localization\Loc;
9use Bitrix\Main\ModuleManager;
10use Bitrix\Main\Result;
11use Bitrix\SocialNetwork\Collab\Access\CollabAccessController;
12use Bitrix\SocialNetwork\Collab\Access\CollabDictionary;
13use Bitrix\SocialNetwork\Collab\Access\Model\CollabModel;
14use Bitrix\Socialnetwork\Collab\Integration\Extranet\Extranet;
15
17{
18 public const REQUIRED_MODULES = [
19 'intranet',
20 'extranet',
21 'im',
22 'tasks',
23 'calendar',
24 'disk',
25 'humanresources',
26 ];
27
28 public static function checkWithAccess(int $userId): Result
29 {
30 $result = static::check();
31
32 if (!$result->isSuccess())
33 {
34 return $result;
35 }
36
37 $accessController = CollabAccessController::getInstance($userId);
38 $accessController->check(CollabDictionary::CREATE, new CollabModel());
39
40 $result->addErrors($accessController->getErrors());
41
42 return $result;
43 }
44
45 public static function check(): Result
46 {
47 $result = static::checkRequiredModules();
48
49 if (!$result->isSuccess())
50 {
51 return $result;
52 }
53
54 return static::checkExtranetConfigured();
55 }
56
57 public static function checkRequiredModules(): Result
58 {
59 $result = new Result();
60
61 $uninstalledModules = [];
62 foreach (static::REQUIRED_MODULES as $module)
63 {
64 if (!ModuleManager::isModuleInstalled($module))
65 {
66 $uninstalledModules[] = $module;
67 }
68 }
69
70 if (empty($uninstalledModules))
71 {
72 return $result;
73 }
74
75 $uninstalledModules = implode(', ', $uninstalledModules);
76
77 $error = new Error(Loc::getMessage('SOCIALNETWORK_COLLAB_REQUIREMENT_UNINSTALLED_MODULES', [
78 '#MODULES#' => $uninstalledModules,
79 ]));
80
81 $result->addError($error);
82
83 return $result;
84 }
85
86 public static function checkExtranetConfigured(): Result
87 {
88 $result = new Result();
89
90 $extranetSiteId = Extranet::getSiteId();
91 if (!empty($extranetSiteId))
92 {
93 return $result;
94 }
95
96 $error = new Error(Loc::getMessage('SOCIALNETWORK_COLLAB_REQUIREMENT_NOT_CONFIGURED_EXTRANET_SITE'));
97
98 $result->addError($error);
99
100 return $result;
101 }
102}
$accessController
Определения options.php:23
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
Определения check_mail.php:18
Определения error.php:15
static checkWithAccess(int $userId)
Определения Requirement.php:28
static checkExtranetConfigured()
Определения Requirement.php:86
static checkRequiredModules()
Определения Requirement.php:57
$result
Определения get_property_values.php:14
$error
Определения subscription_card_product.php:20