ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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 
4 require_once 'Modules/Chatroom/classes/class.ilChatroom.php';
5 require_once 'Modules/Chatroom/classes/class.ilChatroomUser.php';
6 
14 {
16  private $controller;
17 
19  private $language;
20 
22  private $user;
23 
30  public function __construct(
32  \ilCtrl $controller = null,
33  \ilLanguage $language = null,
34  \ilUser $user = null
35  ) {
36  if ($controller === null) {
37  global $DIC;
38  $controller = $DIC->ctrl();
39  }
40  $this->controller = $controller;
41 
42  if ($language === null) {
43  global $DIC;
44  $language = $DIC->language();
45  }
46  $this->language = $language;
47 
48  if ($user === null) {
49  global $DIC;
50  $user = $DIC->user();
51  }
52  $this->user = $user;
53 
54  parent::__construct($gui);
55  }
56 
60  public function delete()
61  {
62  $users = $_REQUEST['banned_user_id'];
63 
64  if (!is_array($users)) {
65  ilUtil::sendInfo($this->ilLng->txt('no_checkbox'), true);
66  $this->ilCtrl->redirect($this->gui, 'ban-show');
67  }
68 
69  $room = ilChatroom::byObjectId($this->gui->object->getId());
70  $room->unbanUser($users);
71 
72  $this->ilCtrl->redirect($this->gui, 'ban-show');
73  }
74 
78  public function executeDefault($method)
79  {
80  $this->show();
81  }
82 
86  public function show()
87  {
88  include_once 'Modules/Chatroom/classes/class.ilChatroom.php';
89 
90  $this->redirectIfNoPermission('read');
91 
92  $this->gui->switchToVisibleMode();
93 
94  require_once 'Modules/Chatroom/classes/class.ilBannedUsersTableGUI.php';
95 
96  $table = new ilBannedUsersTableGUI($this->gui, 'ban-show');
97  $table->setFormAction($this->controller->getFormAction($this->gui, 'ban-show'));
98 
99  $room = ilChatroom::byObjectId($this->gui->object->getId());
100  if ($room) {
101  $data = $room->getBannedUsers();
102 
103  $actorIDs = array_filter(array_map(function ($row) {
104  return $row['actor_id'];
105  }, $data));
106 
107  require_once 'Services/User/classes/class.ilUserUtil.php';
108  $sortable_names = ilUserUtil::getNamePresentation($actorIDs);
109  $names = ilUserUtil::getNamePresentation($actorIDs, false, false, '', false, false, false);
110 
111  array_walk($data, function (&$row) use ($names, $sortable_names) {
112  if ($row['actor_id'] > 0 && isset($names[$row['actor_id']])) {
113  $row['actor_display'] = $names[$row['actor_id']];
114  $row['actor'] = $sortable_names[$row['actor_id']];
115  } else {
116  $row['actor_display'] = $this->language->txt('unknown');
117  $row['actor'] = $this->language->txt('unknown');
118  }
119  });
120 
121  $table->setData($data);
122  }
123 
124  $this->gui->tpl->setVariable('ADM_CONTENT', $table->getHTML());
125  }
126 
130  public function active()
131  {
132  $this->redirectIfNoPermission(array('read', 'moderate'));
133 
134  $room = ilChatroom::byObjectId($this->gui->object->getId());
135  $subRoomId = $_REQUEST['sub'];
136  $userToBan = $_REQUEST['user'];
137 
138  $this->exitIfNoRoomExists($room);
139 
140  $connector = $this->gui->getConnector();
141  $response = $connector->sendBan($room->getRoomId(), $subRoomId, $userToBan); // @TODO Respect Scope
142 
143  if ($this->isSuccessful($response)) {
144  $room->banUser($_REQUEST['user'], $this->user->getId());
145  $room->disconnectUser($_REQUEST['user']);
146  }
147 
148  $this->sendResponse($response);
149  }
150 }
This class provides processing control methods.
__construct(ilChatroomObjectGUI $gui, \ilCtrl $controller=null, \ilLanguage $language=null, \ilUser $user=null)
global $DIC
Definition: saml.php:7
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.
show()
Displays banned users task.
user()
Definition: user.php:4
Class ilChatroomBanGUI.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Class ilChatroomGUIHandler.
Class ilBannedUsersTableGUI.
active()
Kicks and bans user, fetched from $_REQUEST[&#39;user&#39;] and adds history entry.
isSuccessful($response)
Checks for success param in an json decoded response.
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:
$users
Definition: authpage.php:44
$row
language handling
static byObjectId($object_id)
Returns ilChatroom object by given $object_id.
if(empty($password)) $table
Definition: pwgen.php:24
$response
redirect($a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false)
Redirect to another command.
$data
Definition: bench.php:6