ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\AccessControl Class Reference
+ Inheritance diagram for ILIAS\AccessControl:
+ Collaboration diagram for ILIAS\AccessControl:

Public Member Functions

 init (array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
 
 init (array|\ArrayAccess &$define, array|\ArrayAccess &$implement, array|\ArrayAccess &$use, array|\ArrayAccess &$contribute, array|\ArrayAccess &$seek, array|\ArrayAccess &$provide, array|\ArrayAccess &$pull, array|\ArrayAccess &$internal,)
 

Detailed Description

Definition at line 35 of file AccessControl.php.

Member Function Documentation

◆ init()

ILIAS\AccessControl::init ( array|\ArrayAccess &  $define,
array|\ArrayAccess &  $implement,
array|\ArrayAccess &  $use,
array|\ArrayAccess &  $contribute,
array|\ArrayAccess &  $seek,
array|\ArrayAccess &  $provide,
array|\ArrayAccess &  $pull,
array|\ArrayAccess &  $internal 
)

Implements ILIAS\Component\Component.

Definition at line 37 of file AccessControl.php.

46 : void {
47 // Public surface
48 $define[] = Access::class;
49 $define[] = RBAC::class;
50
51 // Internal proxies (concrete classes — no interfaces)
52 $internal[UserIdProviderProxy::class] = static fn() => new UserIdProviderProxy();
53 $internal[RepositoryTreeAccessProxy::class] = static fn() => new RepositoryTreeAccessProxy();
54 $internal[ObjectDataAccessProxy::class] = static fn() => new ObjectDataAccessProxy();
55 $internal[ObjectDefinitionAccessProxy::class] = static fn() => new ObjectDefinitionAccessProxy();
56
57 // Internal RBAC services (legacy concrete classes)
58 $internal[\ilRbacReview::class] = static fn() => new \ilRbacReview(
59 $pull[Connection::class],
60 $use[\ILIAS\Logging\Logger\LoggerFactoryInterface::class]->getLazy('ac'),
61 );
62
63 $internal[\ilRbacSystem::class] = static fn() => new \ilRbacSystem(
64 $internal[UserIdProviderProxy::class],
65 $pull[Connection::class],
66 $internal[\ilRbacReview::class],
67 $internal[RepositoryTreeAccessProxy::class],
68 $use[GlobalHttpState::class],
69 $pull[\ILIAS\Refinery\Factory::class],
70 $internal[ObjectDataAccessProxy::class],
71 );
72
73 $internal[\ilRbacAdmin::class] = static fn() => new \ilRbacAdmin(
74 $pull[Connection::class],
75 $internal[\ilRbacReview::class],
76 $use[\ILIAS\Logging\Logger\LoggerFactoryInterface::class]->getLazy('ac'),
77 );
78
79 // Public implementations (in case of RBAC for legacy reasons only)
80 $implement[RBAC::class] = static fn() => new DefaultRBAC(
81 $internal[\ilRbacReview::class],
82 $internal[\ilRbacSystem::class],
83 $internal[\ilRbacAdmin::class],
84 );
85
86 $implement[Access::class] = static fn() => new \ilAccess(
87 $internal[UserIdProviderProxy::class],
88 $pull[Connection::class],
89 $internal[\ilRbacSystem::class],
90 $internal[RepositoryTreeAccessProxy::class],
91 $internal[ObjectDefinitionAccessProxy::class],
92 $use[\ILIAS\Logging\Logger\LoggerFactoryInterface::class]->getLazy('ac'),
93 );
94
95 // Setup agents and assets
96 $contribute[\ILIAS\Setup\Agent::class] = static fn() =>
97 new \ilAccessControlSetupAgent(
98 $pull[\ILIAS\Refinery\Factory::class]
99 );
100 $contribute[\ILIAS\Setup\Agent::class] = static fn() =>
101 new \ilAccessRBACSetupAgent(
102 $pull[\ILIAS\Refinery\Factory::class]
103 );
104 $contribute[Component\Resource\PublicAsset::class] = fn() =>
105 new Component\Resource\ComponentJS($this, "ilPermSelect.js");
106 $contribute[LanguageFileDirectory::class] = fn() => new ComponentLanguageFileDirectory(
107 $this,
108 'rbac'
109 );
110 }
This is a js file provided by some component.
Definition: ComponentJS.php:27
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.

The documentation for this class was generated from the following file: