]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-19052 fixed separate group mode access on grader report; merged from MOODLE_19_STABLE
authorskodak <skodak>
Mon, 4 May 2009 13:13:49 +0000 (13:13 +0000)
committerskodak <skodak>
Mon, 4 May 2009 13:13:49 +0000 (13:13 +0000)
grade/report/grader/index.php
grade/report/lib.php

index 40aeb25616b85e027969e040ef2d9b7c43583ebb..6c3151e953b6f34f69731bd02aa1ee781210a64d 100644 (file)
@@ -112,6 +112,7 @@ if (!empty($target) && !empty($action) && confirm_sesskey()) {
     grade_report_grader::process_action($target, $action);
 }
 
+$reportname = get_string('modulename', 'gradereport_grader');
 // Initialise the grader report object
 $report = new grade_report_grader($courseid, $gpr, $context, $page, $sortitemid);
 require_js(array('yui_yahoo', 'yui_dom', 'yui_event', 'yui_container', 'yui_connection', 'yui_dragdrop', 'yui_element', 'yui_json'));
@@ -119,6 +120,14 @@ if ($report->get_pref('enableajax')) {
     $report = new grade_report_grader_ajax($courseid, $gpr, $context, $page, $sortitemid);
 }
 
+// make sure separate group does not prevent view
+if ($report->currentgroup == -2) {
+    print_grade_page_head($COURSE->id, 'report', 'grader', $reportname, false, null, $buttons);
+    print_heading(get_string("notingroup"));
+    print_footer($course);
+    exit;
+}
+
 /// processing posted grades & feedback here
 if ($data = data_submitted() and confirm_sesskey() and has_capability('moodle/grade:edit', $context)) {
     $warnings = $report->process_data($data);
@@ -138,8 +147,6 @@ $numusers = $report->get_numusers();
 $report->load_final_grades();
 
 /// Print header
-$reportname = get_string('modulename', 'gradereport_grader');
-// Matt - removed stylesheet
 print_grade_page_head($COURSE->id, 'report', 'grader', $reportname, false, null, $buttons);
 
 echo $report->group_selector;
index 736c3dc1619bfc300aec4171d1954971014bccf3..468a67d28bcceaad84c28c5ff90e69a537df04b4 100755 (executable)
@@ -305,8 +305,12 @@ abstract class grade_report {
     protected function setup_groups() {
         /// find out current groups mode
         if ($this->groupmode = groups_get_course_groupmode($this->course)) {
+            $this->currentgroup = groups_get_course_group($this->course, true);
             $this->group_selector = groups_print_course_menu($this->course, $this->pbarurl, true);
-            $this->currentgroup   = groups_get_course_group($this->course);
+
+            if ($this->groupmode == SEPARATEGROUPS and !$this->currentgroup and !has_capability('moodle/site:accessallgroups', $this->context)) {
+                $this->currentgroup = -2; // means can not accesss any groups at all
+            }
 
             if ($this->currentgroup) {
                 $this->groupsql             = " JOIN {groups_members} gm ON gm.userid = u.id ";