1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
ActionGroup.php
См. документацию.
1<?php
2
3namespace Bitrix\Im\V2\Permission;
4
5use Bitrix\Im\V2\Chat;
6
7enum ActionGroup: string
8{
9 case ManageUi = 'MANAGE_UI';
10 case ManageUsersAdd = 'MANAGE_USERS_ADD';
11 case ManageUsersDelete = 'MANAGE_USERS_DELETE';
12 case ManageSettings = 'MANAGE_SETTINGS';
13 case ManageMessages = 'MANAGE_MESSAGES';
14 case ManageMessagesAutoDelete = 'MANAGE_MESSAGES_AUTO_DELETE';
15
16 public static function tryFromAction(Action $action): ?ActionGroup
17 {
18 $actionName = $action->value;
19
20 foreach (self::cases() as $case)
21 {
22 if (in_array($actionName, $case->getActions(), true))
23 {
24 return $case;
25 }
26 }
27
28 return null;
29 }
30
34 public function getActions(): array
35 {
36 return match ($this)
37 {
38 self::ManageUi => [
39 Action::Rename->value,
40 Action::ChangeDescription->value,
41 Action::ChangeColor->value,
42 Action::ChangeAvatar->value
43 ],
44 self::ManageUsersAdd => [Action::Extend->value],
45 self::ManageUsersDelete => [Action::Kick->value],
46 self::ManageSettings => [Action::ChangeRight->value, Action::ChangeOwner->value, Action::ChangeManagers->value],
47 self::ManageMessages => [Action::Send->value, Action::PinMessage->value],
48 self::ManageMessagesAutoDelete => [Action::ChangeMessagesAutoDeleteDelay->value],
49 };
50 }
51
52 public static function getDefinitions(): array
53 {
54 $result = [];
55
56 foreach (self::cases() as $case)
57 {
58 $result[$case->value] = $case->getActions();
59 }
60
61 return $result;
62 }
63
64 public static function getDefaultPermissions(): array
65 {
66 return [
67 self::ManageUi->value => Chat::ROLE_MEMBER,
68 self::ManageUsersAdd->value => Chat::ROLE_MEMBER,
69 self::ManageUsersDelete->value => Chat::ROLE_MANAGER,
70 self::ManageSettings->value => Chat::ROLE_OWNER,
71 self::ManageMessages->value => Chat::ROLE_MEMBER,
72 self::ManageMessagesAutoDelete->value => Chat::ROLE_OWNER,
73 ];
74 }
75}
@ tryFromAction
Определения ActionGroup.php:16
Action
Определения Action.php:6
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$action
Определения file_dialog.php:21