1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
ManageMessagesOption.php
См. документацию.
1<?php
2
3declare(strict_types=1);
4
5namespace Bitrix\Socialnetwork\Collab\Control\Option\Type;
6
7use Bitrix\Im\V2\Chat;
8use Bitrix\Main\Validation\Rule\InArray;
9use Bitrix\Socialnetwork\Collab\Collab;
10use Bitrix\Socialnetwork\Collab\Control\Option\AbstractOption;
11use Bitrix\Socialnetwork\Collab\Control\Option\Trait\UpdateCollabChatTrait;
12use Bitrix\Main\Result;
13use Bitrix\Socialnetwork\Collab\Permission\UserRole;
14
16{
17 use UpdateCollabChatTrait;
18
19 public const NAME = 'manageMessages';
20 public const DB_NAME = 'MANAGE_MESSAGES';
21
22 public const DEFAULT_VALUE = UserRole::MEMBER;
23
25 protected const ROLE_MAP = [
26 UserRole::MEMBER => 'MEMBER',
27 UserRole::MODERATOR => 'MANAGER',
28 UserRole::OWNER => 'OWNER',
29 ];
30
31 #[InArray(UserRole::ALLOWED_ROLES)]
32 protected string $value;
33
34 public function __construct(string $value)
35 {
36 parent::__construct(static::DB_NAME, strtoupper($value));
37 }
38
39 protected function applyImplementation(Collab $collab): Result
40 {
41 return $this->updateChat($collab, [
42 'MANAGE_MESSAGES' => static::ROLE_MAP[$this->value]
43 ]);
44 }
45}
Определения result.php:20