aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/course/basicdata.php
diff options
context:
space:
mode:
authorJan-Hendrik Willms <tleilax+studip@gmail.com>2024-04-04 08:16:00 +0000
committerJan-Hendrik Willms <tleilax+studip@gmail.com>2024-04-04 08:16:00 +0000
commit64b40494949a59e161b4aed4a242c423e56d271b (patch)
treedf71328ee940ba0dc089ea52ec05c6cd26a1df5f /app/controllers/course/basicdata.php
parent6b12e2fbd987a4057c2b9b0c282be08a9fe0ef74 (diff)
disallow turning a regular course into a study group, fixes #3921
Closes #3921 Merge request studip/studip!2797
Diffstat (limited to 'app/controllers/course/basicdata.php')
-rw-r--r--app/controllers/course/basicdata.php18
1 files changed, 14 insertions, 4 deletions
diff --git a/app/controllers/course/basicdata.php b/app/controllers/course/basicdata.php
index 8cc7d94..f4f50fe 100644
--- a/app/controllers/course/basicdata.php
+++ b/app/controllers/course/basicdata.php
@@ -956,20 +956,30 @@ class Course_BasicdataController extends AuthenticatedController
private function _getTypes($sem, $data, &$changable = true)
{
$sem_types = [];
+
+ $sem_classes = [];
if ($GLOBALS['perm']->have_perm("admin")) {
foreach (SemClass::getClasses() as $sc) {
if (!$sc['course_creation_forbidden']) {
- $sem_types[$sc['name']] = array_map(function ($st) {
- return $st['name'];
- }, $sc->getSemTypes());
+ $sem_classes[] = $sc;
}
}
} else {
- $sc = $sem->getSemClass();
+ $sem_classes[] = $sem->getSemClass();
+ }
+
+ if (!$sem->isStudyGroup()) {
+ $sem_classes = array_filter($sem_classes, function (SemClass $sc) {
+ return !$sc['studygroup_mode'];
+ });
+ }
+
+ foreach ($sem_classes as $sc) {
$sem_types[$sc['name']] = array_map(function ($st) {
return $st['name'];
}, $sc->getSemTypes());
}
+
if (!in_array($data['status'], array_flatten(array_values(array_map('array_keys', $sem_types))))) {
$class_name = $sem->getSemClass()->offsetGet('name');
if (!isset($sem_types[$class_name])) {