From 209bd33621f845421550fc2117de358ef8b1c27b Mon Sep 17 00:00:00 2001
From: Rasmus Fuhse <fuhse@data-quest.de>
Date: Fri, 19 Jan 2024 15:40:32 +0100
Subject: [PATCH] better handling of courses with lock-rules

---
 controllers/copy.php      | 3 ++-
 plugin.manifest           | 4 ++--
 views/action/checkbox.php | 9 ++++++---
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/controllers/copy.php b/controllers/copy.php
index dd966a7..b05e73e 100755
--- a/controllers/copy.php
+++ b/controllers/copy.php
@@ -28,7 +28,8 @@ class CopyController extends PluginController
                 $this->single_course_name = $this->single_course;
             }
         } else {
-            throw new Trails_Exception(400);
+            echo MessageBox::error(_('Wählen Sie mindestens eine Veranstaltung zum Kopieren aus.'));
+            die();
         }
     }
 
diff --git a/plugin.manifest b/plugin.manifest
index e228072..c1093d7 100755
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,6 +1,6 @@
 pluginname=CourseCopy
 pluginclassname=CourseCopy
-version=1.9.5
+version=1.9.6
 origin=data-quest
 studipMinVersion=4.0
-studipMaxVersion=5.3.99
+studipMaxVersion=5.4.99
diff --git a/views/action/checkbox.php b/views/action/checkbox.php
index c811991..451eca9 100755
--- a/views/action/checkbox.php
+++ b/views/action/checkbox.php
@@ -1,3 +1,6 @@
-<? if (Seminar_Perm::get()->have_studip_perm('dozent', $course_id) && !LockRules::check($course_id, 'seminar_copy')) : ?>
-<input type="checkbox" name="c[]" value="<?= htmlReady($course_id) ?>">
-<? endif ?>
\ No newline at end of file
+<? if (Seminar_Perm::get()->have_studip_perm('dozent', $course_id)
+    && !LockRules::check($course_id, 'seminar_copy')) : ?>
+    <input type="checkbox" name="c[]" value="<?= htmlReady($course_id) ?>">
+<? else : ?>
+    <input type="checkbox" disabled title="<?= !LockRules::check($course_id, 'seminar_copy') ? _('Veranstaltung darf nicht kopiert werden.') : _('Sie brauchen mindestens Dozentenrechte in der Veranstaltung.') ?>">
+<? endif ?>
-- 
GitLab