Skip to content
Snippets Groups Projects
Commit 5e590653 authored by David Siegfried's avatar David Siegfried
Browse files

fix filtering, closes #220

Closes #220

Merge request studip/studip!915
parent cb83c5f6
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,6 @@ class Resources_RoomRequestController extends AuthenticatedController
$this->current_user = User::findCurrent();
if (in_array($action, ['overview', 'planning', 'export_list', 'resolve', 'decline'])) {
$this->current_user = User::findCurrent();
$user_is_global_resource_autor = ResourceManager::userHasGlobalPermission($this->current_user, 'autor');
if (!RoomManager::userHasRooms($this->current_user, 'autor', true) && !$user_is_global_resource_autor) {
throw new AccessDeniedException(_('Ihre Berechtigungen an Räumen reichen nicht aus, um die Anfrageliste anzeigen zu können!'));
......@@ -72,7 +71,6 @@ class Resources_RoomRequestController extends AuthenticatedController
$GLOBALS['user']->cfg->MY_COURSES_SELECTED_CYCLE = Semester::findCurrent()->id;
}
$this->filter['marked'] = -1;
$this->filter['own_requests'] = 1;
if (Request::submitted('marked')) {
$this->filter['marked'] = Request::get('marked');
}
......@@ -85,10 +83,10 @@ class Resources_RoomRequestController extends AuthenticatedController
}
}
if (Request::submitted('toggle_specific_requests')) {
$this->filter['specific_requests'] = $this->filter['specific_requests'] ? 0 : 1;
$this->filter['specific_requests'] = !Request::bool('toggle_specific_requests');
}
if (Request::submitted('toggle_own_requests')) {
$this->filter['own_requests'] = $this->filter['own_requests'] ? 0 : 1;
$this->filter['own_requests'] = !Request::bool('toggle_own_requests');
}
if (Request::submitted('course_type')) {
$this->filter['course_type'] = Request::option('course_type');
......@@ -212,9 +210,9 @@ class Resources_RoomRequestController extends AuthenticatedController
$sql .= "OR resource_id IS NULL or resource_id = ''";
}
$sql .= ") ";
if (!$this->filter['own_requests']) {
$sql .= " AND resource_requests.user_id <> :current_user_id ";
$sql_params['current_user_id'] = User::findCurrent()->id;
if (!empty($this->filter['own_requests'])) {
$sql .= " AND resource_requests.user_id = :current_user_id ";
$sql_params['current_user_id'] = $this->current_user->id;
}
if (!empty($this->filter['request_periods']) && $this->filter['request_periods'] == 'periodic') {
......@@ -419,7 +417,7 @@ class Resources_RoomRequestController extends AuthenticatedController
* Sorts the resource requests according to columns not belonging to the
* resource requests db table.
*
* @param Array $requests array of ResourceRequest objects
* @param array $requests array of ResourceRequest objects
* @param int $sort_variable property according to which the requests should be sorted
* values 1 and 10 are database columns (marked state and chdate) and already dealt with
2 = lecture number
......@@ -432,7 +430,7 @@ class Resources_RoomRequestController extends AuthenticatedController
9 = priority
* @param string $order ascending ('asc') or descending ('desc') order
*
* @return sorted array of resource requests
* @return array sorted array of resource requests
*/
protected function sort_request_table($requests, int $sort_variable, string $order)
{
......@@ -547,7 +545,6 @@ class Resources_RoomRequestController extends AuthenticatedController
if (Navigation::hasItem('/resources/planning/requests_overview')) {
Navigation::activateItem('/resources/planning/requests_overview');
}
PageLayout::setTitle(_('Anfragenliste'));
$sidebar = Sidebar::get();
......@@ -670,7 +667,7 @@ class Resources_RoomRequestController extends AuthenticatedController
$widget->addElement(
new SelectElement(
'',
_('bitte wählen'),
_('Bitte wählen'),
empty($this->filter['room_id'])
)
);
......@@ -722,13 +719,14 @@ class Resources_RoomRequestController extends AuthenticatedController
$widget->addCheckbox(
_('Nur mit Raumangabe'),
!empty($this->filter['specific_requests']),
$this->overviewURL(['toggle_specific_requests' => 1])
$this->overviewURL(['toggle_specific_requests' => !empty($this->filter['specific_requests'])])
);
$widget->addCheckbox(
_('Eigene Anfragen anzeigen'),
$this->filter['own_requests'],
$this->overviewURL(['toggle_own_requests' => 1])
!empty($this->filter['own_requests']),
$this->overviewURL(['toggle_own_requests' => !empty($this->filter['own_requests'])])
);
$sidebar->addWidget($widget);
$dow_selector = new SelectWidget(
......@@ -861,8 +859,8 @@ class Resources_RoomRequestController extends AuthenticatedController
$this->resource->getFullName()
)
);
$current_user = User::findCurrent();
if (!$this->resource->userHasRequestRights($current_user)) {
if (!$this->resource->userHasRequestRights($this->current_user)) {
throw new AccessDeniedException();
}
$this->form_action_link = $this->link_for('resources/room_request/add/' . $this->resource->id);
......@@ -1036,7 +1034,7 @@ class Resources_RoomRequestController extends AuthenticatedController
try {
//All checks are done in Resource::createSimpleRequest.
$request = $this->resource->createSimpleRequest(
User::findCurrent(),
$this->current_user,
$new_begin,
$new_end,
$this->comment,
......@@ -1097,14 +1095,12 @@ class Resources_RoomRequestController extends AuthenticatedController
return;
}
$current_user = User::findCurrent();
//Since all Stud.IP users are allowed to create requests,
//there is no restriction for creating requests.
$user_may_edit_request = $this->resource->userHasPermission(
$current_user,
$this->current_user,
'autor'
) || $this->request->user_id == $current_user->id;
) || $this->request->user_id === $this->current_user->id;
if (!$user_may_edit_request) {
throw new AccessDeniedException();
......@@ -2701,12 +2697,12 @@ class Resources_RoomRequestController extends AuthenticatedController
$widget->addCheckbox(
_('Nur mit Raumangabe'),
!empty($this->filter['specific_requests']),
$this->planningURL(['toggle_specific_requests' => 1])
$this->overviewURL(['toggle_specific_requests' => !empty($this->filter['specific_requests'])])
);
$widget->addCheckbox(
_('Eigene Anfragen anzeigen'),
$this->filter['own_requests'],
$this->planningURL(['toggle_own_requests' => 1])
!empty($this->filter['own_requests']),
$this->overviewURL(['toggle_own_requests' => !empty($this->filter['own_requests'])])
);
$sidebar->addWidget($widget);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment