ILIAS  trunk Revision v12.0_alpha-1540-g00f839d5fa1
class.ilObjLearningSequenceAccess.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
23 public static bool $using_code = false;
24
28 public static function _getCommands(): array
29 {
30 return array(
31 [
33 'permission' => 'read',
34 'lang_var' => 'show',
35 'default' => true
36 ],
37 [
39 'permission' => 'read',
40 'lang_var' => 'show',
41 ],
42 [
44 'permission' => 'write',
45 'lang_var' => 'edit_content'
46 ],
47 [
49 'permission' => 'write',
50 'lang_var' => 'settings'
51 ],
52 [
54 'permission' => 'unparticipate',
55 'lang_var' => 'unparticipate'
56 ]
57 );
58 }
59
60 public function usingRegistrationCode(): bool
61 {
62 return self::$using_code;
63 }
64
65 public function _checkAccess(string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id = null): bool
66 {
67 list($rbacsystem, $il_access, $lng) = $this->getDICDependencies();
68
69 switch ($permission) {
70 case 'visible':
71 $has_any_administrative_permission = false;
72 if (!is_null($user_id)) {
73 $has_any_administrative_permission = (
74 $rbacsystem->checkAccessOfUser($user_id, 'write', $ref_id) ||
75 $rbacsystem->checkAccessOfUser($user_id, 'edit_members', $ref_id) ||
76 $rbacsystem->checkAccessOfUser($user_id, 'edit_learning_progress', $ref_id)
77 );
78 }
79
80 if ($this->_isOffline($ref_id)
81 && !$has_any_administrative_permission
82 ) {
83 $il_access->addInfoItem(ilAccessInfo::IL_NO_OBJECT_ACCESS, $lng->txt("offline"));
84 return false;
85 }
86 return true;
87
88 default:
89 if (is_null($user_id)) {
90 return false;
91 }
92 return $rbacsystem->checkAccessOfUser($user_id, $permission, $ref_id);
93 }
94 }
95
99 protected function getDICDependencies(): array
100 {
101 global $DIC;
102 $rbacsystem = $DIC['rbacsystem'];
103 $il_access = $DIC['ilAccess'];
104 $lng = $DIC['lng'];
105
106 return [
107 $rbacsystem,
108 $il_access,
109 $lng
110 ];
111 }
112}
_checkAccess(string $cmd, string $permission, int $ref_id, int $obj_id, ?int $user_id=null)
Checks whether a user may invoke a command or not (this method is called by ilAccessHandler::checkAcc...
Class ilObjectAccess.
static _isOffline(int $obj_id)
Type-specific implementation of general status, has to be overwritten if object type does not support...
$ref_id
Definition: ltiauth.php:66
global $lng
Definition: privfeed.php:26
global $DIC
Definition: shib_login.php:26