1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
CollabUpdateRule.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\SocialNetwork\Collab\Access\Rule;
6
7use Bitrix\Main\Access\AccessibleItem;
8use Bitrix\Main\Access\Rule\AbstractRule;
9use Bitrix\Socialnetwork\Permission\GroupAccessController;
10use Bitrix\Socialnetwork\Permission\GroupDictionary;
11use Bitrix\SocialNetwork\Collab\Access\CollabAccessController;
12use Bitrix\SocialNetwork\Collab\Access\CollabDictionary;
13use Bitrix\SocialNetwork\Collab\Access\Model\CollabModel;
14use Bitrix\SocialNetwork\Collab\Access\Rule\Trait\GetOptionTrait;
15use Bitrix\Socialnetwork\Collab\Controller\Collab;
16
18{
19 use GetOptionTrait;
20
22 protected $controller;
23
24 public function execute(AccessibleItem $item = null, $params = null): bool
25 {
26 if (!$item instanceof CollabModel)
27 {
28 $this->controller->addError(static::class, 'Wrong instance');
29
30 return false;
31 }
32
34 $collabBefore = $params;
35 $collabAfter = $item;
36
37 $addMembers = array_merge($collabAfter->getAddInvitedMembers(), $collabAfter->getAddMembers());
38 if (
39 !empty($addMembers)
40 && !$this->controller->check(CollabDictionary::INVITE, $item, $params)
41 )
42 {
43 $this->controller->addError(static::class, 'Access denied by invite rule');
44
45 return false;
46 }
47
48 $deleteMembers = $collabAfter->getDeleteMembers();
49 if (
50 !empty($deleteMembers)
51 && !$this->controller->check(CollabDictionary::EXCLUDE, $item, $params)
52 )
53 {
54 $this->controller->addError(static::class, 'Access denied by exclude rule');
55
56 return false;
57 }
58
59 $deleteModeratorMembers = $collabAfter->getDeleteModeratorMembers();
60 if (
61 !empty($deleteModeratorMembers)
62 && !$this->controller->check(CollabDictionary::EXCLUDE_MODERATOR, $item, $params)
63 )
64 {
65 $this->controller->addError(static::class, 'Access denied by exclude moderator rule');
66
67 return false;
68 }
69
70 $addModeratorMembers = $collabAfter->getAddModeratorMembers();
71 if (
72 !empty($addModeratorMembers)
73 && !$this->controller->check(CollabDictionary::SET_MODERATOR, $item, $params)
74 )
75 {
76 $this->controller->addError(static::class, 'Access denied by set moderator rule');
77
78 return false;
79 }
80
81 if (!$this->controller->forward(GroupAccessController::class, GroupDictionary::UPDATE, $item, $params))
82 {
83 $this->controller->addError(static::class, 'Access denied by group update rule');
84
85 return false;
86 }
87
88 return true;
89 }
90}
execute(AccessibleItem $item=null, $params=null)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799