Bitrix-D7 23.9
 
Загрузка...
Поиск...
Не найдено
VariableRule.php
1<?php
2
4
7
23{
24 public function getPermissionMultiValues($params): ?array
25 {
26 if (!Feature::isAccessControllerCheckingEnabled())
27 {
28 return [$this->getAllValue()];
29 }
30
31 $permissionCode = static::getPermissionCode($params);
32
33 $values = $this->user->getPermissionMulti($permissionCode);
34 return $values ? array_intersect($values, $this->getAvailableValues()): null;
35 }
36
37 protected function getAvailableValues(): array
38 {
39 $values = $this->loadAvailableValues();
40 $values[] = $this->getAllValue();
41
42 return $values;
43 }
44
45 protected function loadAvailableValues(): array
46 {
47 return [];
48 }
49
50 protected function getAllValue(): int
51 {
52 return PermissionDictionary::VALUE_VARIATION_ALL;
53 }
54
55 protected function check($params): bool
56 {
58 $values = $this->getPermissionMultiValues($params);
59 if (!$values)
60 {
61 return false;
62 }
63
64 if (
65 (!isset($params['value']) && !empty($values))
66 || in_array($this->getAllValue(), $values, true)
67 )
68 {
69 return true;
70 }
71
72 $checkStoreIds = (array)($params['value'] ?? []);
73
74 return empty(
75 array_diff($checkStoreIds, $values)
76 );
77 }
78}