diff --git a/lib/Routes/Opencast/UserRoles.php b/lib/Routes/Opencast/UserRoles.php
index 005bbed0937ebc369c892263f0841c645992f345..6e8c7fcbb41d02d61ed83deee29944843b2ac875 100644
--- a/lib/Routes/Opencast/UserRoles.php
+++ b/lib/Routes/Opencast/UserRoles.php
@@ -68,15 +68,14 @@ class UserRoles extends OpencastController
             // Admin users have permissions on videos of all administrated courses
             else if ($GLOBALS['perm']->have_perm('admin', $user_id)) {
 
-                $sem_user = new \Seminar_User($user_id);
-
-                $nobody = $GLOBALS['user'];
-                $GLOBALS['user'] = $sem_user;
-
-                $filter = \AdminCourseFilter::get();
-                $courses = array_column($filter->getCourses(), 'seminar_id');
-
-                $GLOBALS['user'] = $nobody;
+                $plugin_id = \PluginEngine::getPlugin('OpencastV3')->getPluginId();
+                $stmt = \DBManager::get()->prepare("SELECT seminar_id FROM seminar_inst
+                    JOIN Institute USING(institut_id)
+                    JOIN user_inst ON user_inst.institut_id IN (fakultaets_id, seminar_inst.institut_id)
+                    JOIN tools_activated ON seminar_id = range_id AND range_type = 'course'
+                    WHERE user_id = :user_id AND plugin_id = :plugin_id GROUP BY seminar_id");
+                $stmt->execute([':user_id' => $user_id, ':plugin_id' => $plugin_id]);
+                $courses = $stmt->fetchAll(\PDO::FETCH_COLUMN);
 
                 foreach ($courses as $course_id) {
                     $roles[$course_id . '_Instructor'] = $course_id . '_Instructor';