ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilObjBookingPoolAccess.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5
16{
20 protected $user;
21
25 protected $rbacsystem;
26
27
31 public function __construct()
32 {
33 global $DIC;
34
35 $this->user = $DIC->user();
36 $this->rbacsystem = $DIC->rbac()->system();
37 }
38
39
52 public static function _getCommands()
53 {
54 $commands = array();
55 $commands[] = array("permission" => "read", "cmd" => "render", "lang_var" => "show", "default" => true);
56 $commands[] = array("permission" => "write", "cmd" => "render", "lang_var" => "edit_content");
57 $commands[] = array("permission" => "write", "cmd" => "edit", "lang_var" => "settings");
58
59 return $commands;
60 }
61
65 public static function _checkGoto($a_target)
66 {
67 global $DIC;
68
69 $ilAccess = $DIC->access();
70
71 $t_arr = explode("_", $a_target);
72
73 if ($t_arr[0] != "book" || ((int) $t_arr[1]) <= 0) {
74 return false;
75 }
76
77 if ($ilAccess->checkAccess("read", "", $t_arr[1]) ||
78 $ilAccess->checkAccess("visible", "", $t_arr[1])) {
79 return true;
80 }
81 return false;
82 }
83
84 public function _checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id = "")
85 {
88
89 if ($a_user_id == "") {
90 $a_user_id = $ilUser->getId();
91 }
92
93 // add no access info item and return false if access is not granted
94 // $ilAccess->addInfoItem(IL_NO_OBJECT_ACCESS, $a_text, $a_data = "");
95 //
96 // for all RBAC checks use checkAccessOfUser instead the normal checkAccess-method:
97 // $rbacsystem->checkAccessOfUser($a_user_id, $a_permission, $a_ref_id)
98
99 //TODO refactor this: first check if the object is online and then the permissions.
100 #22653
101 if (($a_permission == "visible" || $a_permission == "read") && !$rbacsystem->checkAccessOfUser($a_user_id, 'write', $a_ref_id)) {
102 $pool = new ilObjBookingPool($a_ref_id);
103 if ($pool->isOffline()) {
104 return false;
105 }
106 }
107
108 return true;
109 }
110
116 public static function _lookupOnlineStatus($a_ids)
117 {
118 global $DIC;
119
120 $ilDB = $DIC->database();
121
122 $q = "SELECT booking_pool_id, pool_offline FROM booking_settings WHERE " .
123 $ilDB->in("booking_pool_id", $a_ids, false, "integer");
124 $lm_set = $ilDB->query($q);
125 $status = [];
126 while ($r = $ilDB->fetchAssoc($lm_set)) {
127 $status[$r["booking_pool_id"]] = !$r["pool_offline"];
128 }
129 return $status;
130 }
131
132
138 public function canBeDelivered(ilWACPath $ilWACPath)
139 {
140
141 // we return always false, since the files in the file/ and post/ directoies
142 // are server by php (they could/should be moved to the data dir outside of the web doc root)
143 return false;
144 }
145}
user()
Definition: user.php:4
An exception for terminatinating execution or to throw for unit testing.
Class ilObjBookingPoolAccess.
static _checkGoto($a_target)
check whether goto script will succeed
_checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="")
Checks wether a user may invoke a command or not (this method is called by ilAccessHandler::checkAcce...
static _lookupOnlineStatus($a_ids)
Check wether booking pool is online (legacy version)
Class ilObjBookingPool.
Class ilObjectAccess.
Class ilWACPath.
global $DIC
Definition: goto.php:24
$ilUser
Definition: imgupload.php:18
Class ilWACCheckingClass.
global $ilDB
$lm_set