1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
checkpermission.php
См. документацию.
1<?php
2namespace Bitrix\Translate\Controller;
3
4use Bitrix\Translate;
5use Bitrix\Main;
6use Bitrix\Main\Context;
7use Bitrix\Main\Localization\Loc;
8
9
11{
12 const ERROR_ACCESS_DENIED = 'access_denied';
13
17 private $checkLevel;
18
24 public function __construct($checkLevel = 'auth')
25 {
26 $this->checkLevel = $checkLevel;
27 parent::__construct();
28 }
29
37 public function onBeforeAction(Main\Event $event)
38 {
40 $user = $this->action->getCurrentUser();
41
42 $denied = false;
43 $accessMessage = '';
44 if (!($user instanceof Main\Engine\CurrentUser) || !$user->getId())
45 {
46 $denied = true;
47 $accessMessage = Loc::getMessage('TRANSLATE_FILTER_ERROR_ACCESS_DENIED');
48 }
49
50 if (!$denied)
51 {
52 switch ($this->checkLevel)
53 {
56 {
57 $denied = true;
58 $accessMessage = Loc::getMessage('TRANSLATE_FILTER_ERROR_WRITING_RIGHTS');
59 }
60 break;
61
64 {
65 $denied = true;
66 $accessMessage = Loc::getMessage('TRANSLATE_FILTER_ERROR_WRITING_RIGHTS');
67 }
68 break;
69
70 case Translate\Permission::READ:
71 if (!Translate\Permission::canView($user))
72 {
73 $denied = true;
74 $accessMessage = Loc::getMessage('TRANSLATE_FILTER_ERROR_ACCESS_DENIED');
75 }
76 break;
77 }
78 }
79
80 if ($denied)
81 {
82 Context::getCurrent()->getResponse()->setStatus(401);
83 $this->errorCollection[] = new Main\Error($accessMessage, self::ERROR_ACCESS_DENIED);
84
85 return new Main\EventResult(Main\EventResult::ERROR, null, null, $this);
86 }
87
88 return null;
89 }
90}
onBeforeAction(Event $event)
Определения base.php:66
Определения event.php:5
__construct($checkLevel='auth')
Определения checkpermission.php:24
static canView($checkUser)
Определения permission.php:92
static canEdit($checkUser)
Определения permission.php:123
const WRITE
Определения permission.php:12
static canEditSource($checkUser)
Определения permission.php:56
const SOURCE
Определения permission.php:11
Определения action.php:3
$user
Определения mysql_to_pgsql.php:33
Определения autoload.php:3
$event
Определения prolog_after.php:141