diff --git a/app/controllers/admission/courseset.php b/app/controllers/admission/courseset.php index b39cdfb7bf8ad29d60b716b18407bb55d499bae6..65d42470ea85a24051dae1093c6795808b3f6d6b 100644 --- a/app/controllers/admission/courseset.php +++ b/app/controllers/admission/courseset.php @@ -23,18 +23,17 @@ class Admission_CoursesetController extends AuthenticatedController { parent::before_filter($action, $args); - if (!Request::isXhr()) { - PageLayout::setTitle(_('Anmeldesets')); - // Get only own courses if user doesn't have permission to edit institute-wide coursesets. - $this->onlyOwnCourses = true; - if ($GLOBALS['perm']->have_perm('admin') || ($GLOBALS['perm']->have_perm('dozent') && Config::get()->ALLOW_DOZENT_COURSESET_ADMIN)) { - // We have access to institute-wide course sets, so all courses may be assigned. - $this->onlyOwnCourses = false; - Navigation::activateItem('/browse/coursesets/sets'); - } else { - throw new AccessDeniedException(); - } + PageLayout::setTitle(_('Anmeldesets')); + // Get only own courses if user doesn't have permission to edit institute-wide coursesets. + $this->onlyOwnCourses = true; + if ($GLOBALS['perm']->have_perm('admin') || ($GLOBALS['perm']->have_perm('dozent') && Config::get()->ALLOW_DOZENT_COURSESET_ADMIN)) { + // We have access to institute-wide course sets, so all courses may be assigned. + $this->onlyOwnCourses = false; + Navigation::activateItem('/browse/coursesets/sets'); + } else { + throw new AccessDeniedException(); } + PageLayout::addScript('studip-admission.js'); $views = new ActionsWidget(); @@ -44,6 +43,7 @@ class Admission_CoursesetController extends AuthenticatedController Icon::create('add') )->setActive($action === 'configure'); Sidebar::Get()->addWidget($views); + if (!isset($this->instant_course_set_view)) { $this->instant_course_set_view = false; } @@ -327,15 +327,19 @@ class Admission_CoursesetController extends AuthenticatedController * * @param String $coursesetId the course set to delete */ - public function delete_action($coursesetId) { + public function delete_action($coursesetId) + { $this->courseset = new CourseSet($coursesetId); - if (Request::int('really')) { - $this->courseset->delete(); - $this->redirect($this->url_for('admission/courseset')); + + if (!$this->courseset->isUserAllowedToEdit(User::findCurrent()->id)) { + throw new AccessDeniedException(_('Sie dürfen diese Anmelderegel nicht löschen.')); } - if (Request::int('cancel')) { - $this->redirect($this->url_for('admission/courseset')); + + if (Request::bool('really')) { + $this->courseset->delete(); } + + $this->redirect($this->url_for('admission/courseset')); } /** @@ -757,11 +761,17 @@ class Admission_CoursesetController extends AuthenticatedController $ids = Request::optionArray('ids'); if (Request::submitted('delete')) { + $deleted = 0; foreach ($ids as $id) { $courseset = new CourseSet($id); - $courseset->delete(); + if ($courseset->isUserAllowedToEdit(User::findCurrent()->id)) { + $courseset->delete(); + $deleted += 1; + } + } + if ($deleted > 0) { + PageLayout::postSuccess(_('Die Anmeldesets wurden gelöscht.')); } - PageLayout::postSuccess(_('Die Anmeldesets wurden gelöscht.')); } $this->redirect('admission/courseset');