ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 }
static _checkGoto($a_target)
check whether goto script will succeed
Class ilObjBookingPool.
Class ilWACPath.
user()
Definition: user.php:4
static _lookupOnlineStatus($a_ids)
Check wether booking pool is online (legacy version)
global $DIC
Definition: goto.php:24
Class ilWACCheckingClass.
_checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="")
$lm_set
global $ilDB
$ilUser
Definition: imgupload.php:18
Class ilObjBookingPoolAccess.