From b742d3008e6a47a1cd431392fc18bc98b05d7891 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Noack?= <noack@data-quest.de>
Date: Fri, 25 Aug 2023 13:18:11 +0000
Subject: [PATCH] Resolve #3099 "JSONAPI Route courses erlaubt nicht die
 Filterung nach Kategorien, Studienbereichen und EInrichtungen"

Closes #3099

Merge request studip/studip!2085
---
 .../JsonApi/Routes/Courses/CoursesIndex.php      | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/lib/classes/JsonApi/Routes/Courses/CoursesIndex.php b/lib/classes/JsonApi/Routes/Courses/CoursesIndex.php
index bddda07e5b7..fcbad91ca91 100644
--- a/lib/classes/JsonApi/Routes/Courses/CoursesIndex.php
+++ b/lib/classes/JsonApi/Routes/Courses/CoursesIndex.php
@@ -10,7 +10,7 @@ use JsonApi\JsonApiController;
 
 class CoursesIndex extends JsonApiController
 {
-    protected $allowedFilteringParameters = ['q', 'fields', 'semester'];
+    protected $allowedFilteringParameters = ['q', 'fields', 'semester', 'category', 'scope_choose', 'range_choose'];
 
     protected $allowedIncludePaths = [
         'blubber-threads',
@@ -92,9 +92,9 @@ class CoursesIndex extends JsonApiController
             'q' => '%%%',
             'fields' => 'all', // Titel, Lehrende...
             'semester' => 'all', // Semester
-            'search_sem_category' => null, // SEM_CLASS
-            'search_sem_scope_choose' => null, // Studienbereiche
-            'search_sem_range_choose' => null, // Einrichtungen,
+            'category' => null, // SEM_CLASS
+            'scope_choose' => null, // Studienbereiche
+            'range_choose' => null, // Einrichtungen,
             'combination' => 'OR', // OR|AND
         ];
 
@@ -112,8 +112,6 @@ class CoursesIndex extends JsonApiController
      */
     private function searchCourses(\User $user, array $filters)
     {
-        require_once 'lib/classes/searchtypes/SearchType.class.php';
-        require_once 'lib/classes/searchtypes/SeminarSearch.class.php';
 
         $visibleOnly = !(is_object($GLOBALS['perm'])
                          && $GLOBALS['perm']->have_perm(\Config::Get()->SEM_VISIBILITY_PERM, $user->id));
@@ -123,9 +121,9 @@ class CoursesIndex extends JsonApiController
                 'quick_search' => $filters['q'],
                 'qs_choose' => $filters['fields'],
                 'sem' => $filters['semester'],
-                'category' => $filters['search_sem_category'],
-                'scope_choose' => $filters['search_sem_scope_choose'],
-                'range_choose' => $filters['search_sem_range_choose'],
+                'category' => $filters['category'],
+                'scope_choose' => $filters['scope_choose'],
+                'range_choose' => $filters['range_choose'],
             ],
             $visibleOnly
         );
-- 
GitLab