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';