1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
CheckAttachReadAccess.php
См. документацию.
1<?php
2
4
11
13{
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}
addError(Error $error)
Определения base.php:80
Определения error.php:15
Определения event.php:5
hasAccess(AttachedVotePayload $payload)
Определения CheckAttachReadAccess.php:52
$event
Определения prolog_after.php:141