ILIAS  trunk Revision v12.0_alpha-16-g3e876e53c80
class.ilObjStaticUrlServiceAccess.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
25{
29 private ?int $ref_id;
30 private ?array $global_roles = null;
31
32 public function __construct()
33 {
34 global $DIC;
35 $this->rbacreview = $DIC->rbac()->review();
36 $this->rbacsystem = $DIC->rbac()->system();
37 $this->user = $DIC->user();
38 $this->ref_id = $DIC->http()->wrapper()->query()->has('ref_id')
39 ? $DIC->http()->wrapper()->query()->retrieve('ref_id', $DIC->refinery()->kindlyTo()->int())
40 : null;
41 }
42
43 public function checkAccessAndThrowException(string $permission): void
44 {
45 if (!$this->hasUserPermissionTo($permission)) {
46 throw new ilException('Permission denied');
47 }
48 }
49
50 public function hasUserPermissionTo(string $permission): bool
51 {
52 if ($this->ref_id === null) {
53 return false;
54 }
55 return $this->rbacsystem->checkAccess($permission, $this->ref_id);
56 }
57
58 public function getGlobalRoles(): array
59 {
60 $global_roles = $this->rbacreview->getRolesForIDs(
61 $this->rbacreview->getGlobalRoles(),
62 false
63 );
64
65 $roles = [];
66 foreach ($global_roles as $global_role) {
67 $roles[$global_role['rol_id']] = $global_role['title'];
68 }
69
70 return $roles;
71 }
72
73 private function resolveUsersGlobalRoles(): array
74 {
75 return $this->global_roles
76 ?? $this->global_roles = $this->rbacreview->assignedGlobalRoles($this->user->getId());
77 }
78}
Base class for ILIAS Exception handling.
User class.
Class ilObjectAccess.
class ilRbacReview Contains Review functions of core Rbac.
class ilRbacSystem system function like checkAccess, addActiveRole ... Supporting system functions ar...
global $DIC
Definition: shib_login.php:26