mirror of
https://github.com/moodle/moodle.git
synced 2025-01-18 22:08:20 +01:00
MDL-33466: Group restriction should hide activity even with 'show availability' option
This is a modified version of fix by Luke Tucker at NetSpot - thanks.
This commit is contained in:
parent
f8dfdb524b
commit
a098f340fe
@ -1078,18 +1078,24 @@ class cm_info extends stdClass {
|
||||
$modcontext = get_context_instance(CONTEXT_MODULE, $this->id);
|
||||
$userid = $this->modinfo->get_user_id();
|
||||
$this->uservisible = true;
|
||||
// Check visibility/availability conditions.
|
||||
if ((!$this->visible or !$this->available) and
|
||||
!has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) {
|
||||
// If the activity is hidden or unavailable, and you don't have viewhiddenactivities,
|
||||
// set it so that user can't see or access it
|
||||
// set it so that user can't see or access it.
|
||||
$this->uservisible = false;
|
||||
} else if (!empty($CFG->enablegroupmembersonly) and !empty($this->groupmembersonly)
|
||||
}
|
||||
// Check group membership. The grouping option makes the activity
|
||||
// completely invisible as it does not apply to the user at all.
|
||||
if (!empty($CFG->enablegroupmembersonly) and !empty($this->groupmembersonly)
|
||||
and !has_capability('moodle/site:accessallgroups', $modcontext, $userid)) {
|
||||
// If the activity has 'group members only' and you don't have accessallgroups...
|
||||
$groups = $this->modinfo->get_groups($this->groupingid);
|
||||
if (empty($groups)) {
|
||||
// ...and you don't belong to a group, then set it so you can't see/access it
|
||||
$this->uservisible = false;
|
||||
// Ensure activity is completely hidden from user.
|
||||
$this->showavailability = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user