MDL-76940 core_courseformat: Index refreshing when role switch

* Hidden sections and content should not visible to students when switching role
This commit is contained in:
Laurent David 2023-02-28 13:46:22 +01:00 committed by Laurent David
parent f49f934786
commit ed08a4ee52
2 changed files with 16 additions and 0 deletions

View File

@ -297,3 +297,14 @@ Feature: Course index depending on role
| large | be | Close | not be | Open | be |
| tablet | not be | Open | not be | Open | not be |
| mobile | not be | Open | not be | Open | not be |
@javascript
Scenario: Course index is refreshed when we change role.
When I am on the "C1" "Course" page logged in as "teacher1"
And I turn editing mode on
And I hide section "1"
And I turn editing mode off
And I should see "Topic 1" in the "courseindex-content" "region"
And I follow "Switch role to..." in the user menu
And I press "Student"
Then I should not see "Topic 1" in the "courseindex-content" "region"

View File

@ -4344,6 +4344,11 @@ function role_switch($roleid, context $context) {
load_all_capabilities();
}
// Make sure that course index is refreshed.
if ($coursecontext = $context->get_course_context()) {
core_courseformat\base::session_cache_reset(get_course($coursecontext->instanceid));
}
// Add the switch RA
if ($roleid == 0) {
unset($USER->access['rsw'][$context->path]);