Skip to content
Permalink
Browse files

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.
  • Loading branch information...
martinlanghoff
martinlanghoff committed Sep 19, 2007
1 parent 6cc59cb commit d7d4b0e572e3fb0cd99a6987093b392bdd133fd9
Showing with 13 additions and 4 deletions.
  1. +13 −4 course/view.php
@@ -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

0 comments on commit d7d4b0e

Please sign in to comment.
You can’t perform that action at this time.