MDL-65138 course: add a setting for course publishing

This commit is contained in:
Simey Lameze 2019-03-26 09:46:23 +08:00
parent 3271c39c74
commit 73fabadadd
7 changed files with 18 additions and 6 deletions

View file

@ -3994,7 +3994,7 @@ function course_get_user_administration_options($course, $context) {
$options->outcomes = !empty($CFG->enableoutcomes) && has_capability('moodle/course:update', $context);
$options->badges = !empty($CFG->enablebadges);
$options->import = has_capability('moodle/restore:restoretargetimport', $context);
$options->publish = has_capability('moodle/course:publish', $context);
$options->publish = !empty($CFG->enablecoursepublishing) && has_capability('moodle/course:publish', $context);
$options->reset = has_capability('moodle/course:reset', $context);
$options->roles = has_capability('moodle/role:switchroles', $context);
} else {

View file

@ -45,8 +45,9 @@ $hubcourseid = required_param('hubcourseid', PARAM_INT);
//some permissions and parameters checking
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
require_login($course);
if (!has_capability('moodle/course:publish', context_course::instance($id))
or !confirm_sesskey()) {
$context = context_course::instance($courseid);
if (empty($CFG->enablecoursepublishing) || !has_capability('moodle/course:publish', $context) || !confirm_sesskey()) {
throw new moodle_exception('nopermission');
}

View file

@ -39,7 +39,10 @@ $PAGE->set_pagelayout('incourse');
$PAGE->set_title(get_string('publish', 'core_hub') . ': ' . $COURSE->fullname);
$PAGE->set_heading($COURSE->fullname);
require_capability('moodle/course:publish', context_course::instance($courseid));
$context = context_course::instance($courseid);
if (empty($CFG->enablecoursepublishing) || !has_capability('moodle/course:publish', $context)) {
throw new moodle_exception('nopermission');
}
// If the site is not registered display an error page.
if (!\core\hub\registration::is_registered()) {

View file

@ -46,7 +46,10 @@ $PAGE->set_pagelayout('incourse');
$PAGE->set_title(get_string('course') . ': ' . $course->fullname);
$PAGE->set_heading($course->fullname);
require_capability('moodle/course:publish', context_course::instance($id));
$context = context_course::instance($courseid);
if (empty($CFG->enablecoursepublishing) || !has_capability('moodle/course:publish', $context)) {
throw new moodle_exception('nopermission');
}
// Retrieve hub name and hub url.
require_sesskey();

View file

@ -3193,7 +3193,7 @@ class core_course_courselib_testcase extends advanced_testcase {
$this->assertFalse($adminoptions->outcomes);
$this->assertTrue($adminoptions->badges);
$this->assertTrue($adminoptions->import);
$this->assertTrue($adminoptions->publish);
$this->assertFalse($adminoptions->publish);
$this->assertTrue($adminoptions->reset);
$this->assertTrue($adminoptions->roles);
}