diff --git a/controllers/copy.php b/controllers/copy.php index 148dcb0bce0dda8e3587c2914ed49394b2aa3e6a..77c23e780d061f69914da93aa6ad268dad2096d0 100755 --- a/controllers/copy.php +++ b/controllers/copy.php @@ -4,22 +4,28 @@ class CopyController extends PluginController { public function info_action() { - PageLayout::setTitle(_("Wie soll kopiert werden?")); - $this->dozentensearch = new SQLSearch( - "SELECT DISTINCT auth_user_md5.user_id, CONCAT(auth_user_md5.Vorname, \" \", auth_user_md5.Nachname), auth_user_md5.perms, auth_user_md5.username " . - "FROM auth_user_md5 LEFT JOIN user_info ON (user_info.user_id = auth_user_md5.user_id) " . - "WHERE (CONCAT(auth_user_md5.Vorname, \" \", auth_user_md5.Nachname) LIKE :input " . + if (Request::getArray("c")) { + PageLayout::setTitle(_("Wie soll kopiert werden?")); + $this->dozentensearch = new SQLSearch( + "SELECT DISTINCT auth_user_md5.user_id, CONCAT(auth_user_md5.Vorname, \" \", auth_user_md5.Nachname), auth_user_md5.perms, auth_user_md5.username " . + "FROM auth_user_md5 LEFT JOIN user_info ON (user_info.user_id = auth_user_md5.user_id) " . + "WHERE (CONCAT(auth_user_md5.Vorname, \" \", auth_user_md5.Nachname) LIKE :input " . "OR CONCAT(auth_user_md5.Nachname, \" \", auth_user_md5.Vorname) LIKE :input " . "OR CONCAT(auth_user_md5.Nachname, \", \", auth_user_md5.Vorname) LIKE :input " . "OR auth_user_md5.username LIKE :input) " . "AND " . get_vis_query() . " " . "AND auth_user_md5.perms = 'dozent' " . - "ORDER BY Vorname, Nachname", _("Lehrendennamen eingeben"), "user_id"); - $this->semesters = array_reverse(Semester::getAll()); - $this->semester = UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID - ? Semester::find(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID) - : $this->semesters[0]; - $this->have_coursegroups = true; + "ORDER BY Vorname, Nachname", _("Lehrendennamen eingeben"), "user_id"); + $this->semesters = array_reverse(Semester::getAll()); + $this->semester = UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID + ? Semester::find(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_SEMESTER_ID) + : $this->semesters[0]; + if (Seminar_Perm::get()->have_perm('admin')) { + $this->have_coursegroups = true; + } + } else { + throw new Trails_Exception(400); + } } public function semester_start_und_ende_action($semester_id) @@ -30,7 +36,7 @@ class CopyController extends PluginController public function process_action() { - if (Request::isPost()) { + if (Request::isPost() && count(Request::getArray("c"))) { $params = [ "semester_id", "dozent_id", "lock_copied_courses", "invisible_copied_courses", "cycles", "resource_assignments", diff --git a/plugin.manifest b/plugin.manifest index 9898ce7d743d1219ca5b434f94f3cca4469aacd6..9c73cda19710959dbf235e9147a2e0a28d64ebc5 100755 --- a/plugin.manifest +++ b/plugin.manifest @@ -1,6 +1,6 @@ pluginname=CourseCopy pluginclassname=CourseCopy -version=1.6 +version=1.7 origin=data-quest studipMinVersion=4.0 studipMaxVersion=4.99.99 diff --git a/views/action/checkbox.php b/views/action/checkbox.php index b04014dc3f88ff59629a2a13be5f2354837927b4..a65a134d8aa3c5fdbb2eee7cc11c3d709526e0f0 100755 --- a/views/action/checkbox.php +++ b/views/action/checkbox.php @@ -1 +1,3 @@ -<input type="checkbox" name="c[]" value="<?= htmlReady($course_id) ?>"> \ No newline at end of file +<? if (Seminar_Perm::get()->have_studip_perm('dozent', $course_id)) : ?> +<input type="checkbox" name="c[]" value="<?= htmlReady($course_id) ?>"> +<? endif ?> \ No newline at end of file diff --git a/views/copy/info.php b/views/copy/info.php index df6a66fcad8a14e9b95d6ecf3ff97f53e6e16a5c..492c82d646ea3ad32995715831864fc33f9ee06a 100755 --- a/views/copy/info.php +++ b/views/copy/info.php @@ -20,21 +20,22 @@ <? endforeach ?> </select> </label> - - <label> - <?= _("Lehrende ersetzen durch ...") ?> - <? - $qs = QuickSearch::get("dozent_id", $dozentensearch); - if (UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) { - $qs->defaultValue( - UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID, - get_fullname(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) - ); - } - echo $qs->render() - ?> + <? if (Seminar_Perm::get()->have_perm('admin')) : ?> + <label> + <?= _("Lehrende ersetzen durch ...") ?> + <? + $qs = QuickSearch::get("dozent_id", $dozentensearch); + if (UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) { + $qs->defaultValue( + UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID, + get_fullname(UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_DOZENT_ID) + ); + } + echo $qs->render() + ?> <label> + <? endif ?> <input type="checkbox" name="copy_tutors" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_COPY_TUTORS ? " checked" : "" ?>> <?= _('Tutor/-innen mit übernehmen') ?> </label>