ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilChatroomBanGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
5require_once 'Modules/Chatroom/classes/class.ilChatroomUser.php';
6
14{
18 public function delete()
19 {
20 $users = $_REQUEST['banned_user_id'];
21
22 if (!is_array($users)) {
23 ilUtil::sendInfo($this->ilLng->txt('no_checkbox'), true);
24 $this->ilCtrl->redirect($this->gui, 'ban-show');
25 }
26
27 $room = ilChatroom::byObjectId($this->gui->object->getId());
28 $room->unbanUser($users);
29
30 $this->ilCtrl->redirect($this->gui, 'ban-show');
31 }
32
36 public function executeDefault($method)
37 {
38 $this->show();
39 }
40
44 public function show()
45 {
46 include_once 'Modules/Chatroom/classes/class.ilChatroom.php';
47
48 $this->redirectIfNoPermission('read');
49
50 $this->gui->switchToVisibleMode();
51
52 require_once 'Modules/Chatroom/classes/class.ilBannedUsersTableGUI.php';
53
54 $table = new ilBannedUsersTableGUI($this->gui, 'ban-show');
55 $table->setFormAction($GLOBALS['DIC']->ctrl()->getFormAction($this->gui, 'ban-show'));
56
57 $room = ilChatroom::byObjectId($this->gui->object->getId());
58 if ($room) {
59 $data = $room->getBannedUsers();
60
61 $actorIDs = array_filter(array_map(function ($row) {
62 return $row['actor_id'];
63 }, $data));
64
65 require_once 'Services/User/classes/class.ilUserUtil.php';
66 $sortable_names = ilUserUtil::getNamePresentation($actorIDs);
67 $names = ilUserUtil::getNamePresentation($actorIDs, false, false, '', false, false, false);
68
69 array_walk($data, function (&$row) use ($names, $sortable_names) {
70 if ($row['actor_id'] > 0 && isset($names[$row['actor_id']])) {
71 $row['actor_display'] = $names[$row['actor_id']];
72 $row['actor'] = $sortable_names[$row['actor_id']];
73 } else {
74 $row['actor_display'] = $GLOBALS['DIC']->language()->txt('unknown');
75 $row['actor'] = $GLOBALS['DIC']->language()->txt('unknown');
76 }
77 });
78
79 $table->setData($data);
80 }
81
82 $this->gui->tpl->setVariable('ADM_CONTENT', $table->getHTML());
83 }
84
88 public function active()
89 {
90 $this->redirectIfNoPermission(array('read', 'moderate'));
91
92 $room = ilChatroom::byObjectId($this->gui->object->getId());
93 $subRoomId = $_REQUEST['sub'];
94 $userToBan = $_REQUEST['user'];
95
96 $this->exitIfNoRoomExists($room);
97
98 $connector = $this->gui->getConnector();
99 $response = $connector->sendBan($room->getRoomId(), $subRoomId, $userToBan); // @TODO Respect Scope
100
101 if ($this->isSuccessful($response)) {
102 $room->banUser($_REQUEST['user'], $GLOBALS['DIC']->user()->getId());
103 $room->disconnectUser($_REQUEST['user']);
104 }
105
106 $this->sendResponse($response);
107 }
108}
user()
Definition: user.php:4
$users
Definition: authpage.php:44
An exception for terminatinating execution or to throw for unit testing.
Class ilBannedUsersTableGUI.
Class ilChatroomBanGUI.
active()
Kicks and bans user, fetched from $_REQUEST['user'] and adds history entry.
executeDefault($method)
{mixed}
show()
Displays banned users task.
Class ilChatroomGUIHandler.
redirectIfNoPermission($permission)
Checks for requested permissions and redirects if the permission check failed.
sendResponse($response)
Sends a json encoded response and exits the php process.
exitIfNoRoomExists($room)
Checks if a ilChatroom exists.
isSuccessful($response)
Checks for success param in an json decoded response.
static byObjectId($object_id)
Returns ilChatroom object by given $object_id.
This class provides processing control methods.
redirect($a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to another command.
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
$response
if(empty($password)) $table
Definition: pwgen.php:24