1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
CheckAttachReadAccess.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Vote\Controller\Filter
;
4
5
use
Bitrix\Main\Engine\ActionFilter\Base
;
6
use
Bitrix\Main\Engine\CurrentUser
;
7
use
Bitrix\Main\Error
;
8
use
Bitrix\Main\Event
;
9
use
Bitrix\Main\EventResult
;
10
use
Bitrix\Vote\Model\Dto\AttachedVotePayload
;
11
12
class
CheckAttachReadAccess
extends
Base
13
{
14
public
function
onBeforeAction
(
Event
$event
): ?
EventResult
15
{
16
$payload = $this->getPayload();
17
if
($payload ===
null
)
18
{
19
return
null
;
20
}
21
22
if
($payload->attach ===
null
)
23
{
24
$this->
addError
(
new
Error
(
'Attach not found'
,
'ATTACH_NOT_FOUND'
));
25
26
return
new
EventResult
(EventResult::ERROR,
null
,
null
, $this);
27
}
28
29
if
(!$this->
hasAccess
($payload))
30
{
31
$this->
addError
(
new
Error
(
'Attach read access denied'
));
32
33
return
new
EventResult
(EventResult::ERROR,
null
,
null
, $this);
34
}
35
36
return
null
;
37
}
38
39
private
function
getPayload(): ?
AttachedVotePayload
40
{
41
foreach
($this->
getAction
()->getArguments() as $argument)
42
{
43
if
($argument instanceof
AttachedVotePayload
)
44
{
45
return
$argument;
46
}
47
}
48
49
return
null
;
50
}
51
52
protected
function
hasAccess
(
AttachedVotePayload
$payload): bool
53
{
54
return
$payload->attach->canRead((
int
)CurrentUser::get()->getId());
55
}
56
}
Bitrix\Main\Engine\ActionFilter\Base
Определения
base.php:15
Bitrix\Main\Engine\ActionFilter\Base\addError
addError(Error $error)
Определения
base.php:80
Bitrix\Main\Engine\ActionFilter\Base\getAction
getAction()
Определения
base.php:48
Bitrix\Main\Engine\CurrentUser
Определения
currentuser.php:8
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Main\Event
Определения
event.php:5
Bitrix\Main\EventResult
Определения
eventresult.php:5
Bitrix\Vote\Controller\Filter\CheckAttachReadAccess
Определения
CheckAttachReadAccess.php:13
Bitrix\Vote\Controller\Filter\CheckAttachReadAccess\onBeforeAction
onBeforeAction(Event $event)
Определения
CheckAttachReadAccess.php:14
Bitrix\Vote\Controller\Filter\CheckAttachReadAccess\hasAccess
hasAccess(AttachedVotePayload $payload)
Определения
CheckAttachReadAccess.php:52
Bitrix\Vote\Model\Dto\AttachedVotePayload
Определения
AttachedVotePayload.php:13
Bitrix\Vote\Controller\Filter
Определения
CheckAttachReadAccess.php:3
$event
$event
Определения
prolog_after.php:141
bitrix
modules
vote
lib
Controller
Filter
CheckAttachReadAccess.php
Создано системой
1.14.0