course/view: roleswitch checks moved to the course page

Implemented all the relevant checks for role_switch().

accesslib's role_switch() doesn't do any UI-related checks any more,
being a backend lib call. These belong here.
This commit is contained in:
martinlanghoff 2007-09-19 07:06:44 +00:00
parent 6cc59cb21b
commit d7d4b0e572

View File

@ -43,15 +43,24 @@
print_error('nocontext');
}
if ($switchrole == 0) { // Remove any switched roles before checking login
// Remove any switched roles before checking login
if ($switchrole == 0 && confirm_sesskey()) {
role_switch($switchrole, $context);
}
require_login($course->id);
if ($switchrole > 0) {
role_switch($switchrole, $context);
require_login($course->id); // Double check that this role is allowed here
// Switchrole - sanity check in cost-order...
if ($switchrole > 0 && confirm_sesskey() &&
has_capability('moodle/role:switchroles', $context)) {
// is this role assignable in this context?
// inquiring minds want to know...
$aroles = get_assignable_roles($context);
if (is_array($aroles) && isset($aroles[$switchrole])) {
role_switch($switchrole, $context);
// Double check that this role is allowed here
require_login($course->id);
}
}
//If course is hosted on an external server, redirect to corresponding