diff --git a/admin/roles/allow.php b/admin/roles/allow.php index b458b5d1da5..99888c73d2f 100755 --- a/admin/roles/allow.php +++ b/admin/roles/allow.php @@ -1,83 +1,74 @@ . /** - * this page defines what roles can do things with other roles. For example - * which roles can assign which other roles, or which roles can switch to - * which other roles. + * Allow overriding of roles by other roles * - * @license http://www.gnu.org/copyleft/gpl.html GNU Public License - * @package roles - *//** */ + * @package moodlecore + * @subpackage role + * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ - require_once(dirname(__FILE__) . '/../../config.php'); - require_once($CFG->libdir . '/adminlib.php'); - require_once($CFG->dirroot . '/' . $CFG->admin . '/roles/lib.php'); +require_once(dirname(__FILE__) . '/../../config.php'); +require_once($CFG->libdir . '/adminlib.php'); +require_once($CFG->dirroot . '/' . $CFG->admin . '/roles/lib.php'); - $mode = required_param('mode', PARAM_ACTION); - $classformode = array( - 'assign' => 'role_allow_assign_page', - 'override' => 'role_allow_override_page', - 'switch' => 'role_allow_switch_page' - ); - if (!isset($classformode[$mode])) { - print_error('invalidmode', '', '', $mode); - } +$mode = required_param('mode', PARAM_ACTION); +$classformode = array( + 'assign' => 'role_allow_assign_page', + 'override' => 'role_allow_override_page', + 'switch' => 'role_allow_switch_page' +); +if (!isset($classformode[$mode])) { + print_error('invalidmode', '', '', $mode); +} - $baseurl = $CFG->wwwroot . '/' . $CFG->admin . '/roles/allow.php?mode=' . $mode; - admin_externalpage_setup('defineroles', '', array(), $baseurl); - require_login(); +$baseurl = new moodle_url('/admin/roles/allow.php', array('mode'=>$mode)); +admin_externalpage_setup('defineroles', '', array(), $baseurl); - $syscontext = get_context_instance(CONTEXT_SYSTEM); - require_capability('moodle/role:manage', $syscontext); +$syscontext = get_context_instance(CONTEXT_SYSTEM); +require_capability('moodle/role:manage', $syscontext); - $controller = new $classformode[$mode](); +$controller = new $classformode[$mode](); - if (optional_param('submit', false, PARAM_BOOL) && data_submitted() && confirm_sesskey()) { - $controller->process_submission(); - mark_context_dirty($syscontext->path); - add_to_log(SITEID, 'role', 'edit allow ' . $mode, str_replace($CFG->wwwroot . '/', '', $baseurl), '', '', $USER->id); - redirect($baseurl); - } +if (optional_param('submit', false, PARAM_BOOL) && data_submitted() && confirm_sesskey()) { + $controller->process_submission(); + mark_context_dirty($syscontext->path); + add_to_log(SITEID, 'role', 'edit allow ' . $mode, str_replace($CFG->wwwroot . '/', '', $baseurl), '', '', $USER->id); + redirect($baseurl); +} - $controller->load_current_settings(); +$controller->load_current_settings(); -/// Display the editing form. - admin_externalpage_print_header(); +// Display the editing form. +echo $OUTPUT->header(); - $currenttab = $mode; - require_once('managetabs.php'); +$currenttab = $mode; +require('managetabs.php'); - $table = $controller->get_table(); +$table = $controller->get_table(); - echo $OUTPUT->box($controller->get_intro_text()); +echo $OUTPUT->box($controller->get_intro_text()); - echo '
'; - echo ''; - echo $OUTPUT->table($table); - echo '
'; - echo '
'; +echo '
'; +echo ''; +echo $OUTPUT->table($table); +echo '
'; +echo '
'; - echo $OUTPUT->footer(); +echo $OUTPUT->footer(); diff --git a/admin/roles/assign.php b/admin/roles/assign.php index bacb515e3f2..6de7cd65e4e 100755 --- a/admin/roles/assign.php +++ b/admin/roles/assign.php @@ -1,34 +1,28 @@ . /** * Lets you assign roles to users in a particular context. * - * @license http://www.gnu.org/copyleft/gpl.html GNU Public License - * @package roles - *//** */ + * @package moodlecore + * @subpackage role + * @copyright 1999 onwards Martin Dougiamas (http://dougiamas.com) + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ require_once(dirname(__FILE__) . '/../../config.php'); require_once($CFG->dirroot . '/' . $CFG->admin . '/roles/lib.php'); @@ -42,7 +36,6 @@ $hidden = optional_param('hidden', 0, PARAM_BOOL); // whether this assignment is hidden $extendperiod = optional_param('extendperiod', 0, PARAM_INT); $extendbase = optional_param('extendbase', 3, PARAM_INT); - $returnurl = optional_param('returnurl', null, PARAM_LOCALURL); $urlparams = array('contextid' => $contextid); if (!empty($userid)) { @@ -51,9 +44,6 @@ if ($courseid && $courseid != SITEID) { $urlparams['courseid'] = $courseid; } - if ($returnurl) { - $urlparams['returnurl'] = $returnurl; - } $PAGE->set_url('/admin/roles/assign.php', $urlparams); $baseurl = $PAGE->url->out(); @@ -65,26 +55,27 @@ $contextname = print_context_name($context); $inmeta = 0; + $cm = null; if ($context->contextlevel == CONTEXT_COURSE) { $courseid = $context->instanceid; - if ($course = $DB->get_record('course', array('id'=>$courseid))) { - $inmeta = $course->metacourse; - } else { - print_error('invalidcourse', 'error'); - } - } else if (!empty($courseid)){ // we need this for user tabs in user context - if (!$course = $DB->get_record('course', array('id'=>$courseid))) { - print_error('invalidcourse', 'error'); - } + } else if ($context->contextlevel == CONTEXT_MODULE) { + $cm = get_coursemodule_from_id('', $context->instanceid, 0, false, MUST_EXIST); + $courseid = $cm->course; + + } else if (!empty($courseid)) { // we need this for user tabs in user context + // pass it } else { $courseid = SITEID; $course = clone($SITE); } + $course = $DB->get_record('course', array('id'=>$courseid), '*', MUST_EXIST); + $inmeta = $course->metacourse; + /// Check login and permissions. - require_login($course); + require_login($course, false, $cm); require_capability('moodle/role:assign', $context); /// These are needed early because of tabs.php @@ -276,19 +267,21 @@ $showroles = 1; $currenttab = 'assign'; + echo $OUTPUT->header(); include($CFG->dirroot.'/user/tabs.php'); } else if ($context->contextlevel == CONTEXT_SYSTEM) { admin_externalpage_setup('assignroles', '', array('contextid' => $contextid, 'roleid' => $roleid)); - admin_externalpage_print_header(); + echo $OUTPUT->header(); } else if ($isfrontpage) { admin_externalpage_setup('frontpageroles', '', array('contextid' => $contextid, 'roleid' => $roleid)); - admin_externalpage_print_header(); + echo $OUTPUT->header(); $currenttab = 'assign'; include('tabs.php'); } else { + echo $OUTPUT->header(); $currenttab = 'assign'; include('tabs.php'); } @@ -364,7 +357,7 @@ /// Print a form to swap roles, and a link back to the all roles list. echo '