]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15768 - mod/assignment upgraded to check caps before portfolio export
authormjollnir_ <mjollnir_>
Mon, 11 Aug 2008 15:31:55 +0000 (15:31 +0000)
committermjollnir_ <mjollnir_>
Mon, 11 Aug 2008 15:31:55 +0000 (15:31 +0000)
lang/en_utf8/assignment.php
mod/assignment/db/access.php
mod/assignment/lib.php
mod/assignment/type/online/assignment.class.php
mod/assignment/type/upload/assignment.class.php
mod/assignment/version.php

index dcc46eddacf38e67b9f728571186612fa9542ebd..b0703cdb5197a34fd00ef4d0647bc18159600845 100644 (file)
@@ -7,6 +7,7 @@ $string['allowmaxfiles'] = 'Maximum number of uploaded files';
 $string['allownotes'] = 'Allow notes';
 $string['allowresubmit'] = 'Allow resubmitting';
 $string['alreadygraded'] = 'Your assignment has already been graded and resubmission is not allowed.';
+$string['assignment:exportownsubmission'] = 'Export own submission';
 $string['assignment:grade'] = 'Grade assignment';
 $string['assignment:submit'] = 'Submit assignment';
 $string['assignment:view'] = 'View assignment';
index c4400b7ed489d873091495426f542541ed694f7a..2e970129a4cd1892d8231549c6107cb33e69bcfc 100644 (file)
@@ -65,7 +65,19 @@ $mod_assignment_capabilities = array(
             'editingteacher' => CAP_ALLOW,
             'admin' => CAP_ALLOW
         )
-    )
+    ),
+
+    'mod/assignment:exportownsubmission' => array(
+
+        'captype' => 'read',
+        'contextlevel' => CONTEXT_MODULE,
+        'legacy' => array(
+            'teacher' => CAP_ALLOW,
+            'editingteacher' => CAP_ALLOW,
+            'admin' => CAP_ALLOW,
+            'student' => CAP_ALLOW,
+        )
+    ),
 );
 
 ?>
index c3cce74b9f22b8af653cd2f067be2dee47d86fd4..1ae83494bf801920b96715346012505d750203d9 100644 (file)
@@ -1713,13 +1713,13 @@ class assignment_base {
                 $icon = mimeinfo_from_type('icon', $mimetype);
                 $path = $browser->encodepath($CFG->wwwroot.'/pluginfile.php', '/'.$this->context->id.'/assignment_submission/'.$userid.'/'.$filename);
                 $output .= '<a href="'.$path.'" ><img src="'.$CFG->pixpath.'/f/'.$icon.'" class="icon" alt="'.$icon.'" />'.s($filename).'</a>';
-                if ($this->portfolio_exportable() && true) { // @todo replace with capability check
+                if ($this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
                     $p['file'] = $file->get_id();
                     $output .= portfolio_add_button('assignment_portfolio_caller', $p, null, false, true);
                 }
                 $output .= '<br />';
             }
-            if ($this->portfolio_exportable() && true) { //@todo replace with check capability
+            if ($this->portfolio_exportable() && has_capability('mod/assignment:exportownsubmission', $this->context)) {
                 unset($p['file']);// for all files
                 $output .= '<br />' . portfolio_add_button('assignment_portfolio_caller', $p, null, true, true);
             }
@@ -3187,7 +3187,8 @@ class assignment_portfolio_caller extends portfolio_module_caller_base {
     }
 
     public function check_permissions() {
-        return has_capability('mod/assignment:export-upload-files', get_context_instance(CONTEXT_MODULE, $this->assignment->cm->id));
+        $context = get_context_instance(CONTEXT_MODULE, $this->assignment->cm->id);
+        return has_capability('mod/assignment:exportownsubmission', $context);
     }
 
     public function __wakeup() {
index bbf00cb7728f5d039a9081e137aca8e6347cdba0..6d726ac147657b81973507fd8c84c3967f7d3d52 100644 (file)
@@ -101,7 +101,7 @@ class assignment_online extends assignment_base {
                 $mform->display();
             } else {
                 print_box_start('generalbox boxwidthwide boxaligncenter', 'online');
-                if ($submission && true) { // @todo penny replace with capability check later
+                if ($submission && has_capability('mod/assignment:exportownsubmission', $this->context)) {
                     echo format_text($submission->data1, $submission->data2);
                     $p = array(
                         'userid' => $USER->id,
index a2d0b6f03de344dfc19392a9dcde7f7a76601bed..d97988b6b5e97c1e248857caf836a32e513790d3 100644 (file)
@@ -360,13 +360,13 @@ class assignment_upload extends assignment_base {
                               .'<img title="'.$strdelete.'" src="'.$CFG->pixpath.'/t/delete.gif" class="iconsmall" alt="" /></a> ';
                 }
     
-                if (true) { // @todo penny replace with capability check
+                if (has_capability('mod/assignment:exportownsubmission', $this->context)) {
                     $p['file'] = $filename;
                     $output .= portfolio_add_button('assignment_portfolio_caller', $p, '/mod/assignment/lib.php', false, true);
                 }
                 $output .= '<br />';
             }
-            if (true) { //@todo penny replace with check capability
+            if (has_capability('mod/assignment:exportownsubmission', $this->context)) {
                 unset($p['file']);// for all files
                 $output .= '<br />' . portfolio_add_button('assignment_portfolio_caller', $p, '/mod/assignment/lib.php', true, true);
             }
index 2d169bc0eb1d0f2dba187f756b34618baad39ee3..3c5ff3c707db4c75dedd207efd3003fb15bd40f0 100644 (file)
@@ -5,8 +5,8 @@
 //  This fragment is called by /admin/index.php
 ////////////////////////////////////////////////////////////////////////////////
 
-$module->version  = 2008073000;
-$module->requires = 2008072401;  // Requires this Moodle version
+$module->version  = 2008081100;
+$module->requires = 2008080701;  // Requires this Moodle version
 $module->cron     = 60;
 
 ?>