diff --git a/app/controllers/messages.php b/app/controllers/messages.php
index 3a4b8ef0c1ca77f62b23d5f42cbb3831dd94b3a0..dd51e8faa5998e7acb936083af8ce9497151f4d8 100644
--- a/app/controllers/messages.php
+++ b/app/controllers/messages.php
@@ -275,81 +275,74 @@ class MessagesController extends AuthenticatedController {
         }
 
         //check if the message shall be sent to all (or some) members of a course:
-        if (Request::get('filter') && Request::option("course_id")) {
+        $filter = Request::get('filter');
+        if ($filter && Request::option("course_id")) {
+            $additional = '';
             $course = new Course(Request::option('course_id'));
+            $allow_tutor_filters = false;
             if ($GLOBALS['perm']->have_studip_perm('tutor', $course->id) || $course->getSemClass()['studygroup_mode'] || CourseConfig::get($course->id)->COURSE_STUDENT_MAILING) {
-                $this->default_message->receivers = [];
-                if (Request::get('filter') === 'claiming') {
-                    $cs = CourseSet::getSetForCourse($course->id);
-                    if (is_object($cs) && !$cs->hasAlgorithmRun()) {
-                        foreach (AdmissionPriority::getPrioritiesByCourse($cs->getId(), $course->id) as $user_id => $p) {
-                            $this->default_message->receivers[] = MessageUser::build(['user_id' => $user_id, 'snd_rec' => 'rec']);
-                        }
-                    }
-                } else {
-                    // Exclude hidden course members from mail if not at least tutor
-                    $additional = '';
-                    if (!$GLOBALS['perm']->have_studip_perm('tutor', $course->id)) {
-                        $additonal = " AND seminar_user.visible != 'no'";
-                    }
+                $allow_tutor_filters = true;
+                $additonal = " AND seminar_user.visible != 'no'";
+            }
+            $this->default_message->receivers = [];
+            $query = '';
+            $params = [$course->id, Request::option('who')];
 
-                    $params = [$course->id, Request::option('who')];
-                    switch (Request::get('filter')) {
-                        case 'send_sms_to_all':
-                            $query = "SELECT user_id, 'rec' AS snd_rec
+            if ($filter === 'send_sms_to_all' && $allow_tutor_filters) {
+                $query = "SELECT user_id, 'rec' AS snd_rec
                                       FROM seminar_user
                                       JOIN auth_user_md5 USING (user_id)
-                                      WHERE Seminar_id = ? AND status = ? {$additonal}
+                                      WHERE Seminar_id = ? AND status = ? {$additional}
                                       ORDER BY Nachname, Vorname";
-                            break;
-                        case 'all':
-                            $query = "SELECT user_id, 'rec' AS snd_rec
+            } elseif ($filter === 'all') {
+                $query = "SELECT user_id, 'rec' AS snd_rec
                                       FROM seminar_user
                                       JOIN auth_user_md5 USING (user_id)
-                                      WHERE Seminar_id = ? {$additonal}
+                                      WHERE Seminar_id = ? {$additional}
                                       ORDER BY Nachname, Vorname";
-                            break;
-                        case 'prelim':
-                            $query = "SELECT user_id, 'rec' AS snd_rec
+            } elseif ($filter === 'prelim' && $allow_tutor_filters) {
+                $query = "SELECT user_id, 'rec' AS snd_rec
                                       FROM admission_seminar_user
                                       JOIN auth_user_md5 USING (user_id)
                                       WHERE seminar_id = ? AND status = 'accepted'
-                                        {$additonal}
+                                      {$additional}
                                       ORDER BY Nachname, Vorname";
-                            break;
-                        case 'awaiting':
-                            $query = "SELECT user_id, 'rec' AS snd_rec
+            } elseif ($filter === 'awaiting' && $allow_tutor_filters) {
+                $query = "SELECT user_id, 'rec' AS snd_rec
                                       FROM admission_seminar_user
                                       JOIN auth_user_md5 USING (user_id)
                                       WHERE seminar_id = ? AND status = 'awaiting'
-                                        {$additonal}
+                                      {$additional}
                                       ORDER BY Nachname, Vorname";
-                            break;
-                        case 'inst_status':
-                            $query = "SELECT user_id, 'rec' AS snd_rec
+            } elseif ($filter === 'inst_status') {
+                $query = "SELECT user_id, 'rec' AS snd_rec
                                       FROM user_inst
                                       JOIN auth_user_md5 USING (user_id)
                                       WHERE Institut_id = ? AND inst_perms = ?
-                                        {$additonal}
+                                      {$additional}
                                       ORDER BY Nachname, Vorname";
-                            break;
-                        case 'not_grouped':
-                            $query = "SELECT seminar_user.user_id, 'rec' as snd_rec
+            } elseif ($filter === 'not_grouped' && $allow_tutor_filters) {
+                $query = "SELECT seminar_user.user_id, 'rec' as snd_rec
                                       FROM seminar_user
                                       JOIN auth_user_md5 USING (user_id)
                                       LEFT JOIN statusgruppen ON range_id = seminar_id
                                       LEFT JOIN statusgruppe_user ON statusgruppen.statusgruppe_id = statusgruppe_user.statusgruppe_id
-                                        AND seminar_user.user_id = statusgruppe_user.user_id
+                                      AND seminar_user.user_id = statusgruppe_user.user_id
                                       WHERE seminar_id = ?
                                       GROUP BY seminar_user.user_id
                                       HAVING COUNT(statusgruppe_user.statusgruppe_id) = 0
                                       ORDER BY Nachname, Vorname";
-                            break;
+            } elseif ($filter === 'claiming' && $allow_tutor_filters) {
+                $cs = CourseSet::getSetForCourse($course->id);
+                if (is_object($cs) && !$cs->hasAlgorithmRun()) {
+                    foreach (AdmissionPriority::getPrioritiesByCourse($cs->getId(), $course->id) as $user_id => $p) {
+                        $this->default_message->receivers = MessageUser::build(['user_id' => $user_id, 'snd_rec' => 'rec']);
                     }
-                    $this->default_message->receivers = DBManager::get()->fetchAll($query, $params, 'MessageUser::build');
                 }
             }
-
+            if ($query) {
+                $this->default_message->receivers = DBManager::get()->fetchAll($query, $params, 'MessageUser::build');
+            }
         }
 
         if (Request::option('prof_id') && Request::option('deg_id') && $GLOBALS['perm']->have_perm('root')) {