4 require_once
'Services/Object/classes/class.ilObjectAccess.php';
5 require_once
'Services/WebAccessChecker/interfaces/interface.ilWACCheckingClass.php';
26 $commands[] = array(
"permission" =>
"read",
"cmd" =>
"view",
"lang_var" =>
"enter",
"default" =>
true);
27 $commands[] = array(
"permission" =>
"write",
"cmd" =>
"settings-general",
"lang_var" =>
"settings");
40 if (is_string($a_target)) {
41 $t_arr = explode(
"_", $a_target);
43 if (count($t_arr) < 2 || $t_arr[0] !=
'chtr' || ((
int) $t_arr[1]) <= 0) {
61 public function _checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id =
"")
63 if ($a_user_id ==
'') {
64 $a_user_id =
$GLOBALS[
'DIC']->user()->getId();
67 return self::checkRoomAccess($a_permission, $a_ref_id, $a_obj_id, $a_user_id);
71 public static function checkRoomAccess($a_permission, $a_ref_id, $a_obj_id, $a_user_id)
73 if (self::$chat_enabled === null) {
75 self::$chat_enabled = (boolean) $chatSetting->get(
'chat_enabled');
78 if (
$GLOBALS[
'DIC']->rbac()->system()->checkAccessOfUser($a_user_id,
'write', $a_ref_id)) {
82 switch ($a_permission) {
86 $active = self::isActivated($a_ref_id, $a_obj_id, $visible);
87 $hasWriteAccess =
$GLOBALS[
'DIC']->rbac()->system()->checkAccessOfUser($a_user_id,
'write', $a_ref_id);
93 if (!$hasWriteAccess && !$active && !$visible) {
99 $hasWriteAccess =
$GLOBALS[
'DIC']->rbac()->system()->checkAccessOfUser($a_user_id,
'write', $a_ref_id);
100 if ($hasWriteAccess) {
104 $active = self::isActivated($a_ref_id, $a_obj_id);
112 return self::$chat_enabled;
123 if (!self::lookupOnline(
$objId)) {
124 $a_visible_flag =
false;
128 $a_visible_flag =
true;
130 require_once
'Services/Object/classes/class.ilObjectActivation.php';
132 switch ($item[
'timing_type']) {
134 if (time() < $item[
'timing_start'] || time() > $item[
'timing_end']) {
135 $a_visible_flag = $item[
'visible'];
153 $res = $DIC->database()->query(
"SELECT online_status FROM chatroom_settings WHERE object_id = " . $DIC->database()->quote($a_obj_id,
'integer'));
154 $row = $DIC->database()->fetchAssoc(
$res);
156 return (
bool) $row[
'online_status'];
164 if (preg_match(
"/chatroom\\/smilies\\//ui", $ilWACPath->
getPath())) {
static lookupOnline($a_obj_id)
static _checkGoto($a_target)
{}
const IL_NO_OBJECT_ACCESS
static getItem($a_ref_id)
Get item data.
_checkAccess($a_cmd, $a_permission, $a_ref_id, $a_obj_id, $a_user_id="")
{}
static checkUserPermissions($permissions, $ref_id, $send_info=true)
Checks user permissions by given array and ref_id.
Access class for chatroom objects.
foreach($_POST as $key=> $value) $res
canBeDelivered(ilWACPath $ilWACPath)
bool
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Class ilWACCheckingClass.
static isActivated($refId, $objId, &$a_visible_flag=null)
static checkRoomAccess($a_permission, $a_ref_id, $a_obj_id, $a_user_id)