1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
AbstractAccessController.php
См. документацию.
1
<?php
2
3
declare(strict_types=1);
4
5
6
namespace
Bitrix\Socialnetwork\Permission
;
7
8
use
Bitrix\Main\Access\AccessibleController
;
9
use
Bitrix\Main\Access\AccessibleItem
;
10
use
Bitrix\Main\Access\BaseAccessController
;
11
use
Bitrix\Main\ArgumentException
;
12
use
Bitrix\Main\Error
;
13
use
Bitrix\Main\Type\Contract\Arrayable
;
14
use
Bitrix\Socialnetwork\Permission\Trait\AccessErrorTrait
;
15
use Bitrix\Socialnetwork\Permission\Trait\AccessUserTrait;
16
use ReflectionClass;
17
use ReflectionException;
18
19
abstract
class
AbstractAccessController
extends
BaseAccessController
implements
AccessErrorInterface
20
{
21
use AccessUserTrait;
22
use AccessErrorTrait;
23
24
abstract
public
function
getModel
(
array
|
Arrayable
$data
):
AccessModelInterface
;
25
abstract
public
function
getDictionary
():
AccessDictionaryInterface
;
26
27
public
function
forward
(
AccessibleController
|
string
$controller,
string
$action
,
AccessibleItem
$item, mixed $parameters =
null
): bool
28
{
29
$controllerInstance = $this->createController($controller);
30
31
$isAccess = $controllerInstance->check(
$action
, $item, $parameters);
32
33
if
(!$isAccess && $controllerInstance instanceof
AccessErrorInterface
)
34
{
35
$this->
addErrors
(...$controllerInstance->getErrors());
36
}
37
38
return
$isAccess;
39
}
40
41
public
function
addErrors
(
Error
...
$errors
): void
42
{
43
foreach
(
$errors
as
$error
)
44
{
45
$this->
addError
($error->getCode(),
$error
->getMessage());
46
}
47
}
48
52
protected
function
createController(
AccessibleController
|
string
$controller):
AccessibleController
53
{
54
if
($controller instanceof
AccessibleController
)
55
{
56
return
$controller;
57
}
58
59
try
60
{
61
$reflection =
new
ReflectionClass($controller);
62
64
$controllerInstance = $reflection->newInstance(userId: $this->user->getUserId());
65
}
66
catch
(ReflectionException $e)
67
{
68
throw
new
ArgumentException($e->getMessage(), $e->getCode());
69
}
70
71
if
(!$controllerInstance instanceof AccessibleController)
72
{
73
throw
new
ArgumentException(
'Wrong controller class'
);
74
}
75
76
return
$controllerInstance;
77
}
78
}
Bitrix\Main\Access\BaseAccessController
Определения
baseaccesscontroller.php:22
Bitrix\Main\ArgumentException
Определения
ArgumentException.php:9
Bitrix\Main\Error
Определения
error.php:15
Bitrix\Socialnetwork\Permission\AbstractAccessController
Определения
AbstractAccessController.php:20
Bitrix\Socialnetwork\Permission\AbstractAccessController\addErrors
addErrors(Error ... $errors)
Определения
AbstractAccessController.php:41
Bitrix\Socialnetwork\Permission\AbstractAccessController\getModel
getModel(array|Arrayable $data)
Bitrix\Socialnetwork\Permission\AbstractAccessController\forward
forward(AccessibleController|string $controller, string $action, AccessibleItem $item, mixed $parameters=null)
Определения
AbstractAccessController.php:27
Bitrix\Socialnetwork\Permission\AbstractAccessController\getDictionary
getDictionary()
$data
$data['IS_AVAILABLE']
Определения
.description.php:13
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$errors
$errors
Определения
iblock_catalog_edit.php:74
Bitrix\Main\Access\AccessibleController
Определения
accessiblecontroller.php:15
Bitrix\Main\Access\AccessibleItem
Определения
accessibleitem.php:13
Bitrix\Main\Type\Contract\Arrayable
Определения
arrayable.php:6
Bitrix\Socialnetwork\Permission\AccessDictionaryInterface
Определения
AccessDictionaryInterface.php:9
Bitrix\Socialnetwork\Permission\AccessErrorInterface
Определения
AccessErrorInterface.php:8
Bitrix\Socialnetwork\Permission\AccessErrorInterface\addError
addError(string $class, string $message)
Bitrix\Socialnetwork\Permission\AccessModelInterface
Определения
AccessModelInterface.php:11
Bitrix\Socialnetwork\Permission\Trait\AccessErrorTrait
trait AccessErrorTrait
Определения
AccessErrorTrait.php:9
Bitrix\Socialnetwork\Permission
Определения
AbstractAccessController.php:6
$error
$error
Определения
subscription_card_product.php:20
$action
$action
Определения
file_dialog.php:21
bitrix
modules
socialnetwork
lib
Permission
AbstractAccessController.php
Создано системой
1.14.0