Browse Source

Blocking course edition see BT#9175

Julio Montoya 10 years ago
parent
commit
321ef5d3a3
2 changed files with 56 additions and 2 deletions
  1. 25 1
      main/admin/course_edit.php
  2. 31 1
      main/course_info/infocours.php

+ 25 - 1
main/admin/course_edit.php

@@ -251,6 +251,31 @@ $form->setDefaults($course);
 // Validate form
 if ($form->validate()) {
     $course = $form->getSubmitValues();
+
+    $visibility = $course['visibility'];
+
+    global $_configuration;
+    $urlId = api_get_current_access_url_id();
+    if (isset($_configuration[$urlId]) &&
+        isset($_configuration[$urlId]['hosting_limit_active_courses']) &&
+        $_configuration[$urlId]['hosting_limit_active_courses'] > 0
+    ) {
+        // Check if
+        if ($course_info['visibility'] == COURSE_VISIBILITY_HIDDEN &&
+            $visibility != $course_info['visibility']
+        ) {
+            $num = CourseManager::countActiveCourses($urlId);
+            if ($num >= $_configuration[$urlId]['hosting_limit_active_courses']) {
+                api_warn_hosting_contact('hosting_limit_active_courses');
+
+                api_set_failure(get_lang('PortalActiveCoursesLimitReached'));
+
+                header('Location: course_list.php?action=show_msg&warn=' . urlencode(get_lang('PortalActiveCoursesLimitReached')));
+                exit;
+            }
+        }
+    }
+
     $course_code = $course['code'];
     $visual_code = $course['visual_code'];
     $visual_code = generate_course_code($visual_code);
@@ -295,7 +320,6 @@ if ($form->validate()) {
 	$course_language = $course['course_language'];
     $course['disk_quota'] = $course['disk_quota']*1024*1024;
 	$disk_quota = $course['disk_quota'];
-	$visibility = $course['visibility'];
 	$subscribe = $course['subscribe'];
 	$unsubscribe = $course['unsubscribe'];
 

+ 31 - 1
main/course_info/infocours.php

@@ -413,6 +413,33 @@ $form->setDefaults($values);
 if ($form->validate() && is_settings_editable()) {
     $updateValues = $form->exportValues();
 
+    $visibility = $updateValues['visibility'];
+
+    global $_configuration;
+    $urlId = api_get_current_access_url_id();
+    if (isset($_configuration[$urlId]) &&
+        isset($_configuration[$urlId]['hosting_limit_active_courses']) &&
+        $_configuration[$urlId]['hosting_limit_active_courses'] > 0
+    ) {
+        $courseInfo = api_get_course_info($course_code);
+
+        // Check if
+        if ($courseInfo['visibility'] == COURSE_VISIBILITY_HIDDEN &&
+            $visibility != $courseInfo['visibility']
+        ) {
+            $num = CourseManager::countActiveCourses($urlId);
+            if ($num >= $_configuration[$urlId]['hosting_limit_active_courses']) {
+                api_warn_hosting_contact('hosting_limit_active_courses');
+
+                api_set_failure(get_lang('PortalActiveCoursesLimitReached'));
+
+                $url = api_get_path(WEB_CODE_PATH).'course_info/infocours.php?action=course_active_warning&cidReq='.$course_code;
+                header("Location: $url");
+                exit;
+            }
+        }
+    }
+
     $pdf_export_watermark_path = isset($_FILES['pdf_export_watermark_path']) ? $_FILES['pdf_export_watermark_path'] : null;
 
     if (!empty($pdf_export_watermark_path['name'])) {
@@ -486,10 +513,13 @@ Display :: display_header($nameTools, MODULE_HELP_NAME);
 if ($show_delete_watermark_text_message) {
     Display :: display_normal_message(get_lang('FileDeleted'));
 }
-//api_display_tool_title($nameTools);
+
 if (isset($_GET['action']) && $_GET['action'] == 'show_message') {
     Display :: display_normal_message(get_lang('ModifDone'));
 }
+if (isset($_GET['action']) && $_GET['action'] == 'course_active_warning') {
+    Display :: display_warning_message(get_lang('PortalActiveCoursesLimitReached'));
+}
 
 echo '<script>
 $(function() {