/** * @return array */ private function getReadableAreas() { /** * @var $ilUser ilObjUser * @var $rbacsystem ilRbacSystem */ global $ilUser, $rbacsystem; $readable_rooms = array(); $chatroom_objects = ilChatroom::getUntrashedChatReferences(); foreach ($chatroom_objects as $object) { if (isset($readable_rooms[$object['obj_id']])) { continue; } if ($rbacsystem->checkAccess('read', '', $object['ref_id'])) { $room = ilChatroom::byObjectId($object['obj_id']); if ($room && !$room->isUserBanned($ilUser->getId())) { $readable_rooms[$object['obj_id']] = array('ref_id' => $object['ref_id'], 'obj_id' => $object['obj_id'], 'room_id' => $room->getRoomId(), 'title' => $object['title']); } } } $title = array(); foreach ($readable_rooms as $k => $v) { $title[$k] = strtolower($v['title']); } array_multisort($title, SORT_STRING, $readable_rooms); return $readable_rooms; }