mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
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:
parent
6cc59cb21b
commit
d7d4b0e572
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user