MDL-21781 protect cohorts created by external systesm - we can not edit them with...
[moodle.git] / cohort / edit.php
index 4a48420..c1e190e 100644 (file)
@@ -56,12 +56,15 @@ require_capability('moodle/cohort:manage', $context);
 
 $returnurl = new moodle_url('/cohort/index.php', array('contextid'=>$context->id));
 
+if (!empty($cohort->component)) {
+    // we can not manually edit cohorts that were created by external systems, sorry
+    redirect($returnurl);
+}
+
 $PAGE->set_context($context);
 $PAGE->set_url('/cohort/edit.php', array('contextid'=>$context->id, 'id'=>$cohort->id));
 $PAGE->set_context($context);
 
-// TODO: ohlala, the navbar is not doing what I would expect
-$PAGE->navbar->add(get_string('home'), new moodle_url('/'), navbar::TYPE_SYSTEM);
 if ($context->contextlevel == CONTEXT_COURSECAT) {
     $category = $DB->get_record('course_categories', array('id'=>$context->instanceid), '*', MUST_EXIST);
     $PAGE->navbar->add($category->name, new moodle_url('/course/index.php', array('categoryedit'=>'1')));
@@ -101,8 +104,7 @@ if ($cohort->id) {
 $PAGE->set_title($strheading);
 $PAGE->navbar->add($strheading);
 
-$editform = new cohort_edit_form(null, array('editoroptions'=>$editoroptions));
-$editform->set_data($cohort);
+$editform = new cohort_edit_form(null, array('editoroptions'=>$editoroptions, 'data'=>$cohort));
 
 if ($editform->is_cancelled()) {
     redirect($returnurl);
@@ -116,7 +118,8 @@ if ($editform->is_cancelled()) {
         cohort_add_cohort($data);
     }
 
-    redirect($returnurl);
+    // use new context id, it could have been changed
+    redirect(new moodle_url('/cohort/index.php', array('contextid'=>$data->contextid)));
 }
 
 echo $OUTPUT->header();