MDL-27508 workshop_user_complete() checks group membership in separate groups mode

This commit is contained in:
David Mudrak
2012-04-27 14:41:58 +02:00
parent 1c0c3ef5ee
commit a4e848360d
+13 -1
View File
@@ -306,7 +306,19 @@ function workshop_user_complete($course, $user, $mod, $workshop) {
}
if (has_capability('mod/workshop:viewallsubmissions', $workshop->context)) {
if ($submission = $workshop->get_submission_by_author($user->id)) {
$canviewsubmission = true;
if (groups_get_activity_groupmode($workshop->cm) == SEPARATEGROUPS) {
// user must have accessallgroups or share at least one group with the submission author
if (!has_capability('moodle/site:accessallgroups', $workshop->context)) {
$usersgroups = groups_get_activity_allowed_groups($workshop->cm);
$authorsgroups = groups_get_all_groups($workshop->course->id, $user->id, $workshop->cm->groupingid, 'g.id');
$sharedgroups = array_intersect_key($usersgroups, $authorsgroups);
if (empty($sharedgroups)) {
$canviewsubmission = false;
}
}
}
if ($canviewsubmission and $submission = $workshop->get_submission_by_author($user->id)) {
$title = format_string($submission->title);
$url = $workshop->submission_url($submission->id);
$link = html_writer::link($url, $title);