]> git.mjollnir.org Git - moodle.git/commitdiff
SWEEPING CLEANUP
authormoodler <moodler>
Mon, 14 Aug 2006 05:55:40 +0000 (05:55 +0000)
committermoodler <moodler>
Mon, 14 Aug 2006 05:55:40 +0000 (05:55 +0000)
The API was changed slightly so that has_capability now takes the
whole $context object (we almost always have it anyway)

The $kill thing was removed.   If you want to assert a capability
then use:

    require_capability('capname', $context);

with optional variables to modify the error message

Misc bugs here and there also removed and code tidied

76 files changed:
admin/config.php
admin/configure.php
admin/index.php
admin/roles/assign.php
admin/roles/manage.php
admin/user.php
admin/users.php
blocks/admin/block_admin.php
blocks/moodleblock.class.php
blocks/participants/block_participants.php
blog/edit.php
blog/index.php
blog/lib.php
blog/preferences.php
blog/tags.html
blog/tags.php
course/category.php
course/edit.php
course/group.php
course/groups.php
course/index.php
course/lib.php
course/mod.php
course/scales.php
lib/accesslib.php
lib/moodlelib.php
mod/assignment/lib.php
mod/assignment/type/online/assignment.class.php
mod/assignment/type/uploadsingle/assignment.class.php
mod/chat/gui_header_js/index.php
mod/chat/lib.php
mod/chat/report.php
mod/chat/view.php
mod/choice/lib.php
mod/choice/report.php
mod/choice/view.php
mod/data/comment.php
mod/data/field.php
mod/data/import.php
mod/data/lib.php
mod/data/tabs.php
mod/data/templates.php
mod/data/view.php
mod/exercise/assessments.php
mod/exercise/view.php
mod/forum/discuss.php
mod/forum/index.php
mod/forum/lib.php
mod/forum/post.html
mod/forum/post.php
mod/forum/rate.php
mod/forum/report.php
mod/forum/search.php
mod/forum/subscribe.php
mod/forum/subscribers.php
mod/forum/user.php
mod/forum/view.php
mod/glossary/approve.php
mod/glossary/comment.php
mod/glossary/comments.php
mod/glossary/deleteentry.php
mod/glossary/edit.php
mod/glossary/editcategories.php
mod/glossary/export.php
mod/glossary/exportentry.php
mod/glossary/exportfile.php
mod/glossary/import.php
mod/glossary/lib.php
mod/glossary/report.php
mod/glossary/tabs.html
mod/glossary/view.php
mod/survey/report.php
mod/survey/save.php
mod/survey/view.php
user/edit.php
user/index.php

index 0f49a3c928a9c6f78c43eae78fc9f5c2768320f7..6a8676f1ca071ce2840fccd44fb3cc618d32e7c1 100644 (file)
@@ -8,7 +8,7 @@
     if ($site = get_site()) {   // If false then this is a new installation
         require_login();
         $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-        if (!has_capability('moodle/site:config', $context->id)) {
+        if (!has_capability('moodle/site:config', $context)) {
             error('Only the admin can use this page');
         }
     }
index 1ba23bcbf7cca69007065cece1f6ffa79d328b6b..db6efa46c75d959ba1abe46fd2e8c04457940604 100644 (file)
@@ -5,7 +5,7 @@
     require_login();
 
     $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-    if (!has_capability('moodle/site:config', $context->id)) {
+    if (!has_capability('moodle/site:config', $context)) {
         error('Only the admin can use this page');
     }
 
index 9db36729f05c0d252bd927d6ac7f28a508f60f1c..3c11774e9a6c1e9baeb9c1a24285304fa5d9b4e0 100644 (file)
 
     $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
 
-    if (!has_capability('moodle/site:config', $context->id)) {
+    if (!has_capability('moodle/site:config', $context)) {
         print_error("permissionconfig", '', "$CFG->wwwroot/login/index.php");
     }
 
index 552a89a8a5c2a4cc31957b3c0c40e7beaafca451..6181dbac1167b5a99988b588d252293852c32b51 100755 (executable)
         redirect("$CFG->wwwroot/$CFG->admin/index.php");
     }
 
-    if (! $context = get_record("context", "id", $contextid)) {
+    if (! $context = get_context_instance_by_id($contextid)) {
         error("Context ID was incorrect (can't find it)");
     }
-    if (!has_capability('moodle/role:assign', $context->id)) {
-        error('You do not have the required permission to assign roles to users.');
-    }
+
+    require_login();
+
+    require_capability('moodle/role:assign', $context);
     
     /**
-     * TO DO:
+     * TODO XXX:
      * Permission check to see whether this user can assign people to this role
      * needs to be:    
      * 1) has the capability to assign
@@ -37,7 +38,6 @@
      * end of permission checking  
      */
     
-    require_login();
 
     $strassignusers = get_string('assignusers', 'role');
     $strpotentialusers = get_string('potentialusers', 'role');
@@ -48,8 +48,6 @@
     $strsearch = get_string('search');
     $strshowall = get_string('showall');
 
-    $context = get_record('context', 'id', $contextid);
-    
     $currenttab = '';
     $tabsmode = 'assign';
     include_once('tabs.php');
               $timemodified = time();
             foreach ($frm->addselect as $adduser) {
                 $adduser = clean_param($adduser, PARAM_INT);
-                if (! role_assign($roleid, $adduser, 0, $contextid, $timestart, $timeend, $hidden)) {
+                if (! role_assign($roleid, $adduser, 0, $context->id, $timestart, $timeend, $hidden)) {
                     error("Could not add user with id $adduser to this role!");
                 }
             }
         } else if ($remove and !empty($frm->removeselect) and confirm_sesskey()) {
             foreach ($frm->removeselect as $removeuser) {
                 $removeuser = clean_param($removeuser, PARAM_INT);
-                if (! role_unassign($roleid, $removeuser, 0, $contextid)) {
+                if (! role_unassign($roleid, $removeuser, 0, $context->id)) {
                     error("Could not remove user with id $removeuser from this role!");
                 }
             }
@@ -88,7 +86,7 @@
 /// Get all existing students and teachers for this course.
     $existinguserarray = array();
 
-    $SQL = "select u.* from {$CFG->prefix}role_assignments r, {$CFG->prefix}user u where contextid = $contextid and roleid = $roleid and u.id = r.userid"; // join now so that we can just use fullname() later
+    $SQL = "select u.* from {$CFG->prefix}role_assignments r, {$CFG->prefix}user u where contextid = $context->id and roleid = $roleid and u.id = r.userid"; // join now so that we can just use fullname() later
 
     if (!$contextusers = get_records_sql($SQL)) {
         $contextusers = array();  
     
     // prints a form to swap roles
     print ('<form name="rolesform" action="assign.php" method="post">');
-    print ('<div align="center">'.$strcurrentcontext.': '.print_context_name($contextid).'<br/>');
-    print ('<input type="hidden" name="contextid" value="'.$contextid.'">'.$strcurrentrole.': ');
+    print ('<div align="center">'.$strcurrentcontext.': '.print_context_name($context).'<br/>');
+    print ('<input type="hidden" name="contextid" value="'.$context->id.'">'.$strcurrentrole.': ');
     choose_from_menu ($options, 'roleid', $roleid, 'choose', $script='rolesform.submit()');
     print ('</div></form>');
     
index 9f9c2eb15654475db9d4ee26dbaa7140e07e45e5..552c9baa7301f36d043623f3ffe83111aa88da14 100755 (executable)
@@ -12,7 +12,6 @@
     $confirm     = optional_param('confirm', 0, PARAM_BOOL);
 
     $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
-    $contextid = $sitecontext->id;
     
     if (!isadmin()) {
         error('Only admins can access this page');
             case 'add':
                                                 
                 $newrole = create_role($name, $description);        
-            
+
                 $ignore = array('roleid', 'sesskey', 'action', 'name', 'description', 'contextid');
-                
+
                 $data = data_submitted();
-                
-                 foreach ($data as $capname => $value) {
-                       if (in_array($capname, $ignore)) { 
-                         continue;
+
+                foreach ($data as $capname => $value) {
+                    if (in_array($capname, $ignore)) { 
+                        continue;
                     }
 
-                    assign_capability($capname, $value, $newrole, $contextid);
-                            
+                    assign_capability($capname, $value, $newrole, $sitecontext->id);
+
                 }
             
             break;
                 
                 $data = data_submitted();
                 
-                 foreach ($data as $capname => $value) {
-                       if (in_array($capname, $ignore)) { 
-                         continue;
+                foreach ($data as $capname => $value) {
+                    if (in_array($capname, $ignore)) { 
+                        continue;
                     }
-                   
+
                     // edit default caps
                     $SQL = "select * from {$CFG->prefix}role_capabilities where
-                            roleid = $roleid and capability = '$capname' and contextid = $contextid";
-                            
+                            roleid = $roleid and capability = '$capname' and contextid = $sitecontext->id";
+
                     $localoverride = get_record_sql($SQL);
-             
-                     if ($localoverride) { // update current overrides
-                 
-                         if ($value == 0) { // inherit = delete
-                               
-                               unassign_capability($capname, $roleid, $contextid);
-                               
-                         } else {
-                     
-                             $localoverride->permission = $value;
-                             $localoverride->timemodified = time();
-                             $localoverride->modifierid = $USER->id;
-                             update_record('role_capabilities', $localoverride);    
-                         
-                         }
-                
+
+                    if ($localoverride) { // update current overrides
+
+                        if ($value == 0) { // inherit = delete
+
+                            unassign_capability($capname, $roleid, $sitecontext->id);
+
+                        } else {
+
+                            $localoverride->permission = $value;
+                            $localoverride->timemodified = time();
+                            $localoverride->modifierid = $USER->id;
+                            update_record('role_capabilities', $localoverride);    
+
+                        }
+
                     } else { // insert a record
-                                        
-                        assign_capability($capname, $value, $roleid, $contextid);
+
+                        assign_capability($capname, $value, $roleid, $sitecontext->id);
 
                     }
-                    
+
                 }
             
                 // update normal role settings
         choose_from_menu ($options, 'roleid', $roleid, 'choose', $script='rolesform1.submit()');
         print ('</div></form>');
               
-        $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
-        $contextid = $sitecontext->id;
-        
         // this is the array holding capabilities of this role sorted till this context
-        $r_caps = role_context_capabilities($roleid, $sitecontext->id);
+        $r_caps = role_context_capabilities($roleid, $sitecontext);
               
         // this is the available capabilities assignable in this context
-        $capabilities = fetch_context_capabilities($sitecontext->id);
+        $capabilities = fetch_context_capabilities($sitecontext);
         
         print_simple_box_start();
         include_once('manage.html');
index dd518ef36a8574ad9f7a07a47997655ad137e0cf..0714fdec8feab1e35a681cf6e012149b8e47141b 100644 (file)
     
     if ($newuser && confirm_sesskey()) {                 // Create a new user
         
-        if (!has_capability('moodle/user:create', $context->id)) {
+        if (!has_capability('moodle/user:create', $context)) {
             error('You do not have the required permission to create new users.');
         }
         
 
     } else {                        // List all users for editing
         
-        if (!has_capability('moodle/user:update', $context->id)) {
+        if (!has_capability('moodle/user:update', $context)) {
             error('You do not have the required permission to edit users.');
         }
         
 
         } else if ($delete and confirm_sesskey()) {              // Delete a selected user, after confirmation
             
-            if (!has_capability('moodle/user:delete', $context->id)) {
+            if (!has_capability('moodle/user:delete', $context)) {
                 error('You do not have the required permission to delete a user.');
             }
             
                 if ($user->id == $USER->id or $user->username == "changeme") {
                     $deletebutton = "";
                 } else {
-                      if (has_capability('moodle/user:delete', $context->id)) {
+                      if (has_capability('moodle/user:delete', $context)) {
                         $deletebutton = "<a href=\"user.php?delete=$user->id&amp;sesskey=$USER->sesskey\">$strdelete</a>";                    } else {
                         $deletebutton ="";      
                     }
                 }
                 $fullname = fullname($user, true);
                 
-                if (has_capability('moodle/user:edit', $context->id)) {
+                if (has_capability('moodle/user:edit', $context)) {
                 
                     $table->data[] = array ("<a href=\"../user/view.php?id=$user->id&amp;course=$site->id\">$fullname</a>",
                                         "$user->email",
         echo "</form>";
         echo "</td></tr></table>";
         
-        if (has_capability('moodle/user:create', $context->id)) {
+        if (has_capability('moodle/user:create', $context)) {
             print_heading("<a href=\"user.php?newuser=true&amp;sesskey=$USER->sesskey\">".get_string("addnewuser")."</a>");    
         }
         if (!empty($table)) {
             print_paging_bar($usercount, $page, $perpage,
                              "user.php?sort=$sort&amp;dir=$dir&amp;perpage=$perpage".
                              "&amp;firstinitial=$firstinitial&amp;lastinitial=$lastinitial&amp;search=".urlencode(stripslashes($search))."&amp;");
-            if (has_capability('moodle/user:create', $context->id)) {                
+            if (has_capability('moodle/user:create', $context)) {                
                 print_heading("<a href=\"user.php?newuser=true&amp;sesskey=$USER->sesskey\">".get_string("addnewuser")."</a>");
             }
         }
         print_footer();
     }
 
-?>
\ No newline at end of file
+?>
index 68d674ee54409cd28d6c6adea125d4b99c709687..60c85193a61c69ec69261dc81423057ed3974bdc 100644 (file)
     $table->data[] = array("<b><a href=\"auth.php?sesskey=$USER->sesskey\">".get_string("authentication")."</a></b>",
                            get_string("adminhelpauthentication"));
 
-    if (has_capability('moodle/user:update', $context->id)) {
+    if (has_capability('moodle/user:update', $context)) {
         $table->data[] = array("<b><a href=\"user.php\">".get_string("edituser")."</a></b>",
                            get_string("adminhelpedituser"));
     }
     
-    if (has_capability('moodle/user:create', $context->id)) {
+    if (has_capability('moodle/user:create', $context)) {
         $table->data[] = array("<b><a href=\"$CFG->wwwroot/$CFG->admin/user.php?newuser=true&amp;sesskey=$USER->sesskey\">".get_string("addnewuser")."</a></b>",
                                get_string("adminhelpaddnewuser"));
     }
         
-    if (has_capability('moodle/user:create', $context->id)) {        
+    if (has_capability('moodle/user:create', $context)) {        
         $table->data[] = array("<b><a href=\"$CFG->wwwroot/$CFG->admin/uploaduser.php?sesskey=$USER->sesskey\">".get_string("uploadusers")."</a></b>",
                                get_string("adminhelpuploadusers"));
     }
index af67a8a512ea3a7e6dae31a6170e08aae97d0db0..66764fca9e4d1ff3ed3e774ad9fbc5b3381c5a30 100644 (file)
@@ -33,33 +33,33 @@ class block_admin extends block_list {
         global $CFG, $USER;
         
                $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-        if (has_capability('moodle/site:config', $context->id)) {
+        if (has_capability('moodle/site:config', $context)) {
 
             $this->content->items[] = '<a href="'.$CFG->wwwroot.'/'.$CFG->admin.'/configure.php">'.get_string('configuration').'</a>';
             $this->content->icons[] = '<img src="'.$CFG->pixpath.'/i/admin.gif" alt="" />';
                }
                
-        if (has_capability('moodle/site:config', $context->id)) {
+        if (has_capability('moodle/site:config', $context)) {
             $this->content->items[] = '<a href="'.$CFG->wwwroot.'/'.$CFG->admin.'/users.php">'.get_string('users').'</a>';
             $this->content->icons[] = '<img src="'.$CFG->pixpath.'/i/users.gif" alt="" />';
         }
         
-               if (has_capability('moodle/site:backup', $context->id)) {
+               if (has_capability('moodle/site:backup', $context)) {
             $this->content->items[]='<a href="'.$CFG->wwwroot.'/backup/backup.php?id='.SITEID.'">'.get_string('backup').'</a>';
             $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/backup.gif" alt="" />';
                }
                
-               if (has_capability('moodle/site:restore', $context->id)) {
+               if (has_capability('moodle/site:restore', $context)) {
             $this->content->items[]='<a href="'.$CFG->wwwroot.'/files/index.php?id='.SITEID.'&amp;wdir=/backupdata">'.get_string('restore').'</a>';
             $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/restore.gif" alt="" />';
         }
 
-        if (has_capability('moodle/course:create', $context->id)) {
+        if (has_capability('moodle/course:create', $context)) {
             $this->content->items[] = '<a href="'.$CFG->wwwroot.'/course/index.php?edit=on&amp;sesskey='.sesskey().'">'.get_string('courses').'</a>';
             $this->content->icons[] = '<img src="'.$CFG->pixpath.'/i/course.gif" alt="" />';
         }
 
-        if (has_capability('moodle/site:config', $context->id)) {
+        if (has_capability('moodle/site:config', $context)) {
             $this->content->items[] = '<a href="'.$CFG->wwwroot.'/course/report/log/index.php?id='.SITEID.'">'.get_string('logs').'</a>';
             $this->content->icons[] = '<img src="'.$CFG->pixpath.'/i/log.gif" alt="" />';
 
@@ -111,7 +111,7 @@ class block_admin extends block_list {
 
             $isteacheredit = isteacheredit($this->instance->pageid);
 
-            if (has_capability('moodle/course:update', $context->id)) {
+            if (has_capability('moodle/course:update', $context)) {
             //if (isteacheredit($this->instance->pageid)) {
                 $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/edit.gif" alt="" />';
                 if (isediting($this->instance->pageid)) {
@@ -136,7 +136,7 @@ class block_admin extends block_list {
                $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/user.gif" alt="" />';
 
             /// always need a role assignment link
-            if (has_capability('moodle/role:assign', $context->id)) { 
+            if (has_capability('moodle/role:assign', $context)) { 
                                $this->content->items[]='<a href="'.$CFG->wwwroot.'/admin/roles/roleassignment.php?contextid='.$context->id.'">'.get_string('assignusers', 'roles').'</a>';
                $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/users.gif" alt="" />';         
                        }
@@ -152,12 +152,12 @@ class block_admin extends block_list {
                 $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/group.gif" alt="" />';
             }
 
-                       if (has_capability('moodle/site:backup', $context->id)) { 
+                       if (has_capability('moodle/site:backup', $context)) { 
                $this->content->items[]='<a href="'.$CFG->wwwroot.'/backup/backup.php?id='.$this->instance->pageid.'">'.get_string('backup').'</a>';
                $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/backup.gif" alt="" />';
                        }
                        
-                       if (has_capability('moodle/site:restore', $context->id)) {
+                       if (has_capability('moodle/site:restore', $context)) {
                    $this->content->items[]='<a href="'.$CFG->wwwroot.'/files/index.php?id='.$this->instance->pageid.'&amp;wdir=/backupdata">'.get_string('restore').'</a>';
                    $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/restore.gif" alt="" />';
                        }
@@ -165,7 +165,7 @@ class block_admin extends block_list {
             $this->content->items[]='<a href="'.$CFG->wwwroot.'/course/import.php?id='.$this->instance->pageid.'">'.get_string('import').'</a>';
             $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/restore.gif" alt="" />';
             
-                       if (has_capability('moodle/site:import', $context->id)) {
+                       if (has_capability('moodle/site:import', $context)) {
                                $this->content->items[]='<a href="'.$CFG->wwwroot.'/course/reset.php?id='.$this->instance->pageid.'">'.get_string('reset').'</a>';
                $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/return.gif" alt="" />';
             }
@@ -176,7 +176,7 @@ class block_admin extends block_list {
             $this->content->items[]='<a href="'.$CFG->wwwroot.'/question/edit.php?courseid='.$this->instance->pageid.'&amp;clean=true">'.get_string('questions', 'quiz').'</a>';
             $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/questions.gif" alt="" />';
 
-                       if (has_capability('moodle/course:managescales', $context->id)) {
+                       if (has_capability('moodle/course:managescales', $context)) {
                $this->content->items[]='<a href="scales.php?id='.$this->instance->pageid.'">'.get_string('scales').'</a>';
                $this->content->icons[]='<img src="'.$CFG->pixpath.'/i/scales.gif" alt="" />';      
                        }
index e3c170b1781a1a0cb33eecdd30bed4cda3ac46c2..3503cf7aa649d4a94234263a975edbe6a3a40300 100644 (file)
@@ -299,7 +299,7 @@ class block_base {
                                        $context = get_context_instance(CONTEXT_COURSE, $this->instance->pageid);
                                }
                                
-                               if (!has_capability('moodle/site:manageblocks', $context->id)) {
+                               if (!has_capability('moodle/site:manageblocks', $context)) {
                                        return null;
                                }
                        break;
index db666b641cb4aaf85f90a761033e3129f141ad82..639227d0c6cb6f4894205973902b1713d72ea818 100644 (file)
@@ -22,7 +22,7 @@ class block_participants extends block_list {
                        $context = get_context_instance(CONTEXT_COURSE, $this->instance->pageid);
                }
                
-               if (!has_capability('moodle/course:viewparticipants', $context->id)) {
+               if (!has_capability('moodle/course:viewparticipants', $context)) {
                        $this->context = '';
                        return $this->content;
                }
index 171304946ffb67ab6b76397d7df99009d11bd0ec..93355f76b11f87a3e05ba2d5861150738dfa377a 100755 (executable)
@@ -18,7 +18,7 @@ if (!$referrer = optional_param('referrer','', PARAM_URL)) {
 
 
 $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-if (!has_capability('moodle/blog:readentries', $context->id)) {
+if (!has_capability('moodle/blog:readentries', $context)) {
     error(get_string('nopost', 'blog'), $referrer);
 }
 
@@ -28,7 +28,7 @@ if ($editid = optional_param('editid', 0, PARAM_INT)) {
 
     $blogEntry = get_record('post', 'id', $editid);
 
-    if (!blog_user_can_edit_post($blogEntry, $context->id)) {
+    if (!blog_user_can_edit_post($blogEntry, $context)) {
         error( get_string('notallowedtoedit', 'blog'), $CFG->wwwroot .'/login/index.php');
     }
 }
@@ -155,7 +155,7 @@ function do_delete($postid) {
     // check ownership
     $blogEntry = get_record('post','id',$postid);
 
-    if (blog_user_can_edit_post($blogEntry, $context->id)) {
+    if (blog_user_can_edit_post($blogEntry, $context->id)) {          /// XXX TODO
         
         if (delete_records('post','id',$postid)) {
             //echo "bloginfo_arg:"; //debug
index 845ea209f1e65de41d63e5f2d86cca415019c306..f1a4968ccf1d6726d4e19bc40589c746b67f02e7 100755 (executable)
@@ -90,7 +90,7 @@ switch ($filtertype) {
     case 'site':
         $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
         if ($CFG->bloglevel < BLOG_SITE_LEVEL &&
-                    !has_capability('moodle/site:config', $context->id)) {
+                    !has_capability('moodle/site:config', $context)) {
             error('Site blogs is not enabled');
         } else if ($CFG->bloglevel < BLOG_GLOBAL_LEVEL) {
             require_login();
@@ -99,10 +99,10 @@ switch ($filtertype) {
     case 'course':
         $context = get_context_instance(CONTEXT_COURSE, $courseid);
         if ($CFG->bloglevel < BLOG_COURSE_LEVEL &&
-                    !has_capability('moodle/course:update', $context->id)) {
+                    !has_capability('moodle/course:update', $context)) {
             error('Course blogs is not enabled');
         }
-        if (!has_capability('moodle/blog:readentry', $context->id)) {
+        if (!has_capability('moodle/blog:readentry', $context)) {
             error('You do not have the required permissions to to view course blogs');
         }
     break;
@@ -110,10 +110,10 @@ switch ($filtertype) {
         $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
         $coursecontext = get_context_instance(CONTEXT_COURSE, $courseid);
         if ($CFG->bloglevel < BLOG_GROUP_LEVEL &&
-                    !has_capability('moodle/site:config', $sitecontext->id)) {
+                    !has_capability('moodle/site:config', $sitecontext)) {
             error ('Group blogs is not enabled');
         }
-        if (!has_capability('moodle/course:update', $coursecontext->id) &&
+        if (!has_capability('moodle/course:update', $coursecontext) &&
                     groupmode($course) == SEPARATEGROUPS) {
             if (!ismember($filterselect)) {
                 error ('You are not a member of this group');
@@ -122,13 +122,13 @@ switch ($filtertype) {
         /// check if user is editting teacher, or if spg, is member
     break;
     case 'user':
-        $context = get_context_instance(CONTEXT_SYSTEM, $context->id);
+        $context = get_context_instance(CONTEXT_SYSTEM, $context->id);   /// XXXXX  TODO
         if ($CFG->bloglevel < BLOG_USER_LEVEL &&
                     !has_capability('moodle/site:config', SITEID)) {
             error ('Blogs is not enabled');
         }
         if ($CFG->bloglevel == BLOG_USER_LEVEL && $USER->id != $filterselect &&
-                    !has_capability('moodle/site:config', $context->id)) {
+                    !has_capability('moodle/site:config', $context)) {
             error ('Under this setting, you can only view your own blogs');
         }
 
index 216bee90607be6427598b9e3699a48f1d8f58606..e0f0b0965db0a5d9605574d6a9129f96fd9e1202 100755 (executable)
      * the capability moodle/blog:writeentry, or if they have the capability
      * moodle/blog:manageentries.
      */
-    function blog_user_can_edit_post($blogEntry, $contextid) {
+    function blog_user_can_edit_post($blogEntry, $context) {
         
         global $CFG, $USER;
         
-        return ((has_capability('moodle/blog:writeentries', $contextid) &&
+        return ((has_capability('moodle/blog:writeentries', $context) &&
                     $blogEntry->userid == $USER->id) ||
-                    has_capability('moodle/blog:manageentries', $context->id));
+                    has_capability('moodle/blog:manageentries', $context));
     }
 
 
         
         $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
         
-        if (!has_capability('moodle/blog:readentry', $context->id)) {
+        if (!has_capability('moodle/blog:readentry', $context)) {
             return false;
         }
         
                 $filtertype.'&amp;filterselect='.$filterselect.'&amp;';
 
     }
-?>
\ No newline at end of file
+?>
index 03e2886f9d00db510e1d35284e7f86075088f5df..599f3d1b82ac589a303aa4651488a63526775361 100755 (executable)
@@ -20,7 +20,7 @@
     $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
 
     // Ensure that the logged in user has the capability to post blog entries.
-    if (!has_capability('moodle/blog:writepost', $context->id)) {
+    if (!has_capability('moodle/blog:writepost', $context)) {
         error(get_string('nopost', 'blog'), $referrer);
     }
     $userid = $USER->id;
index c14dc57324e0ea34f8dc1ccfc41a8c4afcc9335f..44e7a59ebbddf6f604f237f3835fb77c4bbdb87b 100755 (executable)
@@ -14,7 +14,7 @@ print_heading(get_string('tagmanagement'));
             <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
             <?php
             $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            if (has_capability('moodle/blog:manageofficialtags', $context->id)) {
+            if (has_capability('moodle/blog:manageofficialtags', $context)) {
             ?>
             <select name="tags[]" multiple="multiple" size="8">
             <?php
@@ -75,7 +75,7 @@ print_heading(get_string('tagmanagement'));
     
     <tr>
         <td>
-            <?php if (has_capability('moodle/blog:manageofficialtags', $context->id)) { ?>
+            <?php if (has_capability('moodle/blog:manageofficialtags', $context)) { ?>
             <form action="tags.php" method="POST">
             <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
             <?php print_string('addotags','blog');?>:<br/>
index 534e0d5240d4229ee7fdbec589614fc68b9b999f..46a99359e4cf8823e2d72c08f1f6520ff0cb5198 100755 (executable)
@@ -12,7 +12,7 @@ $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
 switch ($mode) {
     case 'addofficial':
         /// Adding official tags.
-        if (!has_capability('moodle/blog:manageofficialtags', $context->id) || !confirm_sesskey()) {
+        if (!has_capability('moodle/blog:manageofficialtags', $context) || !confirm_sesskey()) {
             die('you can not add official tags');
         }
         
@@ -39,7 +39,7 @@ switch ($mode) {
     case 'addpersonal':
         /// Everyone can add personal tags as long as they can write blog entries.
         if (!confirm_sesskey() ||
-                !has_capability('moodle/blog:writeentries', $context->id) ||
+                !has_capability('moodle/blog:writeentries', $context) ||
                 !isset($USER->id)) {
             error ('you can not add tags');
         }
@@ -78,7 +78,7 @@ switch ($mode) {
 
                 // You can only delete your own tags, or you have to have the
                 // moodle/blog:manageofficialtags capability.
-                if (!has_capability('moodle/blog:manageofficialtags', $context->id)
+                if (!has_capability('moodle/blog:manageofficialtags', $context)
                             && $USER->id != $blogtag->userid) {
                     notify(get_string('norighttodeletetag','blog', $blogtag->text));
                     continue;
@@ -86,7 +86,7 @@ switch ($mode) {
 
                 // You can only delete tags that are referenced if you have
                 // the moodle/blog:manageofficialtags capability.
-                if (!has_capability('moodle/blog:manageofficialtags', $context->id)
+                if (!has_capability('moodle/blog:manageofficialtags', $context)
                             && get_records('blog_tag_instance','tagid', $tag)) {
                     notify('tag is used by other users, can not delete!');
                     continue;
@@ -130,4 +130,4 @@ include_once('tags.html');
 print_footer();
 
 
-?>
\ No newline at end of file
+?>
index 30d22eb212ed3570554cfcc5096ad2f0f5917a02..47400c4a8bb924c5c9cafa65d2b1448ffcfdc60c 100644 (file)
                     echo '<a title="'.$strassignteachers.'" href="'.$CFG->wwwroot.'/course/teacher.php?id='.
                          $acourse->id.'">'.
                          '<img src="'.$CFG->pixpath.'/t/user.gif" height="11" width="11" border="0" alt="'.$strassignteachers.'" /></a> ';
-                                       if (has_capability('moodle/course:delete', $context->id)) {
+                                       if (has_capability('moodle/course:delete', $context)) {
                         echo '<a title="'.$strdelete.'" href="delete.php?id='.$acourse->id.'">'.
                              '<img src="'.$CFG->pixpath.'/t/delete.gif" height="11" width="11" border="0" alt="'.$strdelete.'" /></a> ';
                     }
 
-                                       if (has_capability('moodle/course:visibility', $context->id)) {
+                                       if (has_capability('moodle/course:visibility', $context)) {
                         if (!empty($acourse->visible)) {
                             echo '<a title="'.$strhide.'" href="category.php?id='.$category->id.'&amp;page='.$page.
                                 '&amp;perpage='.$perpage.'&amp;hide='.$acourse->id.'&amp;sesskey='.$USER->sesskey.'">'.
                         }
                     }
 
-                                       if (has_capability('moodle/site:backup', $context->id)) {
+                                       if (has_capability('moodle/site:backup', $context)) {
                            echo '<a title="'.$strbackup.'" href="../backup/backup.php?id='.$acourse->id.'">'.
                                 '<img src="'.$CFG->pixpath.'/t/backup.gif" height="11" width="11" border="0" alt="" /></a> ';
                                        }
                                        
-                                       if (has_capability('moodle/site:restore', $context->id)) {
+                                       if (has_capability('moodle/site:restore', $context)) {
                            echo '<a title="'.$strrestore.'" href="../files/index.php?id='.$acourse->id.
                                     '&amp;wdir=/backupdata">'.
                                     '<img src="'.$CFG->pixpath.'/t/restore.gif" height="11" width="11" border="0" alt="" /></a> ';
     }
 
        $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-    if (has_capability('moodle/course:create', $context->id)) {         /// Print button to create a new course
+    if (has_capability('moodle/course:create', $context)) {         /// Print button to create a new course
         unset($options);
         $options['category'] = $category->id;
         print_single_button('edit.php', $options, get_string('addnewcourse'), 'get');
     }
 
        $context = get_context_instance(CONTEXT_COURSECAT, $id);
-    if (has_capability('moodle/category:update', $context->id)) {           /// Print form to rename the category
+    if (has_capability('moodle/category:update', $context)) {           /// Print form to rename the category
         $strrename= get_string('rename');
         echo '<form name="renameform" action="category.php" method="post">';
         echo '<input type="hidden" name="id" value="'.$category->id.'" />';
index 22fe0b3c7e342143f6a2b5417f54e85f85fb23f6..3b1321df4db52600a07bc443cb616f347c455a38 100644 (file)
@@ -21,7 +21,7 @@
 
                $context = get_context_instance(CONTEXT_COURSE, $id);
                
-        if (!has_capability('moodle/course:update', $context->id)) {
+        if (!has_capability('moodle/course:update', $context)) {
             error("You do not currently have editing privileges!");
         }
         
@@ -41,7 +41,7 @@
     } else {  // Admin is creating a new course
 
                $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-               if (!has_capability('moodle/course:create',$context->id)) {
+               if (!has_capability('moodle/course:create',$context)) {
             error("You do not currently have course creation privileges!");
         }
 
index 311bf7f0fd35d82e44e4f55978df7c9a75681308..9c60633e4c9376de9a1d6821d92bf8d770d6d50b 100644 (file)
@@ -27,7 +27,7 @@
        $context = get_context_instance(CONTEXT_GROUP, $group->id);
 
        // this is really weird
-    if (!has_capability('moodle/course:managegroups', $context->id)) {
+    if (!has_capability('moodle/course:managegroups', $context)) {
         close_window();
     }
 
index 01021fee9b54b02b75a290c913b0087cd7d8f808..b083dca59e8eca47d28d4627212e544228bb7cd8 100644 (file)
@@ -38,7 +38,7 @@
     require_login($course->id);
        $context = get_context_instance(CONTEXT_COURSE, $course->id);
 
-    if (!has_capability('moodle/course:managegroups', $context->id)) {
+    if (!has_capability('moodle/course:managegroups', $context)) {
         redirect("group.php?id=$course->id");   // Not allowed to see all groups
     }
 
index 8d8b0930ffda61ded95c737740334c12a04e6f43..71583cdbccc56eee647b5a08980aaf9e99407f63 100644 (file)
@@ -99,7 +99,7 @@
 
 
 /// If data for a new category was submitted, then add it
-    if ($form = data_submitted() and confirm_sesskey() and has_capability('moodle/category:create', $context->id)) {
+    if ($form = data_submitted() and confirm_sesskey() and has_capability('moodle/category:create', $context)) {
         if (!empty($form->addcategory)) {
             unset($newcategory);
             $newcategory->name = $form->addcategory;
        
        // context is coursecat, if not present admins should have it set in site level
        $context = get_context_instance(CONTEXT_COURSECAT, $delete);      
-               if ($deletecat = get_record("course_categories", "id", $delete) and has_capability('moodle/category:delete', $context->id)) {
+               if ($deletecat = get_record("course_categories", "id", $delete) and has_capability('moodle/category:delete', $context)) {
             if (!empty($sure) && $sure == md5($deletecat->timemodified)) {
                 /// Send the children categories to live with their grandparent
                 if ($childcats = get_records("course_categories", "parent", $deletecat->id)) {
     fix_course_sortorder();
 
 /// Print form for creating new categories
-       if (has_capability('moodle/category:create', $context->id)) {
+       if (has_capability('moodle/category:create', $context)) {
            echo "<center>";
            echo "<form name=\"addform\" action=\"index.php\" method=\"post\">";
            echo "<input type=\"text\" size=\"30\" alt=\"$straddnewcategory\" name=\"addcategory\" />";
     $options["category"] = $category->id;
     
     
-    if (has_capability('moodle/course:create', $context->id)) {
+    if (has_capability('moodle/course:create', $context)) {
        print_single_button("edit.php", $options, get_string("addnewcourse"), "get");
     }
     print_single_button('pending.php',NULL, get_string('coursespending'),"get");
@@ -359,12 +359,12 @@ function print_category_edit($category, $displaylist, $parentslist, $depth=-1, $
 
         echo "<td nowrap=\"nowrap\">";    /// Print little icons
 
-               if (has_capability('moodle/category:delete', $context->id)) {
+               if (has_capability('moodle/category:delete', $context)) {
                echo "<a title=\"$str->delete\" href=\"index.php?delete=$category->id&amp;sesskey=$USER->sesskey\"><img".
                " src=\"$CFG->pixpath/t/delete.gif\" height=\"11\" width=\"11\" border=\"0\" alt=\"\" /></a> ";
                }
                
-               if (has_capability('moodle/category:visibility', $context->id)) {
+               if (has_capability('moodle/category:visibility', $context)) {
                if (!empty($category->visible)) {
                    echo "<a title=\"$str->hide\" href=\"index.php?hide=$category->id&amp;sesskey=$USER->sesskey\"><img".
                         " src=\"$CFG->pixpath/t/hide.gif\" height=\"11\" width=\"11\" border=\"0\" alt=\"\" /></a> ";
index 675e5f929f23e9e7b79143e190d675c976c6fb87..24242926ad528cfff248e8087fd359e4fa3cd14c 100644 (file)
@@ -1501,7 +1501,7 @@ function print_courses($category, $width="100%", $hidesitecourse = false) {
     } else {
         print_heading(get_string("nocoursesyet"));
                $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-        if (has_capability('moodle/course:create', $context->id)) {
+        if (has_capability('moodle/course:create', $context)) {
             $options = array();
             $options['category'] = $category->id;
             echo '<div class="addcoursebutton" align="center">';
index 29737de16e569d1da4b09992d14457d400f7ad07..4c7ddf8aa98d62991b711aee3e8f640d919ab908 100644 (file)
@@ -63,7 +63,7 @@
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $course->id);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
         
         $mod->course = $course->id;
         $mod->modulename = clean_param($mod->modulename, PARAM_SAFEDIR);  // For safety
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $section->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         if (!ismoving($section->course)) {
             error("You need to copy something first!");
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         $cm->indent += $indent;
 
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         set_coursemodule_visible($cm->id, 0);
 
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         if (! $section = get_record("course_sections", "id", $cm->section)) {
             error("This module doesn't exist");
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         set_coursemodule_groupmode($cm->id, $groupmode);
 
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         if (! $section = get_record("course_sections", "id", $cm->section)) {
             error("This module doesn't exist");
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $cm->course);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
                
         if (! $module = get_record("modules", "id", $cm->module)) {
             error("This module doesn't exist");
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $course->id);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
 
         if (! $module = get_record("modules", "id", $cm->module)) {
             error("This module doesn't exist");
         }
 
                $context = get_context_instance(CONTEXT_COURSE, $course->id);
-               has_capability('moodle/course:update', $context->id, true);
+               require_capability('moodle/course:update', $context);
                
         if (! $module = get_record("modules", "id", $cm->module)) {
             error("This module doesn't exist");
     }
 
        $context = get_context_instance(CONTEXT_COURSE, $course->id);
-       has_capability('moodle/course:update', $context->id, true);
+       require_capability('moodle/course:update', $context);
 
     $streditinga = get_string("editinga", "moodle", $fullmodulename);
     $strmodulenameplural = get_string("modulenameplural", $module->name);
index 0cd5b72ef0235f2bc932cc1ac805fad45abfda93..d3f95513d09df7fc73f92830acd636176959f69a 100644 (file)
@@ -94,7 +94,7 @@
     //If action is details, show the popup info
     if ($action == "details") {
         //Check for teacher edit
-               has_capability('moodle/course:managescales', $context->id, true);
+               require_capability('moodle/course:managescales', $context);
           
         //Check for scale
         if (! $scale = get_record("scale", "id", $scaleid)) {
 
         $sesskey = !empty($USER->id) ? $USER->sesskey : '';
 
-               has_capability('moodle/course:managescales', $context->id, true);
+               require_capability('moodle/course:managescales', $context);
                
         //Check for scale if action = edit
         if ($action == "edit") {
     //If action is delete, do it
     if ($action == "delete" and confirm_sesskey()) {
         //Check for teacher edit
-               has_capability('moodle/course:managescales', $context->id, true);
+               require_capability('moodle/course:managescales', $context);
         //Check for scale if action = edit
         if (! $scale = get_record("scale", "id", $scaleid)) {
             error("Scale ID was incorrect");
     //If action is down or up, do it
     if (($action == "down" || $action == "up") and confirm_sesskey()) {
         //Check for teacher edit
-               has_capability('moodle/course:managescales', $context->id, true);
+               require_capability('moodle/course:managescales', $context);
         //Check for scale if action = edit
         if (! $scale = get_record("scale", "id", $scaleid)) {
             error("Scale ID was incorrect");
     }
 
     if ($list) {       /// Just list the scales (in a helpwindow)
-               has_capability('moodle/course:viewscales', $context->id, true);
+               require_capability('moodle/course:viewscales', $context);
         print_header($strscales);
 
         if (!empty($scaleid)) {
             }
 
         } else {
-            if (has_capability('moodle/course:managescales', $context->id)) {
+            if (has_capability('moodle/course:managescales', $context)) {
                 echo "<p align=\"center\">(";
                 print_string("scalestip");
                 echo ")</p>";
 
 /// The rest is all about editing the scales
 
-    has_capability('moodle/course:managescales', $context->id, true);
+    require_capability('moodle/course:managescales', $context);
 
 /// Print out the main page
 
index 29e176f92f14c3c5fdf60578eaf6b726bc1c419a..3d7cb6dbd50bebf0cef12ff1fdc70399263cffd5 100755 (executable)
@@ -35,14 +35,13 @@ $context_cache_id = array();    // Index to above cache by id
 
 /**
  * This functions get all the course categories in proper order
- * @param int $contextid
+ * @param int $context
  * @param int $type
  * @return array of contextids
  */
-function get_parent_cats($contextid, $type) {
+function get_parent_cats($context, $type) {
     
     $parents = array();
-    $context = get_context_instance_by_id($contextid);
     
     switch($type) {
 
@@ -85,36 +84,53 @@ function get_parent_cats($contextid, $type) {
 /* Functions for Roles & Capabilites */
 
 
+/**
+ * This function checks for a capability assertion being true.  If it isn't
+ * then the page is terminated neatly with a standard error message
+ * @param string $capability - name of the capability
+ * @param object $context - a context object (record from context table)
+ * @param integer $userid - a userid number
+ * @param string $errorstring - an errorstring
+ */
+function require_capability($capability, $context=NULL, $userid=NULL, $errormessage="nopermissions", $stringfile='') {
+    if (!has_capability($capability, $context, $userid)) {
+        $capabilityname = get_capability_string($capability);
+        print_error($errormessage, $stringfile, '', $capabilityname);
+    }
+}
+
+
 /**
  * This function returns whether the current user has the capability of performing a function
  * For example, we can do has_capability('mod/forum:replypost',$cm) in forum
  * only one of the 4 (moduleinstance, courseid, site, userid) would be set at 1 time
  * This is a recursive funciton.
- * Might change to require_capability, and throw an error if not authorized.
  * @uses $USER
  * @param string $capability - name of the capability
- * @param int $contextid
- * @param kill bool - if set, kill when the user has no capability
+ * @param object $context - a context object (record from context table)
+ * @param integer $userid - a userid number
  * @return bool
  */
-function has_capability($capability, $contextid=NULL, $kill=false, $userid=NULL) {
+function has_capability($capability, $context=NULL, $userid=NULL) {
 
     global $USER, $CONTEXT;
 
     if ($userid && $userid != $USER->id) { // loading other user's capability
-        $capabilities = load_user_capability($capability, $contextid, $userid);
+        $capabilities = load_user_capability($capability, $context, $userid);
     } else {
         $capabilities = $USER->capabilities;  
     }
     
-    if (empty($contextid)) {
+    if (empty($context)) {                 // Use default CONTEXT if none specified
         if (empty($CONTEXT)) {
             return false;
         } else {
             $context = $CONTEXT;
         }
-    } else {
-        $context = get_context_instance_by_id($contextid);
+    } else {                               // A context was given to us
+        if (empty($CONTEXT)) {
+            $CONTEXT = $context;           // Store FIRST used context in this global as future default
+        }
     }
 
     // Check site
@@ -123,11 +139,11 @@ function has_capability($capability, $contextid=NULL, $kill=false, $userid=NULL)
         return ($capabilities[$sitecontext->id]['moodle/site:doanything']);
     }
     
-    switch (context_level($contextid)) {
+    switch ($context->level) {
         
         case CONTEXT_COURSECAT:
             // Check parent cats.
-            $parentcats = get_parent_cats($contextid, CONTEXT_COURSECAT);
+            $parentcats = get_parent_cats($context, CONTEXT_COURSECAT);
             foreach ($parentcats as $parentcat) {
                 if (isset($capabilities[$parentcat]['moodle/site:doanything'])) {
                     return ($capabilities[$parentcat]['moodle/site:doanything']);
@@ -137,7 +153,7 @@ function has_capability($capability, $contextid=NULL, $kill=false, $userid=NULL)
 
         case CONTEXT_COURSE:
             // Check parent cat.
-            $parentcats = get_parent_cats($contextid, CONTEXT_COURSE);
+            $parentcats = get_parent_cats($context, CONTEXT_COURSE);
 
             foreach ($parentcats as $parentcat) {
                 if (isset($capabilities[$parentcat]['do_anything'])) {
@@ -209,12 +225,12 @@ function has_capability($capability, $contextid=NULL, $kill=false, $userid=NULL)
     }
 
     // Last: check self.
-    if (isset($capabilities[$contextid]['do_anything'])) {
-        return ($capabilities[$contextid]['do_anything']);
+    if (isset($capabilities[$context->id]['do_anything'])) {
+        return ($capabilities[$context->id]['do_anything']);
     }
     
     // do_anything has not been set, we now look for it the normal way.
-    return capability_search($capability, $contextid, $kill, $capabilities);
+    return capability_search($capability, $context, $capabilities);
 
 }    
 
@@ -223,76 +239,73 @@ function has_capability($capability, $contextid=NULL, $kill=false, $userid=NULL)
  * In a separate function so that we won't have to deal with do_anything.
  * again. Used by function has_capability.
  * @param $capability - capability string
- * @param $contextid - the context id
- * @param $kill - boolean. Error out and exit if the user doesn't have the
- *                capability?
+ * @param $context - the context object
  * @param $capabilities - either $USER->capability or loaded array
  * @return permission (int)
  */
-function capability_search($capability, $contextid, $kill=false, $capabilities) {
+function capability_search($capability, $context, $capabilities) {
     global $USER, $CFG;
-    
+
     if ($CFG->debug) {
-        notify("We are looking for $capability in context $contextid", 'notifytiny');
+        notify("Looking for $capability in context $context->id", 'notifytiny');
     }
     
-    if (isset($capabilities[$contextid][$capability])) {
-        return ($capabilities[$contextid][$capability]);
+    if (isset($capabilities[$context->id][$capability])) {
+        return ($capabilities[$context->id][$capability]);
     }
     
     /* Then, we check the cache recursively */
-    $context = get_context_instance_by_id($contextid);
     $permission = 0;    
     
-    switch (context_level($contextid)) {
+    switch ($context->level) {
 
         case CONTEXT_SYSTEM: // by now it's a definite an inherit
             $permission = 0;
         break;
 
         case CONTEXT_PERSONAL:
-            $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
         
         case CONTEXT_USERID:
-            $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
         
         case CONTEXT_COURSECAT: // Coursecat -> coursecat or site
             $coursecat = get_record('course_categories','id',$context->instanceid);
-            if ($coursecat->parent) { // return parent value if exist
-                $parent = get_context_instance(CONTEXT_COURSECAT, $coursecat->parent);
+            if (!empty($coursecat->parent)) { // return parent value if it exists
+                $parentcontext = get_context_instance(CONTEXT_COURSECAT, $coursecat->parent);
             } else { // else return site value
-                $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
+                $parentcontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
             }
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
 
         case CONTEXT_COURSE: // 1 to 1 to course cat
             // find the course cat, and return its value
             $course = get_record('course','id',$context->instanceid);
-            $parent = get_context_instance(CONTEXT_COURSECAT, $course->category);
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_COURSECAT, $course->category);
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
 
         case CONTEXT_GROUP: // 1 to 1 to course
             $group = get_record('groups','id',$context->instanceid);
-            $parent = get_context_instance(CONTEXT_COURSE, $group->courseid);
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_COURSE, $group->courseid);
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
 
         case CONTEXT_MODULE: // 1 to 1 to course
             $cm = get_record('course_modules','id',$context->instanceid);
-            $parent = get_context_instance(CONTEXT_COURSE, $cm->course);
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_COURSE, $cm->course);
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
 
         case CONTEXT_BLOCK: // 1 to 1 to course
             $block = get_record('block_instance','id',$context->instanceid);
-            $parent = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
-            $permission = (capability_search($capability, $parent->id, false, $capabilities));
+            $parentcontext = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
+            $permission = capability_search($capability, $parentcontext, $capabilities);
         break;
 
         default:
@@ -300,9 +313,6 @@ function capability_search($capability, $contextid, $kill=false, $capabilities)
         return false;
     }
     
-    if ($kill && ($permission <= 0)) {
-        error ('You do not have the required capability '.$capability);
-      }
     return $permission;
 }
 
@@ -322,7 +332,7 @@ function capability_search($capability, $contextid, $kill=false, $capabilities)
  *                   [273][blah blah] = 1
  *                   [273][blah blah blah] = 2
  */
-function load_user_capability($capability='', $contextid ='', $userid='') {
+function load_user_capability($capability='', $context ='', $userid='') {
     
     global $USER, $CFG;
 
@@ -339,22 +349,18 @@ function load_user_capability($capability='', $contextid ='', $userid='') {
     }
     // First we generate a list of all relevant contexts of the user
 
-    if ($contextid) { // if context is specified
-        $context = get_context_instance_by_id($contextid);
-    
-        $usercontexts = get_parent_contexts($context->id);          
+    if ($context) { // if context is specified
+        $usercontexts = get_parent_contexts($context);          
         $listofcontexts = '('.implode(',', $usercontexts).')';
     } else { // else, we load everything
-        $usercontexts = get_records('role_assignments','userid',$userid);    
-        $listofcontexts = '(';
-        foreach ($usercontexts as $usercontext) {
-            $listofcontexts .= $usercontext->contextid;
-            $listofcontexts .= ',';
+        $userroles = get_records('role_assignments','userid',$userid);    
+        $usercontexts = array();
+        foreach ($userroles as $userrole) {
+            $usercontexts[] = $userrole->contextid;
         }
-        $listofcontexts = rtrim ($listofcontexts, ",");
-        $listofcontexts .= ')';
+        $listofcontexts = '('.implode(',', $usercontexts).')';
     }
-    
+
     // Then we use 1 giant SQL to bring out all relevant capabilities.
     // The first part gets the capabilities of orginal role.
     // The second part gets the capabilities of overriden roles.
@@ -470,9 +476,11 @@ function load_user_capability($capability='', $contextid ='', $userid='') {
     $usercap = array(); // for other user's capabilities
     foreach ($capabilities as $capability) {
 
+        $context = get_context_instance_by_id($capability->id);
+
         if (!empty($otheruserid)) { // we are pulling out other user's capabilities, do not write to session
             
-            if (capability_prohibits($capability->capability, $capability->id, $capability->sum, $usercap)) {
+            if (capability_prohibits($capability->capability, $context, $capability->sum, $usercap)) {
                 $usercap[$capability->id][$capability->capability] = -9000;
                 continue;
             }
@@ -481,7 +489,7 @@ function load_user_capability($capability='', $contextid ='', $userid='') {
           
         } else {
 
-            if (capability_prohibits($capability->capability, $capability->id, $capability->sum)) { // if any parent or parent's parent is set to prohibit
+            if (capability_prohibits($capability->capability, $context, $capability->sum)) { // if any parent or parent's parent is set to prohibit
                 $USER->capabilities[$capability->id][$capability->capability] = -9000;
                 continue;
             }
@@ -518,30 +526,30 @@ function load_user_capability($capability='', $contextid ='', $userid='') {
  *
  * @param $capability - capability name
  * @param $sum - sum of all capabilities values
- * @param $contextid - the context id
+ * @param $context - the context object
  * @param $array - when loading another user caps, their caps are not stored in session but an array
  */
-function capability_prohibits($capability, $contextid, $sum='', $array='') {
+function capability_prohibits($capability, $context, $sum='', $array='') {
     global $USER;
+
     if ($sum < -8000) {
         // If this capability is set to prohibit.
         return true;
     }
     
     if (isset($array)) {
-        if (isset($array[$contextid][$capability]) 
-                && $array[$contextid][$capability] < -8000) {
+        if (isset($array[$context->id][$capability]) 
+                && $array[$context->id][$capability] < -8000) {
             return true;
         }    
     } else {
         // Else if set in session.
-        if (isset($USER->capabilities[$contextid][$capability]) 
-                && $USER->capabilities[$contextid][$capability] < -8000) {
+        if (isset($USER->capabilities[$context->id][$capability]) 
+                && $USER->capabilities[$context->id][$capability] < -8000) {
             return true;
         }
     }
-    $context = get_context_instance_by_id($contextid);
-    switch (context_level($contextid)) {
+    switch ($context->level) {
         
         case CONTEXT_SYSTEM:
             // By now it's a definite an inherit.
@@ -550,12 +558,12 @@ function capability_prohibits($capability, $contextid, $sum='', $array='') {
 
         case CONTEXT_PERSONAL:
             $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_USERID:
             $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_COURSECAT:
@@ -568,7 +576,7 @@ function capability_prohibits($capability, $contextid, $sum='', $array='') {
                 // Return site value.
                 $parent = get_context_instance(CONTEXT_SYSTEM, SITEID);
             }
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_COURSE:
@@ -576,28 +584,28 @@ function capability_prohibits($capability, $contextid, $sum='', $array='') {
             // Find the course cat, and return its value.
             $course = get_record('course','id',$context->instanceid);
             $parent = get_context_instance(CONTEXT_COURSECAT, $course->category);
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_GROUP:
             // 1 to 1 to course.
             $group = get_record('groups','id',$context->instanceid);
             $parent = get_context_instance(CONTEXT_COURSE, $group->courseid);
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_MODULE:
             // 1 to 1 to course.
             $cm = get_record('course_modules','id',$context->instanceid);
             $parent = get_context_instance(CONTEXT_COURSE, $cm->course);
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         case CONTEXT_BLOCK:
             // 1 to 1 to course.
             $block = get_record('block_instance','id',$context->instanceid);
             $parent = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
-            return (capability_prohibits($capability, $parent->id));
+            return capability_prohibits($capability, $parent);
         break;
 
         default:
@@ -816,7 +824,7 @@ function create_context($level, $instanceid) {
  */
 function get_context_instance($level=NULL, $instance=SITEID) {
 
-    global $CONTEXT;
+    global $CONTEXT, $context_cache, $context_cache_id;
 
 /// If no level is supplied then return the current global context if there is one
     if (empty($level)) {
@@ -844,6 +852,7 @@ function get_context_instance($level=NULL, $instance=SITEID) {
     $context_cache[$level][$instance] = $context;    // Cache it for later
     $context_cache_id[$context->id] = $context;      // Cache it for later
 
+
     return $context;
 }
 
@@ -867,23 +876,11 @@ function get_context_instance_by_id($id) {
 }
 
 
-/**
- * Looks up the context level.
- * @param int $contextid
- * @return int
- */
-function context_level($contextid) {
-    if ($context = get_context_instance_by_id($contextid)) {
-        return $context->level;
-    } 
-    return false;
-}
-
-
 /**
  * Get the local override (if any) for a given capability in a role in a context
  * @param $roleid
- * @param $instance
+ * @param $contextid
+ * @param $capability
  */
 function get_local_override($roleid, $contextid, $capability) {
     return get_record('role_capabilities', 'roleid', $roleid, 'capability', $capability, 'contextid', $contextid);
@@ -907,7 +904,6 @@ function create_role($name, $description, $legacy='') {
     // check for duplicate role name
                 
     if ($role = get_record('role','name', $name)) {
-          print_object($role);
         error('there is already a role with this name!');  
     }
     
@@ -1222,12 +1218,10 @@ function capabilities_cleanup($component, $newcapdef=NULL) {
 /**
  * prints human readable context identifier.
  */
-function print_context_name($contextid) {
+function print_context_name($context) {
 
     $name = '';
 
-    $context = get_context_instance_by_id($contextid);
-
     switch ($context->level) {
 
         case CONTEXT_SYSTEM: // by now it's a definite an inherit
@@ -1295,7 +1289,7 @@ function print_context_name($contextid) {
  * All case based, example an instance of forum context.
  * Will fetch all forum related capabilities, while course contexts
  * Will fetch all capabilities
- * @param int contextid
+ * @param object context
  * @return array();
  *
  *  capabilities
@@ -1304,13 +1298,13 @@ function print_context_name($contextid) {
  * `contextlevel` int(10) NOT NULL,
  * `component` varchar(100) NOT NULL,
  */
-function fetch_context_capabilities($contextid) {
+function fetch_context_capabilities($context) {
       
     global $CFG;
 
     $sort = 'ORDER BY contextlevel,component,id';   // To group them sensibly for display
       
-    switch (context_level($contextid)) {
+    switch ($context->level) {
 
         case CONTEXT_SYSTEM: // all
             $SQL = "select * from {$CFG->prefix}capabilities";
@@ -1334,7 +1328,6 @@ function fetch_context_capabilities($contextid) {
         break;
 
         case CONTEXT_MODULE: // mod caps
-            $context = get_context_instance_by_id($contextid);
             $cm = get_record('course_modules', 'id', $context->instanceid);
             $module = get_record('modules', 'id', $cm->module);
         
@@ -1343,7 +1336,6 @@ function fetch_context_capabilities($contextid) {
         break;
 
         case CONTEXT_BLOCK: // block caps
-            $context = get_context_instance_by_id($contextid);
             $cb = get_record('block_instance', 'id', $context->instanceid);
             $block = get_record('block', 'id', $cb->blockid);
         
@@ -1365,20 +1357,19 @@ function fetch_context_capabilities($contextid) {
  * This function pulls out all the resolved capabilities (overrides and
  * defaults) of a role used in capability overrieds in contexts at a given
  * context.
- * @param int $contextid
+ * @param int $context
  * @param int $roleid
  * @return array
  */
-function role_context_capabilities($roleid, $contextid) {
+function role_context_capabilities($roleid, $context) {
     global $CFG; 
     
     $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
-    if ($sitecontext->id == $contextid) {
+    if ($sitecontext->id == $context->id) {
         return array();  
     }
     
     // first of all, figure out all parental contexts
-    $context = get_context_instance_by_id($contextid);
     $contexts = array_reverse(get_parent_contexts($context));
     $contexts = '('.implode(',', $contexts).')';
     
@@ -1404,7 +1395,7 @@ function role_context_capabilities($roleid, $contextid) {
 
 
 /**
- * Recursive function which, given a contextid, find all parent context ids, 
+ * Recursive function which, given a context, find all parent context ids, 
  * and return the array in reverse order, i.e. parent first, then grand
  * parent, etc.
  * @param object $context
@@ -1414,7 +1405,7 @@ function role_context_capabilities($roleid, $contextid) {
  
 function get_parent_contexts($context) {
   
-    switch (context_level($context->id)) {
+    switch ($context->level) {
 
         case CONTEXT_SYSTEM: // no parent
             return null;
@@ -1478,7 +1469,6 @@ function get_parent_contexts($context) {
  * This function gets the capability of a role in a given context.
  * It is needed when printing override forms.
  * @param int $contextid
- * @param int $roleid // no need? since role is used in extraction in $capability
  * @param string $capability
  * @param array $capabilities - array loaded using role_context_capabilities
  * @return int (allow, prevent, prohibit, inherit)
@@ -1490,7 +1480,6 @@ function get_role_context_capability($contextid, $capability, $capabilities) {
 }
 
 
-// a big switch statement
 function get_capability_string($capabilityname) {
 
     // Typical capabilityname is:   mod/choice:readresponses
index 80d6fb718b63349e6e9fcccc60cebfd15b969ca2..b4a43a33dbac8ae818f7cb32e32510b3c03dc09b 100644 (file)
@@ -1606,7 +1606,7 @@ function require_login($courseid=0, $autologinguest=true, $cm=null) {
         
         $context = get_context_instance(CONTEXT_COURSE, $courseid);
 
-        if (has_capability('moodle/course:view', $context->id)) {
+        if (has_capability('moodle/course:view', $context)) {
             if (isset($USER->realuser)) {   // Make sure the REAL person can also access this course
                 if (!isteacher($courseid, $USER->realuser)) {
                     print_header();
@@ -1965,21 +1965,19 @@ function isloggedin() {
  * @return bool
  */
 function isadmin($userid=0) {
-    global $USER;
+    global $USER, $CFG;
+
     static $admins, $nonadmins;
 
-    if (isset($CFG->rolesactive) && $CFG->rolesactive ===1) {
+    if (isset($CFG->rolesactive) && $CFG->rolesactive == 1) {
 
-        if ($courseid == 0) {
-            $context = get_context_instance(CONTEXT_SYSTEM, SITEID);  
-        } else {
-            $context = get_context_instance(CONTEXT_COURSE, $courseid);
-        }
+
+        $context = get_context_instance(CONTEXT_SYSTEM, SITEID);  
         
         if (!$userid) {
-            return has_capability('moodle/legacy:admin', $context->id);
+            return has_capability('moodle/legacy:admin', $context);
         } else {
-            return has_capability('moodle/legacy:admin', $context->id, false, $userid);
+            return has_capability('moodle/legacy:admin', $context, false, $userid);
         }
       
     }
@@ -2023,6 +2021,7 @@ function isadmin($userid=0) {
  * @param bool $includeadmin If true this function will return true when it encounters an admin user.
  * @return bool
  */
+
 function isteacher($courseid=0, $userid=0, $includeadmin=true) {
 /// Is the user able to access this course as a teacher?
     global $USER, $CFG;
@@ -2036,13 +2035,13 @@ function isteacher($courseid=0, $userid=0, $includeadmin=true) {
         }
     
         if (!$userid) {
-            return has_capability('moodle/legacy:teacher', $context->id);
+            return has_capability('moodle/legacy:teacher', $context);
         } else {
-            return has_capability('moodle/legacy:teacher', $context->id, false, $userid);
+            return has_capability('moodle/legacy:teacher', $context, $userid);
         }  
     }
 
-    // Old code follows, will be removed before 1.7 because it shouldn't run
+    // Old code follows, will be removed before 1.7 because it shouldn't run   XXX TODO
 
     if (empty($userid)) {                           // we are relying on $USER
         if (empty($USER) or empty($USER->id)) {     // not logged in so can't be a teacher
@@ -2125,9 +2124,9 @@ function isteacheredit($courseid, $userid=0, $ignorestudentview=false) {
         }
         
         if (!$userid) {
-            return has_capability('moodle/legacy:edittingteacher', $context->id);
+            return has_capability('moodle/legacy:edittingteacher', $context);
         } else {
-            return has_capability('moodle/legacy:edittingteacher', $context->id, false, $userid);
+            return has_capability('moodle/legacy:edittingteacher', $context, false, $userid);
         }
       
     }
@@ -2172,9 +2171,9 @@ function iscreator ($userid=0) {
         }
         
         if (!$userid) {
-            return has_capability('moodle/legacy:coursecreator', $context->id);
+            return has_capability('moodle/legacy:coursecreator', $context);
         } else {
-            return has_capability('moodle/legacy:coursecreator', $context->id, false, $userid);
+            return has_capability('moodle/legacy:coursecreator', $context, false, $userid);
         }
       
     }
@@ -2216,9 +2215,9 @@ function isstudent($courseid, $userid=0) {
         }
         
         if (!$userid) {
-            return has_capability('moodle/legacy:student', $context->id);
+            return has_capability('moodle/legacy:student', $context);
         } else {
-            return has_capability('moodle/legacy:student', $context->id, false, $userid);
+            return has_capability('moodle/legacy:student', $context, false, $userid);
         }
       
     }
index bb8676788748147da08e8a7e9643f0d15d8718d7..c17ce77dc9cb10bd3e8d3e56c3abd60a61da55db 100644 (file)
@@ -108,7 +108,7 @@ class assignment_base {
     function view() {
       
         $context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
-        has_capability('mod/assignment:view', $context->id, true);
+        require_capability('mod/assignment:view', $context);
         
         add_to_log($this->course->id, "assignment", "view", "view.php?id={$this->cm->id}", 
                    $this->assignment->id, $this->cm->id);
@@ -277,7 +277,7 @@ class assignment_base {
         $submitted = '';
 
         $context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
-        if (has_capability('mod/assignment:grade', $context->id) && (groupmode($this->course, $this->cm) == SEPARATEGROUPS)) {
+        if (has_capability('mod/assignment:grade', $context) && (groupmode($this->course, $this->cm) == SEPARATEGROUPS)) {
 
         // if this user can mark and is put in a group
         // then he can only see/mark submission in his own groups
@@ -2358,7 +2358,7 @@ function assignment_print_overview($courses, &$htmlarray) {
 
         // if (isteacher($assignment->course)) {
         $context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
-        if (has_capability('mod/assignment:grade', $context->id)) {
+        if (has_capability('mod/assignment:grade', $context)) {
             $submissions = count_records_sql("SELECT COUNT(*)
                               FROM {$CFG->prefix}assignment_submissions a, 
                                    {$CFG->prefix}user_students s,
index a84eaf41322e5d97c7acbf323ba7d1ac583151f4..d2a9a25d6a31b0b5a0a85d4e20415244aa33b12f 100644 (file)
@@ -15,7 +15,7 @@ class assignment_online extends assignment_base {
         global $USER;
                
                $context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
-        has_capability('mod/assignment:view', $context->id, true);
+        require_capability('mod/assignment:view', $context);
         
                $submission = $this->get_submission();
         
@@ -59,7 +59,7 @@ class assignment_online extends assignment_base {
             notify(get_string('submissionsaved', 'assignment'));
         }
 
-               if (has_capability('mod/assignment:submit', $context->id)) {
+               if (has_capability('mod/assignment:submit', $context)) {
                print_simple_box_start('center', '70%', '', '', 'generalbox', 'online');
                if ($editmode) {
                    $this->view_edit_form($submission);
index 7d076cd3839f497577edc2a93da2f30189ca0c07..dfbbb261a5e67cf9c468e50d8496bf2df514ce09 100644 (file)
@@ -49,7 +49,7 @@ class assignment_uploadsingle extends assignment_base {
         global $USER;
                
                $context = get_context_instance(CONTEXT_MODULE,$this->cm->id);
-        has_capability('mod/assignment:view', $context->id, true);
+        require_capability('mod/assignment:view', $context);
         
         add_to_log($this->course->id, "assignment", "view", "view.php?id={$this->cm->id}", $this->assignment->id, $this->cm->id);
 
@@ -69,7 +69,7 @@ class assignment_uploadsingle extends assignment_base {
             }
         }
 
-        if (has_capability('mod/assignment:submit', $context->id)  && $this->isopen() && (!$filecount || $this->assignment->resubmit || !$submission->timemarked)) {
+        if (has_capability('mod/assignment:submit', $context)  && $this->isopen() && (!$filecount || $this->assignment->resubmit || !$submission->timemarked)) {
             $this->view_upload_form();
         }
 
index 6c35be3ee20d4e1a6f19728342c0763254da8606..632940a7e72552ea31ef442998ec8a53af0bf1fd 100644 (file)
     
     require_login($course->id, false, $cm);
 
-    has_capability('mod/chat:chat',$context->id, true);
-    /*
-    if (isguest()) {
-        error('Guest does not have access to chat rooms');
-    }
-    */
+    require_capability('mod/chat:chat',$context);
+
     if (!$cm->visible and !isteacher($course->id)) {
         print_header();
         notice(get_string("activityiscurrentlyhidden"));
index 0052d558e5833e79923eb77d3b815bc828b348a6..c98b83e305c29bc273e08a0c21dac1490a131654 100644 (file)
@@ -210,7 +210,7 @@ function chat_print_recent_activity($course, $isteacher, $timestart) {
                 $context = get_context_instance(CONTEXT_MODULE, $cm->id);
               
                 // needs to be fixed
-                if (!(has_capability('mod/chat:readlog', $context->id) or instance_is_visible('chat', $chat))) {  // Chat hidden to students
+                if (!(has_capability('mod/chat:readlog', $context) or instance_is_visible('chat', $chat))) {  // Chat hidden to students
                 //if (!($isteacher or instance_is_visible('chat', $chat))) {  // Chat hidden to students
                     continue;
                 }
index 8f9ec6a370ce5abb318cf5aacc75b3dd53771cca..02faa08c1cdb743771986b6f576a1fd6b495b9c5 100644 (file)
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     require_login($course->id, false, $cm);
 
-    $isteacher     = isteacher($course->id);
-    $isteacheredit = isteacheredit($course->id);
-
-    //if (isguest() or (!$isteacher and !$chat->studentlogs)) {
-        //error('You can not view these chat reports');
-    //}
-    has_capability('mod/chat:readlog', $context->id, true); // if can't even read, kill
+    require_capability('mod/chat:readlog', $context); 
 
     add_to_log($course->id, 'chat', 'report', "report.php?id=$cm->id", $chat->id, $cm->id);
 
@@ -64,8 +58,7 @@
             $groupselect = "";
         }
 
-        //if ($deletesession and $isteacheredit) {
-        if ($deletesession and has_capability('mod/chat:deletelog', $context->id)) {
+        if ($deletesession and has_capability('mod/chat:deletelog', $context)) {
             notice_yesno(get_string('deletesessionsure', 'chat'),
                          "report.php?id=$cm->id&amp;deletesession=1&amp;confirmdelete=1&amp;start=$start&amp;end=$end&amp;sesskey=$USER->sesskey",
                          "report.php?id=$cm->id");
@@ -89,8 +82,7 @@
             print_simple_box_end('center');
         }
 
-        if (!$deletesession or !has_capability('mod/chat:deletelog', $context->id)) {
-        //if (!$deletesession or !$isteacheredit) {
+        if (!$deletesession or !has_capability('mod/chat:deletelog', $context)) {
             print_continue("report.php?id=$cm->id");
         }
 
 
 /// Delete a session if one has been specified
 
-    if ($deletesession and has_capability('mod/chat:deletelog', $context->id) and $confirmdelete and $start and $end and confirm_sesskey()) {
-    //if ($deletesession and $isteacheredit and $confirmdelete and $start and $end and confirm_sesskey()) {
+    if ($deletesession and has_capability('mod/chat:deletelog', $context) and $confirmdelete and $start and $end and confirm_sesskey()) {
         delete_records_select('chat_messages', "chatid = $chat->id AND
                                             timestamp >= '$start' AND
                                             timestamp <= '$end' $groupselect");
                 foreach ($sessionusers as $sessionuser => $usermessagecount) {
                     if ($user = get_record('user', 'id', $sessionuser)) {
                         print_user_picture($user->id, $course->id, $user->picture);
-                        echo '&nbsp;'.fullname($user, $isteacher); // need to fix this
+                        echo '&nbsp;'.fullname($user, true); // XXX TODO  use capability instead of true
                         echo "&nbsp;($usermessagecount)<br />";
                     }
                 }
 
                 echo '<p align="right">';
                 echo "<a href=\"report.php?id=$cm->id&amp;start=$sessionstart&amp;end=$sessionend\">$strseesession</a>";
-                //if ($isteacheredit)
-                if (has_capability('mod/chat:deletelog', $context->id)) {
+                if (has_capability('mod/chat:deletelog', $context)) {
                     echo "<br /><a href=\"report.php?id=$cm->id&amp;start=$sessionstart&amp;end=$sessionend&amp;deletesession=1\">$strdeletesession</a>";
                 }
                 echo '</p>';
index 5d96bd95434f43709a3cf80d1e5986e614e428db..d50ad4ced586984fcf96630d84b091e0e17587e7 100644 (file)
@@ -76,8 +76,7 @@
 
     echo '<td id="middle-column">';
     
-    if ($chat->studentlogs or has_capability('mod/chat:readlog',$context->id)) {
-    //if (($chat->studentlogs or isteacher($course->id)) and !isguest()) {
+    if ($chat->studentlogs or has_capability('mod/chat:readlog',$context)) {
         echo '<div class="reportlink">';
         echo "<a href=\"report.php?id=$cm->id\">".
               get_string('viewreport', 'chat').'</a>';
 
 /// Print the main part of the page
 
-    //if (!isguest()) {
-    if (has_capability('mod/chat:chat',$context->id, true)) {
+    if (has_capability('mod/chat:chat',$context)) {
         print_simple_box_start('center');
         link_to_popup_window ("/mod/chat/gui_$CFG->chat_method/index.php?id=$chat->id$groupparam",
                               "chat$course->id$chat->id$groupparam", "$strenterchat", 500, 700, get_string('modulename', 'chat'));
         print_simple_box_end();
     } else {
-/*
+/*    XXX TODO
         $wwwroot = $CFG->wwwroot.'/login/index.php';
         if (!empty($CFG->loginhttps)) {
             $wwwroot = str_replace('http:','https:', $wwwroot);
index 4ed0247baa347b32c0cec8e65779bcefa1ba52ec..2164e630386b564f7debc729bcf52a2abe3cde16 100644 (file)
@@ -158,7 +158,7 @@ $cdisplay = array();
             $context = get_context_instance(CONTEXT_MODULE, $cm->id);
             if (!empty($countanswers)) {
                 foreach ($countanswers as $ca) { //only return enrolled users.                  
-                    if (has_capability('mod/choice:choose', $context->id)) {
+                    if (has_capability('mod/choice:choose', $context)) {
                     //if (isstudent($cm->course, $ca->userid) or isteacher($cm->course, $ca->userid)) { 
                         $countans = $countans+1;
                     }
@@ -261,7 +261,7 @@ $current = get_record('choice_answers', 'choiceid', $choice->id, 'userid', $user
             if ($countanswers) {
             $countans = 0;
             foreach ($countanswers as $ca) { //only return enrolled users.
-                if (has_capability('mod/choice:choose', $context->id)) {
+                if (has_capability('mod/choice:choose', $context)) {
                 //if (isstudent($courseid, $ca->userid) or isteacher($courseid, $ca->userid)) { 
                     $countans = $countans+1;
                 }
@@ -307,7 +307,7 @@ function choice_show_reportlink($choice, $courseid, $cmid) {
         if ( $allanswers = get_records("choice_answers", "choiceid", $choice->id)) {
             $responsecount = 0;
             foreach ($allanswers as $aa) {
-                if (has_capability('mod/choice:readresponses', $context->id)) {
+                if (has_capability('mod/choice:readresponses', $context)) {
                 //if (isstudent($courseid, $aa->userid) or isteacher($courseid, $aa->userid)) { //check to make sure user is enrolled in course.
                     $responsecount++;
                 }
@@ -383,7 +383,7 @@ function choice_show_results($choice, $course, $cm, $forcepublish='') {
             //$isteacher = isteacher($course->id);
 
             $tablewidth = (int) (100.0 / count($useranswer));
-            if (has_capability('mod/choice:readresponses', $context->id)) {
+            if (has_capability('mod/choice:readresponses', $context)) {
             //if (isteacher($course->id, $USER->id)) {
                 echo '<div id="tablecontainer">';
                 echo '<form id="attemptsform" method="post" action="'.$_SERVER['PHP_SELF'].'" onsubmit="var menu = document.getElementById(\'menuaction\'); return (menu.options[menu.selectedIndex].value == \'delete\' ? \''.addslashes(get_string('deleteattemptcheck','quiz')).'\' : true);">';
@@ -470,7 +470,7 @@ function choice_show_results($choice, $course, $cm, $forcepublish='') {
             }
             
                 /// Print "Select all" etc.
-                if (has_capability('mod/choice:readresponses', $context->id)) {
+                if (has_capability('mod/choice:readresponses', $context)) {
                 //if (isteacher($course->id, $USER->id)) {
                     echo '<tr><td><p>';
                     echo '<tr><td>';
@@ -489,7 +489,7 @@ function choice_show_results($choice, $course, $cm, $forcepublish='') {
             
             echo "</tr></table>";
             //if (isteacher($course->id, $USER->id)) {
-            if (has_capability('mod/choice:readresponses', $context->id)) {
+            if (has_capability('mod/choice:readresponses', $context)) {
                 echo "</form></div>";
             }
             break;
index bb56faa63fb682dde3ac6511fc7f2919467ea395..547825e5f904238b15cc4b76feac51ef4bae6b47 100644 (file)
@@ -20,7 +20,7 @@
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    has_capability('mod/choice:readresponses', $context->id, true);
+    require_capability('mod/choice:readresponses', $context);
     
     //if (!isteacher($course->id)) {
     //    error("Only teachers can look at this page");
@@ -36,8 +36,7 @@
 
     add_to_log($course->id, "choice", "report", "report.php?id=$cm->id", "$choice->id",$cm->id);
       
-    if ($action == 'delete' && has_capability('mod/choice:deleteresponses',$context->id, true)) {
-    //if ($action == 'delete') { //some responses need to be deleted
+    if ($action == 'delete' && has_capability('mod/choice:deleteresponses',$context)) {
         $attemptids = isset($_POST['attemptid']) ? $_POST['attemptid'] : array(); //get array of repsonses to delete.
         choice_delete_responses($attemptids); //delete responses.
         redirect("report.php?id=$cm->id");                      
@@ -86,8 +85,7 @@
     ksort($useranswer);
     
     //print spreadsheet if one is asked for:
-    //if ($download == "xls") {
-    if ($download == "xls" && has_capability('mod/choice:downloadresponses', $context->id, true)) {
+    if ($download == "xls" && has_capability('mod/choice:downloadresponses', $context)) {
         require_once("$CFG->libdir/excellib.class.php");
   
     /// Calculate file name 
         exit;
     } 
     // print text file  
-    //if ($download == "txt") {   
-    if ($download == "txt" && has_capability('mod/choice:downloadresponses', $context->id, true)) {
+    if ($download == "txt" && has_capability('mod/choice:downloadresponses', $context)) {
         $filename = clean_filename("$course->shortname ".strip_tags(format_string($choice->name,true))).'.txt';
-            
-            header("Content-Type: application/download\n");
-            header("Content-Disposition: attachment; filename=\"$filename\"");
-            header("Expires: 0");
-            header("Cache-Control: must-revalidate,post-check=0,pre-check=0");
-            header("Pragma: public");
-            
-    /// Print names of all the fields
+
+        header("Content-Type: application/download\n");
+        header("Content-Disposition: attachment; filename=\"$filename\"");
+        header("Expires: 0");
+        header("Cache-Control: must-revalidate,post-check=0,pre-check=0");
+        header("Pragma: public");
+
+        /// Print names of all the fields
 
         echo get_string("firstname")."\t".get_string("lastname") . "\t". get_string("idnumber") . "\t";
         echo get_string("group"). "\t";
         echo get_string("choice","choice"). "\n";        
-        
-    /// generate the data for the body of the spreadsheet
-      $i=0;  
-      $row=1;
-      if ($users) foreach ($users as $user) {
-          if (!empty($answers[$user->id]) && !($answers[$user->id]->optionid==0 && isadmin($user->id)) && 
-              (!($answers[$user->id]->optionid==0 && isteacher($course->id, $user->id) && !(isteacheredit($course->id, $user->id)) ) ) &&  
-              !($choice->showunanswered==0 && $answers[$user->id]->optionid==0)  ) { //make sure admins and hidden teachers are not shown in not answered yet column, and not answered only shown if set in config page.
-
-              echo $user->lastname;
-              echo "\t".$user->firstname;
-              $studentid = " ";
-              if (!empty($user->idnumber)) {
-                  $studentid = $user->idnumber;
-              }              
-              echo "\t". $studentid."\t";
-              $ug2 = '';
-              if ($usergrps = user_group($course->id, $user->id)) {
-                  foreach ($usergrps as $ug) {
-                      $ug2 = $ug2. $ug->name;
-                  }
-              }
-              echo $ug2. "\t";
-              echo format_string(choice_get_option_text($choice, $answers[$user->id]->optionid),true). "\n";
-          }
-      $row++;
-      }      
-  exit;
-}
+
+        /// generate the data for the body of the spreadsheet
+        $i=0;  
+        $row=1;
+        if ($users) foreach ($users as $user) {
+            if (!empty($answers[$user->id]) && !($answers[$user->id]->optionid==0 && isadmin($user->id)) && 
+                    (!($answers[$user->id]->optionid==0 && isteacher($course->id, $user->id) && !(isteacheredit($course->id, $user->id)) ) ) &&  
+                    !($choice->showunanswered==0 && $answers[$user->id]->optionid==0)  ) { //make sure admins and hidden teachers are not shown in not answered yet column, and not answered only shown if set in config page.
+
+                echo $user->lastname;
+                echo "\t".$user->firstname;
+                $studentid = " ";
+                if (!empty($user->idnumber)) {
+                    $studentid = $user->idnumber;
+                }              
+                echo "\t". $studentid."\t";
+                $ug2 = '';
+                if ($usergrps = user_group($course->id, $user->id)) {
+                    foreach ($usergrps as $ug) {
+                        $ug2 = $ug2. $ug->name;
+                    }
+                }
+                echo $ug2. "\t";
+                echo format_string(choice_get_option_text($choice, $answers[$user->id]->optionid),true). "\n";
+            }
+            $row++;
+        }      
+        exit;
+    }
+
+
     choice_show_results($choice, $course, $cm, $format); //show table with students responses.
    
    //now give links for downloading spreadsheets. 
index fa6849ab407eed13c22b7f2cf787dba8a84207f4..87a1977bcb6495493637956cfc67931260246198 100644 (file)
@@ -18,7 +18,7 @@
     require_course_login($course, false, $cm);
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    has_capability('mod/choice:choose', $context->id, true);
+    require_capability('mod/choice:choose', $context);
 
     if (!$choice = choice_get_choice($cm->instance)) {
         error("Course module is incorrect");
@@ -33,8 +33,7 @@
 
     if ($form = data_submitted()) {
         $timenow = time();
-        if (has_capability('mod/choice:deleteresponses', $context->id)) {
-        //if (isteacher($course->id, $USER->id)) {
+        if (has_capability('mod/choice:deleteresponses', $context)) {
             if ($action == 'delete') { //some responses need to be deleted     
                 choice_delete_responses($attemptids); //delete responses.
                 redirect("view.php?id=$cm->id");
@@ -59,8 +58,7 @@
                  "<a href=\"index.php?id=$course->id\">$strchoices</a> -> ".format_string($choice->name), "", "", true,
                   update_module_button($cm->id, $course->id, $strchoice), navmenu($course, $cm));
                                                       
-    if (has_capability('mod/choice:readresponses', $context->id)) {
-    //if (isteacher($course->id)) {
+    if (has_capability('mod/choice:readresponses', $context)) {
         choice_show_reportlink($choice, $course->id, $cm->id);
     } else if (!$cm->visible) {
         notice(get_string("activityiscurrentlyhidden"));
index 34a883759d52097234510d72400e53cdaef19d70..eafcf2e2e50609845f386de7e018d7b45b318a19 100755 (executable)
@@ -37,7 +37,7 @@
         if ($comment->recordid != $record->id) { 
             error('Comment ID is misconfigured');
         }
-        if (!has_capability('mod/data:managecomments', $context->id) && $comment->userid != $USER->id) { 
+        if (!has_capability('mod/data:managecomments', $context) && $comment->userid != $USER->id) { 
             error('Comment is not yours to edit!');
         }
     }
index b129a749a290519565382bebb6c5f294f6a25d9e..7490b25f8f01bb019c2dc0265296b1f00eef0504 100755 (executable)
@@ -66,7 +66,7 @@
     require_course_login($course, true, $cm);
 
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/data:managetemplates', $context->id, true);
+    require_capability('mod/data:managetemplates', $context);
 
 
     if (!isteacheredit($course->id)){
index 2c7e922fa73f891b7230ced85bd4261fba659038..a82ca3c356ab34d8767cbb0460fcc42b66ec1a81 100755 (executable)
@@ -58,9 +58,9 @@
     }
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/data:uploadentries', $context->id, true);
+    require_capability('mod/data:uploadentries', $context);
     
-    if (has_capability('mod/data:managetemplates', $context->id)) {
+    if (has_capability('mod/data:managetemplates', $context)) {
         if (!count_records('data_fields','dataid',$data->id)) {      // Brand new database!
             redirect($CFG->wwwroot.'/mod/data/field.php?d='.$data->id);  // Redirect to field entry
         }
index b0b827a94ee31b4002f80555a52e0f559e0aacad..49d8836936b7dc122aa1887ef84711375e695897 100755 (executable)
@@ -556,7 +556,7 @@ function data_add_record($data, $groupid=0){
     $record->dataid = $data->id;
     $record->groupid = $groupid;
     $record->timecreated = $record->timemodified = time();
-    if (has_capability('mod/data:approve', $context->id)) {
+    if (has_capability('mod/data:approve', $context)) {
     //if (isteacher($data->course)) {
         $record->approved = 1;
     } else {
@@ -879,7 +879,7 @@ function data_print_template($template, $records, $data, $search='',$page=0, $re
     /// Replacing special tags (##Edit##, ##Delete##, ##More##)
         $patterns[]='/\#\#Edit\#\#/i';
         $patterns[]='/\#\#Delete\#\#/i';
-        if (has_capability('mod/data:manageentries', $context->id) or data_isowner($record->id)) {
+        if (has_capability('mod/data:manageentries', $context) or data_isowner($record->id)) {
             $replacement[] = '<a href="'.$CFG->wwwroot.'/mod/data/edit.php?d='
                              .$data->id.'&amp;rid='.$record->id.'&amp;sesskey='.sesskey().'"><img src="'.$CFG->pixpath.'/t/edit.gif" height="11" width="11" border="0" alt="'.get_string('edit').'" /></a>';
             $replacement[] = '<a href="'.$CFG->wwwroot.'/mod/data/view.php?d='
@@ -899,7 +899,7 @@ function data_print_template($template, $records, $data, $search='',$page=0, $re
                                '&amp;course='.$data->course.'">'.fullname($record).'</a>';
 
         $patterns[]='/\#\#Approve\#\#/i';
-        if (has_capability('mod/data:approve', $context->id) && ($data->approval) && (!$record->approved)){
+        if (has_capability('mod/data:approve', $context) && ($data->approval) && (!$record->approved)){
             $replacement[] = '<a href="'.$CFG->wwwroot.'/mod/data/view.php?d='.$data->id.'&amp;approve='.$record->id.'&amp;sesskey='.sesskey().'"><img src="'.$CFG->pixpath.'/i/approve.gif" height="11" width="11" border="0" alt="'.get_string('approve').'" /></a>';
         } else {
             $replacement[] = '';
@@ -998,15 +998,15 @@ function data_print_ratings($data, $record) {
     if ($data->ratings and !empty($USER->id)) {
         if ($ratings->scale = make_grades_menu($data->scale)) {
             $ratings->assesspublic = $data->assesspublic;
-            $ratings->allow = ($data->assessed != 2 or has_capability('mod/data:rate', $context->id));
+            $ratings->allow = ($data->assessed != 2 or has_capability('mod/data:rate', $context));
             if ($ratings->allow) {
                 echo '<div class="ratings" align="center">';
                 echo '<form name="form" method="post" action="rate.php">';
                 $useratings = true;
 
                 if ($useratings) {
-                    if ((has_capability('mod/data:rate', $context->id) or $ratings->assesspublic) and !data_isowner($record->id)) {
-                        data_print_ratings_mean($record->id, $ratings->scale, has_capability('mod/data:rate', $context->id));
+                    if ((has_capability('mod/data:rate', $context) or $ratings->assesspublic) and !data_isowner($record->id)) {
+                        data_print_ratings_mean($record->id, $ratings->scale, has_capability('mod/data:rate', $context));
                         if (!empty($ratings->allow)) {
                             echo '&nbsp;';
                             data_print_rating_menu($record->id, $USER->id, $ratings->scale);
@@ -1205,7 +1205,7 @@ function data_print_comment($data, $comment, $page=0) {
 /// Commands
 
     echo '<div class="commands">';
-    if (data_isowner($comment->recordid) or has_capability('mod/data:managecomments', $context->id)) {
+    if (data_isowner($comment->recordid) or has_capability('mod/data:managecomments', $context)) {
             echo '<a href="'.$CFG->wwwroot.'/mod/data/comment.php?rid='.$comment->recordid.'&amp;mode=edit&amp;commentid='.$comment->id.'&amp;page='.$page.'">'.$stredit.'</a>';
             echo '| <a href="'.$CFG->wwwroot.'/mod/data/comment.php?rid='.$comment->recordid.'&amp;mode=delete&amp;commentid='.$comment->id.'&amp;page='.$page.'">'.$strdelete.'</a>';
     }
index 82e5e8c02c4838c5769996838ab6ed0c9130067f..ba57d4cb1c6b6057fb39ef78c1c54609f0233852 100755 (executable)
 
     //if (isloggedin() and !isguest()) {
     if (isloggedin()) {
-        if (has_capability('mod/data:writeentry', $context->id)) { // took out participation list here!
+        if (has_capability('mod/data:writeentry', $context)) { // took out participation list here!
             $addstring = empty($editentry) ? get_string('add', 'data') : get_string('editentry', 'data');
             $row[] = new tabobject('add', $CFG->wwwroot.'/mod/data/edit.php?d='.$data->id, $addstring, '', true);
         }
-        if (has_capability('mod/data:managetemplates', $context->id)) {
+        if (has_capability('mod/data:managetemplates', $context)) {
             if ($currenttab == 'list') {
                 $defaultemplate = 'listtemplate';
             } else if ($currenttab == 'add') {
index 4931b7e1a319a10b4897373c777ce152555c7cae..dd32238e0c37260ecbf198631833598140d7712f 100755 (executable)
 
     require_course_login($course, true, $cm);
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/data:managetemplates', $context->id, true);
-/*  
-    if (!isteacheredit($course->id)){
-        error(get_string('noaccess','data'));
-    }
-    
-    if (isteacher($course->id)) {
-        if (!count_records('data_fields','dataid',$data->id)) {      // Brand new database!
-            redirect($CFG->wwwroot.'/mod/data/field.php?d='.$data->id);  // Redirect to field entry
-        }
+    require_capability('mod/data:managetemplates', $context);
+
+    if (!count_records('data_fields','dataid',$data->id)) {      // Brand new database!
+        redirect($CFG->wwwroot.'/mod/data/field.php?d='.$data->id);  // Redirect to field entry
     }
-*/
-    //add_to_log($course->id, 'data', 'templates view', "templates.php?id=$cm->id&amp;d=$data->id", $data->id, $cm->id);
+
+    add_to_log($course->id, 'data', 'templates view', "templates.php?id=$cm->id&amp;d=$data->id", $data->id, $cm->id);
 
 
 /// Print the page header
index 10dd24cf2605969bbe0551234d307f3bddc5d636..f20975df026fdb549ee2c9d4fcae6eab26efa5e7 100755 (executable)
     require_course_login($course, true, $cm);
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/data:readentry', $context->id, true);
+    require_capability('mod/data:readentry', $context);
 
 /// If it's hidden then it's don't show anything.  :)
-    if (empty($cm->visible) and !has_capability('mod/data:managetemplates', $context->id)) {
+    if (empty($cm->visible) and !has_capability('mod/data:managetemplates', $context)) {
         $strdatabases = get_string("modulenameplural", "data");
         $navigation = "<a href=\"index.php?id=$course->id\">$strdatabases</a> ->";
         print_header_simple(format_string($data->name), "",
@@ -96,7 +96,7 @@
     }
 
 /// If we have an empty Database then redirect because this page is useless without data
-    if (has_capability('mod/data:managetemplates', $context->id)) {
+    if (has_capability('mod/data:managetemplates', $context)) {
         if (!record_exists('data_fields','dataid',$data->id)) {      // Brand new database!
             redirect($CFG->wwwroot.'/mod/data/field.php?d='.$data->id);  // Redirect to field entry
         }
 
 /// Delete any requested records
 
-    if ($delete && confirm_sesskey() && (has_capability('mod/data:manageentries', $context->id) or data_isowner($delete))) {
+    if ($delete && confirm_sesskey() && (has_capability('mod/data:manageentries', $context) or data_isowner($delete))) {
         if ($confirm = optional_param('confirm',0,PARAM_INT)) {
             if ($deleterecord = get_record('data_records', 'id', $delete)) {   // Need to check this is valid
                 if ($deleterecord->dataid == $data->id) {                       // Must be from this database
 
 /// Approve any requested records
 
-    if ($approve && confirm_sesskey() && has_capability('mod/data:approve', $context->id)) {
+    if ($approve && confirm_sesskey() && has_capability('mod/data:approve', $context)) {
         if ($approverecord = get_record('data_records', 'id', $approve)) {   // Need to check this is valid
             if ($approverecord->dataid == $data->id) {                       // Must be from this database
                 $newrecord->id = $approverecord->id;
     }
 
 // If not teacher, check whether user has sufficient records to view
-    if (!has_capability('mod/data:managetemplates', $context->id) and data_numentries($data) < $data->requiredentriestoview){
+    if (!has_capability('mod/data:managetemplates', $context) and data_numentries($data) < $data->requiredentriestoview){
         notify (($data->requiredentriestoview - data_numentries($data)).'&nbsp;'.get_string('insufficiententries','data'));
         echo '</td></tr></table>';
         print_footer($course);
 
 /// We need to examine the whole dataset to produce the correct paging
 
-    if ((!has_capability('mod/data:managetemplates', $context->id)) && ($data->approval)) {
+    if ((!has_capability('mod/data:managetemplates', $context)) && ($data->approval)) {
         if (isloggedin()) {
             $approveselect = ' AND (r.approved=1 OR r.userid='.$USER->id.') ';
         } else {
 
     if (empty($records)) {     // Nothing to show!
         if ($record) {         // Something was requested so try to show that at least (bug 5132)
-            if (has_capability('mod/data:manageentries', $context->id) || empty($data->approval) || 
+            if (has_capability('mod/data:manageentries', $context) || empty($data->approval) || 
                      $record->approved || (isloggedin() && $record->userid == $USER->id)) {
                 if (!$currentgroup || $record->groupid == $currentgroup || $record->groupid == 0) {
                     $records[] = $record;
index 27fae0061820abcc9f68e62fedb27a4300bd4ea3..c6fcc604c67104428be23367f1a766b22a5f03b8 100644 (file)
@@ -73,7 +73,7 @@
     /******************* admin amend Grading Grade ************************************/
     if ($action == 'adminamendgradinggrade' ) {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         if (empty($aid)) {
     /******************* admin confirm delete ************************************/
     elseif ($action == 'adminconfirmdelete' ) {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         if (empty($aid)) {
     /******************* admin delete ************************************/
     elseif ($action == 'admindelete' ) {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         if (empty($aid)) {
     /*********************** admin list of asssessments (of a submission) (by teachers)**************/
     elseif ($action == 'adminlist') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** admin list of asssessments by a student (used by teachers only )******************/
     elseif ($action == 'adminlistbystudent') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** edit assessment elements (for teachers) ***********************/
     elseif ($action == 'editelements') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** insert/update assignment elements (for teachers)***********************/
     elseif ($action == 'insertelements') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** list assessments for grading (Student submissions)(by teachers)*********************/
     elseif ($action == 'listungradedstudentsubmissions') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         exercise_list_ungraded_assessments($exercise, "student");
     ******************Teacher's submissions) (by teachers)****/
     elseif ($action == 'listungradedstudentassessments') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         exercise_list_ungraded_assessments($exercise, "teacher");
     /******************* regrade student assessments ************************************/
     elseif ($action == 'regradestudentassessments' ) {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
         // get all the student assessments
     /****************** teacher assessment : grading of assessment and submission (from student) ************/
     elseif ($action == 'teacherassessment') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** teacher table : show assessments by exercise and teacher ************/
     elseif ($action == 'teachertable') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
         }
 
         // is user allowed to resubmit?
-        if (has_capability('mod/exercise:assess', $context->id)) {
+        if (has_capability('mod/exercise:assess', $context)) {
             if (!$submission = get_record("exercise_submissions", "id", $assessment->submissionid)) {
                 error ("Updateassessment: submission record not found");
             }
     /****************** update teacher assessment (by teacher only) ***************************/
     elseif ($action == 'updateteacherassessment') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
         }
 
     /****************** update grading grade(by teacher) ***************************/
     elseif ($action == 'updategradinggrade') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
+        if (!has_capability('mod/exercise:assess', $context)) {
             error("Only teachers can look at this page");
             }
 
index e10dbbab929ea15b372023c28bf9add0bdea6734..e24c954b7a20aff1ef17618997723cab53799536 100644 (file)
     /****************** submission of assignment by teacher only***********************/
     elseif ($action == 'submitassignment') {
 
-        if (!has_capability('mod/exercise:assess', $context->id)) {
-            //error("Only teachers with editing permissions can do this.");
+        if (!has_capability('mod/exercise:assess', $context)) {
+            error("Only teachers with editing permissions can do this.");
         }
 
         exercise_print_assignment_info($exercise);
index 0846ca14685147155b86175a1eef68270e5adeee..a08e5fa18ff85c4cae6883bd5e3cf8d0228e8fe0 100644 (file)
@@ -29,7 +29,7 @@
         error('Course Module ID was incorrect');
     }
     $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
-    $canviewdiscussion = has_capability('mod/forum:viewdiscussion', $modcontext->id);
+    $canviewdiscussion = has_capability('mod/forum:viewdiscussion', $modcontext);
     
     
     if ($forum->type == "news") {
@@ -48,7 +48,7 @@
 
 
     if (!empty($move)) {
-        if (has_capability('mod/forum:movediscussions', $modcontext->id)) {
+        if (has_capability('mod/forum:movediscussions', $modcontext)) {
             error("You do not have the permission to move this discussion!");
         }
         if ($forum = get_record("forum", "id", $move)) {
 
                                        
     
-    if ($groupmode and !has_capability('moodle/site:accessallgroups', $modcontext->id)) {   // Groups must be kept separate
+    if ($groupmode and !has_capability('moodle/site:accessallgroups', $modcontext)) {   // Groups must be kept separate
         //change this to ismember
         $mygroupid = mygroupid($course->id); //only useful if 0, otherwise it's an array now
         if ($groupmode == SEPARATEGROUPS) {
         } else if ($groupmode == VISIBLEGROUPS) {
             $canreply = ( (empty($mygroupid) && $discussion->groupid == -1) ||
                     (ismember($discussion->groupid) || $mygroupid == $discussion->groupid) &&
-                    has_capability('mod/forum:replypost', $modcontext->id) );
+                    has_capability('mod/forum:replypost', $modcontext) );
         }
     }
 
 
     echo '<table width="100%"><tr><td width="33%">';
 
-    if ($groupmode == VISIBLEGROUPS or ($groupmode and has_capability('moodle/site:accessallgroups', $modcontext->id))) {
+    if ($groupmode == VISIBLEGROUPS or ($groupmode and has_capability('moodle/site:accessallgroups', $modcontext))) {
         if ($groups = get_records_menu('groups', 'courseid', $course->id, 'name ASC', 'id,name')) {
             print_group_menu($groups, $groupmode, $discussion->groupid, "view.php?id=$cm->id&amp;group=");
         }
     forum_print_mode_form($discussion->id, $displaymode);
 
     echo "</td><td width=\"33%\">";
-    if (has_capability('mod/forum:movediscussions', $modcontext->id)) { // Popup menu to move discussions to other forums
+    if (has_capability('mod/forum:movediscussions', $modcontext)) { // Popup menu to move discussions to other forums
         if ($forums = get_all_instances_in_course("forum", $course)) {
             if ($course->format == 'weeks') {
                 $strsection = get_string("week");
         notify(get_string('thisforumisthrottled','forum',$a));
     }
 
-    if ($forum->type == 'qanda' && !has_capability('mod/forum:viewqandawithoutposting', $modcontext->id) &&
+    if ($forum->type == 'qanda' && !has_capability('mod/forum:viewqandawithoutposting', $modcontext) &&
                 !forum_user_has_posted($forum->id,$discussion->id,$USER->id)) {
         notify(get_string('qandanotify','forum'));
     }
     }
 
 /// Print the actual discussion
-    $canrate = has_capability('mod/forum:rate', $modcontext->id);
+    $canrate = has_capability('mod/forum:rate', $modcontext);
     forum_print_discussion($course, $forum, $discussion, $post, $displaymode, $canreply, $canrate);
 
     print_footer($course);
 
-?>
\ No newline at end of file
+?>
index aa6a0834e7baedb426b41bb1310e3650f1b12f66..c62d400577478637c6eea5343bc301c4ef1a5bb3 100644 (file)
@@ -93,7 +93,7 @@
                 $forum->visible = instance_is_visible("forum", $forum);
                 $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id);
                 $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-                if (!$forum->visible and !has_capability('moodle/course:viewhiddenactivities', $context->id)) {
+                if (!$forum->visible and !has_capability('moodle/course:viewhiddenactivities', $context)) {
                     if (isset($forum->keyreference)) {
                         unset($learningforums[$forum->keyreference]);
                     }
 
 
             // this is potentially wrong logic. could possibly check for if user has the right to hmmm
-            if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context->id)) {
+            if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) {
                 $count = count_records_select("forum_discussions", "forum = '$forum->id' AND (groupid = '$currentgroup' OR groupid = '-1')");
             } else {
                 $count = count_records("forum_discussions", "forum", "$forum->id");
 
             if ($usetracking) {
                 if (($forum->trackingtype == FORUM_TRACKING_ON) || !isset($untracked[$forum->id])) {
-                    $groupid = ($groupmode==SEPARATEGROUPS && !has_capability('moodle/site:accessallgroups', $context->id)) ? $currentgroup : false;
+                    $groupid = ($groupmode==SEPARATEGROUPS && !has_capability('moodle/site:accessallgroups', $context)) ? $currentgroup : false;
                     $unread = forum_tp_count_forum_unread_posts($USER->id, $forum->id, $groupid);
                     if ($unread > 0) {
                         $unreadlink = '<span class="unread"><a href="view.php?f='.$forum->id.'">'.$unread.'</a>';
                 if (forum_is_forcesubscribed($forum->id)) {
                     $sublink = $stryes;
                 } else {
-                    if ($groupmode and !has_capability('moodle/site:accessallgroups', $context->id) and !mygroupid($course->id)) {
+                    if ($groupmode and !has_capability('moodle/site:accessallgroups', $context) and !mygroupid($course->id)) {
                         $sublink = $strno;   // Can't subscribe to a group forum (not in a group)
                         $forumlink = format_string($forum->name,true);
                     } else {
                 $forum->visible = instance_is_visible("forum", $forum);
                 $cm = get_coursemodule_from_instance("forum", $forum->id, $course->id);
  
-                if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context->id)) {
+                if ($groupmode == SEPARATEGROUPS and !has_capability('moodle/site:accessallgroups', $context)) {
                     $count = count_records("forum_discussions", "forum", "$forum->id", "groupid", $currentgroup);
                 } else {
                     $count = count_records("forum_discussions", "forum", "$forum->id");
index 71880026e907ab2d34fb56560cd504926d72365a..265d9d9db4023164af59f9e43fea881e71e9eb45 100644 (file)
@@ -331,7 +331,7 @@ function forum_cron() {
                     if ($groupmode) {    // Look for a reason not to send this email
                         
                         if (!has_capability('moodle/site:accessallgroups',
-                                        $modcontext->id, false, $userto->id)) {
+                                        $modcontext, false, $userto->id)) {
                             if (!empty($group->id)) {
                                 if (!ismember($group->id, $userto->id)) {
                                     continue;
@@ -636,7 +636,7 @@ function forum_make_mail_text($course, $forum, $discussion, $post, $userfrom, $u
         error('Course Module ID was incorrect');
     }
     $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
-    $viewfullnames = has_capability('mod/site:viewfullnames', $modcontext->id);
+    $viewfullnames = has_capability('mod/site:viewfullnames', $modcontext);
     
     $by = New stdClass;
     $by->name = fullname($userfrom, $viewfullnames);
@@ -1134,7 +1134,7 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50
     $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);  // Will need to fix this.
     
     // Take into account forum visibility.
-    if (has_capability('moodle/course:viewhiddenactivities', $coursecontext->id)) {
+    if (has_capability('moodle/course:viewhiddenactivities', $coursecontext)) {
         $onlyvisible = '';
         $onlyvisibletable = '';
     } else {
@@ -1147,7 +1147,7 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50
     }
     
     // Take into account user groups.
-    if (has_capability('moodle/site:accessallgroups', $modcontext->id)) {
+    if (has_capability('moodle/site:accessallgroups', $modcontext)) {
         $selectgroup = '';
         $coursetable = '';
         
@@ -1459,7 +1459,7 @@ function forum_get_discussions($forum="0", $forumsort="d.timemodified DESC",
         }
         $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
         
-        if (!has_capability('mod/forum:viewhiddentimedposts', $modcontext->id)) {
+        if (!has_capability('mod/forum:viewhiddentimedposts', $modcontext)) {
             $now = time();
             $timelimit = " AND ((d.timestart = 0 OR d.timestart <= '$now') AND (d.timeend = 0 OR d.timeend > '$now')";
             if (!empty($USER->id)) {
@@ -1712,7 +1712,7 @@ function forum_make_mail_post(&$post, $user, $touser, $course,
     }
     $output .= '<div class="subject">'.format_string($post->subject).'</div>';
 
-    $fullname = fullname($user, has_capability('moodle/site:viewfullnames', $modcontext->id));
+    $fullname = fullname($user, has_capability('moodle/site:viewfullnames', $modcontext));
     $by->name = '<a href="'.$CFG->wwwroot.'/user/view.php?id='.$user->id.'&amp;course='.$course->id.'">'.$fullname.'</a>';
     $by->date = userdate($post->modified, '', $touser->timezone);
     $output .= '<div class="author">'.get_string('bynameondate', 'forum', $by).'</div>';
@@ -2798,14 +2798,14 @@ function forum_user_can_post_discussion($forum, $currentgroup=false, $groupmode=
     }
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
-    if (!has_capability('mod/forum:startdiscussion', $context->id)) {
+    if (!has_capability('mod/forum:startdiscussion', $context)) {
         return false;
     }
 
     if ($forum->type == "eachuser") {
         return (!forum_user_has_posted_discussion($forum->id, $USER->id));
     } else if ($currentgroup) {
-        return (has_capability('moodle/site:accessallgroups', $context->id)
+        return (has_capability('moodle/site:accessallgroups', $context)
                 or (ismember($currentgroup) and $forum->open == 2));
     } else {
         //else it might be group 0 in visible mode
@@ -2838,9 +2838,9 @@ function forum_user_can_post($forum, $user=NULL) {
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
     if (isset($user)) {
-        $canreply = has_capability('mod/forum:replypost', $context->id, false, $user->id);
+        $canreply = has_capability('mod/forum:replypost', $context, false, $user->id);
     } else {
-        $canreply = has_capability('mod/forum:replypost', $context->id, false);
+        $canreply = has_capability('mod/forum:replypost', $context, false);
     }
 
     return $canreply;
@@ -2857,12 +2857,12 @@ function forum_user_can_view_post($post, $course, $cm, $forum, $discussion, $use
     }
     
     $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
-    if (!has_capability('mod/forum:viewdiscussion', $modcontext->id)) {
+    if (!has_capability('mod/forum:viewdiscussion', $modcontext)) {
         return false;
     }
     
     $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
-    if (!has_capability('moodle/course:view', $coursecontext->id)) {
+    if (!has_capability('moodle/course:view', $coursecontext)) {
         return false;
     }
 
@@ -2870,7 +2870,7 @@ function forum_user_can_view_post($post, $course, $cm, $forum, $discussion, $use
     if ($discussion->groupid > 0) {
         if ($cm->groupmode == SEPARATEGROUPS) {
             return ismember($discussion->groupid) ||
-                    has_capability('moodle/site:accessallgroups', $modcontext->id);
+                    has_capability('moodle/site:accessallgroups', $modcontext);
         }
     }
     return true;
@@ -2942,7 +2942,7 @@ function forum_user_can_see_post($forum, $discussion, $post, $user=NULL) {
         $user = $USER;
     }
 
-    if (!has_capability('mod/forum:viewdiscussion', $context->id, false, $user->id)) {
+    if (!has_capability('mod/forum:viewdiscussion', $context, false, $user->id)) {
         return false;
     }
     
@@ -2951,7 +2951,7 @@ function forum_user_can_see_post($forum, $discussion, $post, $user=NULL) {
         
         return (forum_user_has_posted($forum->id,$discussion->id,$user->id) ||
                 $firstpost->id == $post->id ||
-                has_capability('mod/forum:viewqandawithoutposting', $context->id, false, $user->id));
+                has_capability('mod/forum:viewqandawithoutposting', $context, false, $user->id));
     }
     return true;
 }
@@ -3009,7 +3009,7 @@ function forum_print_latest_discussions($course, $forum, $maxdiscussions=5, $dis
     }
 
     if (!$currentgroup and ($groupmode != SEPARATEGROUPS or 
-                has_capability('moodle/site:accessallgroups', $context->id)) ) {
+                has_capability('moodle/site:accessallgroups', $context)) ) {
         $visiblegroups = -1;
     } else {
         $visiblegroups = $currentgroup;
@@ -3334,7 +3334,7 @@ function forum_print_posts_threaded($parent, $courseid, $depth, $ratings, $reply
             error('Course Module ID was incorrect');
         }
         $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
-        $canviewfullnames = has_capability('mod/site:viewfullnames', $modcontext->id);
+        $canviewfullnames = has_capability('mod/site:viewfullnames', $modcontext);
         
         foreach ($posts as $post) {
 
@@ -3454,7 +3454,7 @@ function forum_get_recent_mod_activity(&$activities, &$index, $sincetime, $cours
     foreach ($posts as $post) {
         
         $modcontext = get_context_instance(CONTEXT_MODULE, $post->cmid);
-        $canviewallgroups = has_capability('moodle/site:accessallgroups', $modcontext->id);
+        $canviewallgroups = has_capability('moodle/site:accessallgroups', $modcontext);
         
         if ($groupid and ($post->groupid != -1 and $groupid != $post->groupid and !$canviewallgroups)) {
             continue;
@@ -4063,7 +4063,7 @@ function forum_check_throttling($forum) {
         error('Course Module ID was incorrect');
     }
     $modcontext = get_context_instance(CONTEXT_MODULE, $cm->id);
-    if(!has_capability('mod/forum:throttlingapplies', $modcontext->id)) {
+    if(!has_capability('mod/forum:throttlingapplies', $modcontext)) {
         return true;
     }
 
index 6fbee8d79e27f00728d497635ac02b5357090f92..06d3d1e6abcb1709826867a911bdaf421f359e24 100644 (file)
@@ -65,7 +65,7 @@ if (!isset($discussion->timeend)) {
        if (forum_is_forcesubscribed($forum->id)) {
            print_string("everyoneissubscribed", "forum");
        } else if ($forum->forcesubscribe != FORUM_DISALLOWSUBSCRIBE ||
-                    has_capability('moodle/course:manageactivities', $coursecontext->id)){
+                    has_capability('moodle/course:manageactivities', $coursecontext)){
            unset($options);
            if (forum_is_subscribed($USER->id, $post->forum)) {
                $options[0] = get_string("subscribestart", "forum");
@@ -109,7 +109,7 @@ if (!isset($discussion->timeend)) {
 
 
 <?php
-    if (has_capability('moodle/course:manageactivities', $coursecontext->id)
+    if (has_capability('moodle/course:manageactivities', $coursecontext)
             && empty($post->id)) {
 ?>
 
index 283f10d602c8c9f072d5b4ab8a8f97d936284645..487272b5f1a372ca11a30ccfd28c137db784ab96 100644 (file)
                 $realpost->userid = -1;
             }
 
-            if ( !(($realpost->userid == $USER->id && has_capability('mod/forum:replypost', $modcontext->id)) ||
-                        has_capability('mod/forum:editanypost', $modcontext->id)) ) {
+            if ( !(($realpost->userid == $USER->id && has_capability('mod/forum:replypost', $modcontext)) ||
+                        has_capability('mod/forum:editanypost', $modcontext)) ) {
                 error("You can not update this post");
             }
 
         }
 
         if ($cm = get_coursemodule_from_instance("forum", $forum->id, $course->id)) {
-            if (!$cm->visible and !has_capability('moodle/course:manageactivities', $coursecontext->id)) {
+            if (!$cm->visible and !has_capability('moodle/course:manageactivities', $coursecontext)) {
                 error(get_string("activityiscurrentlyhidden"));
             }
         }
                     error("Sorry, but you can not post in this discussion.");
                 }
             }
-            if (!$cm->visible and !has_capability('moodle/course:manageactivities', $coursecontext->id)) {
+            if (!$cm->visible and !has_capability('moodle/course:manageactivities', $coursecontext)) {
                 error(get_string("activityiscurrentlyhidden"));
             }
         }
             error("Post ID was incorrect");
         }
         if (($post->userid <> $USER->id) and
-                    !has_capability('mod/forum:editanypost', $modcontext->id)) {
+                    !has_capability('mod/forum:editanypost', $modcontext)) {
             error("You can't edit other people's posts!");
         }
         if ($post->parent) {
         }
         if (!($forum->type == 'news' && !$post->parent && $discussion->timestart > time())) {
             if (((time() - $post->created) > $CFG->maxeditingtime) and
-                        !has_capability('mod/forum:editanypost', $modcontext->id)) {
+                        !has_capability('mod/forum:editanypost', $modcontext)) {
                 error( get_string("maxtimehaspassed", "forum", format_time($CFG->maxeditingtime)) );
             }
         }
         if (! $forum = get_record("forum", "id", $discussion->forum)) {
             error("The forum number was incorrect ($discussion->forum)");
         }
-        if ( !(($post->userid == $USER->id && has_capability('mod/forum:deleteownpost', $modcontext->id))
-                    || has_capability('mod/forum:deleteanypost', $modcontext->id)) ) {
+        if ( !(($post->userid == $USER->id && has_capability('mod/forum:deleteownpost', $modcontext))
+                    || has_capability('mod/forum:deleteanypost', $modcontext)) ) {
             error("You can't delete this post!");
         }
         if (!empty($forum->course)) {
                 notice(get_string("couldnotdeleteratings", "forum"),
                         forum_go_back_to("discuss.php?d=$post->discussion"));
 
-            } else if ($replycount && !has_capability('mod/forum:deleteanypost', $modcontext->id)) {
+            } else if ($replycount && !has_capability('mod/forum:deleteanypost', $modcontext)) {
                 error(get_string("couldnotdeletereplies", "forum"),
                         forum_go_back_to("discuss.php?d=$post->discussion"));
 
                     redirect("view.php?f=$discussion->forum",
                              get_string("deleteddiscussion", "forum"), 1);
 
-                } else if (forum_delete_post($post, has_capability('mod/forum:deleteanypost', $modcontext->id))) {
+                } else if (forum_delete_post($post, has_capability('mod/forum:deleteanypost', $modcontext))) {
 
                     add_to_log($discussion->course, "forum", "delete post",
                                "discuss.php?d=$post->discussion", "$post->id", $cm->id);
             forum_set_return();
 
             if ($replycount) {
-                if (!has_capability('mof/forum:deleteanypost', $modcontext->id)) {
+                if (!has_capability('mof/forum:deleteanypost', $modcontext)) {
                     error(get_string("couldnotdeletereplies", "forum"),
                           forum_go_back_to("discuss.php?d=$post->discussion"));
                 }
         if (!$forum = get_record("forum", "id", $discussion->forum)) {
             error("The forum number was incorrect ($discussion->forum)");
         }
-        if (!has_capability('mod/forum:splitdiscussions', $modcontext->id)) {
+        if (!has_capability('mod/forum:splitdiscussions', $modcontext)) {
             error("You can't split discussions!");
         }
         if (!$post->parent) {
         error("You cannot start a new discussion in this forum");
     }
 
-    if ($forum->type == 'qanda' && !has_capability('mod/forum:viewqandawithoutposting', $modcontext->id) &&
+    if ($forum->type == 'qanda' && !has_capability('mod/forum:viewqandawithoutposting', $modcontext) &&
                 !forum_user_has_posted($forum->id,$discussion->id,$USER->id)) {
         notify(get_string('qandanotify','forum'));
     }
             } else {
                 $user_read_array = array();
             }
-            if ($forum->type != 'qanda' || forum_user_can_see_discussion($forum, $discussion, $modcontext->id)) {
+            if ($forum->type != 'qanda' || forum_user_can_see_discussion($forum, $discussion, $modcontext)) {
                 forum_print_posts_threaded($parent->id, $course->id, 0, false, false, $user_read_array, $discussion->forum);
             }
         }
index 0bdf2c76d18a238729408c6db929e4ab9b68e76a..1fcf1058c1b074b121348d1fb578115f58a41900 100644 (file)
@@ -16,7 +16,7 @@
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    if (!has_capability('mod/forum:ratepost', $context->id)) {
+    if (!has_capability('mod/forum:ratepost', $context)) {
         error('You do not have the permission to rate this post');
     }
     
@@ -82,4 +82,4 @@
         error("This page was not accessed correctly");
     }
 
-?>
\ No newline at end of file
+?>
index 64b03e177ce448aec85fa0372c7416510d8465cb..f889b553073c94922e730841f48565a8d31211e9 100644 (file)
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    if (!has_capability('mod/forum:viewrating', $context->id)) {
+    if (!has_capability('mod/forum:viewrating', $context)) {
         error('You do not have the capability to view post ratings');
     }
-    if (!has_capability('mod/forum:viewanyrating', $context->id) and $USER->id != $post->userid) {
+    if (!has_capability('mod/forum:viewanyrating', $context) and $USER->id != $post->userid) {
         error("You can only look at results for posts that you made");
     }
 
index 2ef75c58e0cb45958a4850bc409c361e4f692ab8..fdf4ca2d59fd9e7b419a81f78a0b6ba6337ea96f 100644 (file)
@@ -375,7 +375,7 @@ function forum_menu_list($course)  {
                 if (!isset($forum->visible)) {
                     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
                     if (!instance_is_visible("forum", $forum) &&
-                            !has_capability('moodle/course:viewhiddenactivities', $context->id)) {
+                            !has_capability('moodle/course:viewhiddenactivities', $context)) {
                         continue;
                     }
                 }
@@ -391,4 +391,4 @@ function forum_menu_list($course)  {
     return $menu;
 }
 
-?>
\ No newline at end of file
+?>
index d31219f87c7003a5ac0e7a2ed8982021146b319c..21439127a1c75b70cd632382594b85fdde4036a8 100644 (file)
@@ -21,7 +21,7 @@
         
         $context = get_context_instance(CONTEXT_MODULE, $cm->id);
         if (groupmode($course, $cm) and
-                    !has_capability('moodle/site:accessallgroups', $context->id)) {
+                    !has_capability('moodle/site:accessallgroups', $context)) {
             if (!mygroupid($course->id)) {
                 error('Sorry, but you must be a group member to subscribe.');
             }
@@ -32,7 +32,7 @@
     }
 
     if ($user) {
-        if (!has_capability('mod/forum:managesubscriptions', $context->id)) {
+        if (!has_capability('mod/forum:managesubscriptions', $context)) {
             error('You do not have the permission to subscribe/unsubscribe other people!');
         }
         if (!$user = get_record("user", "id", $user)) {
@@ -69,7 +69,7 @@
 
     $returnto = forum_go_back_to("index.php?id=$course->id");
 
-    if ($force and has_capability('mod/forum:managesubscriptions', $context->id)) {
+    if ($force and has_capability('mod/forum:managesubscriptions', $context)) {
         if (forum_is_forcesubscribed($forum->id)) {
             forum_forcesubscribe($forum->id, 0);
             redirect($returnto, get_string("everyonecanchoose", "forum"), 1);
@@ -96,7 +96,7 @@
 
     } else { // subscribe
         if ($forum->forcesubscribe == FORUM_DISALLOWSUBSCRIBE &&
-                    !has_capability('mod/forum:managesubscriptions', $context->id)) {
+                    !has_capability('mod/forum:managesubscriptions', $context)) {
             error(get_string('disallowsubscribe'),$_SERVER["HTTP_REFERER"]);
         }
         if (forum_subscribe($user->id, $forum->id) ) {
index cf09ec641c6a2c4c145a0f9152c647962624b21f..d5de7fb8b361dc0631e2983dffbd40efd0a18d78 100644 (file)
@@ -23,7 +23,7 @@
 
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
 
-    if (!has_capability('mod/forum:viewsubscribers', $context->id)) {
+    if (!has_capability('mod/forum:viewsubscribers', $context)) {
         error('You do not have the permission to view forum subscribers');
     }
 
@@ -39,7 +39,7 @@
     $navigation = "<a href=\"index.php?id=$course->id\">$strforums</a> ->
        <a href=\"view.php?f=$forum->id\">".format_string($forum->name,true)."</a> -> $strsubscribers";
 
-    if (has_capability('mod/forum:managesubscriptions', $context->id)) {
+    if (has_capability('mod/forum:managesubscriptions', $context)) {
         print_header_simple("$strsubscribers", "", "$navigation",
             "", "", true, forum_update_subscriptions_button($course->id, $id));
         if ($edit != -1) {
index b5a5ce6d4e03c7cae488916beb4228d6902cf609..43c856fb377300caeb7c207e4ee44352119dae5a 100644 (file)
@@ -99,7 +99,7 @@
             }
             
             $context = get_context_instance(CONTEXT_SYSTEM, SITEID);
-            if ($course->id == SITEID && has_capability('moodle/site:config', $context->id)) {
+            if ($course->id == SITEID && has_capability('moodle/site:config', $context)) {
                 $postcoursename = get_field('course', 'shortname', 'id', $forum->course);
                 $fullsubject = '<a href="'.$CFG->wwwroot.'/course/view.php?id='.$forum->course.'">'.$postcoursename.'</a> -> '. $fullsubject;
             }
index 123b8b0a607431b4a9c41e8681cf06fb6b615582..0519a3089818451a0b4cf987948a97709a5aa5b7 100644 (file)
@@ -64,7 +64,7 @@
 /// Check whether the should be able to view this forum.
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    if (!has_capability('mod/forum:viewforum', $context->id)) {
+    if (!has_capability('mod/forum:viewforum', $context)) {
         error('You do not have the permission to view this forum');
     }
     
@@ -78,7 +78,7 @@
     print_header_simple(format_string($forum->name), "",
                  "$navigation ".format_string($forum->name), "", "", true, $buttontext, navmenu($course, $cm));
 
-    if (empty($cm->visible) and !has_capability('moodle/course:manageactivities', $context->id)) {
+    if (empty($cm->visible) and !has_capability('moodle/course:manageactivities', $context)) {
         notice(get_string("activityiscurrentlyhidden"));
     }
 
@@ -95,7 +95,7 @@
     $currentgroup = get_and_set_current_group($course, $groupmode, $changegroup);
     
     if ($groupmode and ($currentgroup === false) and
-            !has_capability('moodle/site:accessallgroups', $context->id)) {
+            !has_capability('moodle/site:accessallgroups', $context)) {
         
         print_heading(get_string("notingroup", "forum"));
         print_footer($course);
 
     //now we need a menu for separategroups as well!
     if ($groupmode == VISIBLEGROUPS or ($groupmode and
-            has_capability('moodle/site:accessallgroups', $context->id))) {
+            has_capability('moodle/site:accessallgroups', $context))) {
         
         //the following query really needs to change
         if ($groups = get_records_menu("groups", "courseid", $course->id, "name ASC", "id,name")) {
             $strallowchoice = get_string('allowchoice', 'forum');
             helpbutton("subscription", $streveryoneissubscribed, "forum");
             echo '&nbsp;<span class="helplink">';
-            if (has_capability('moodle/course:manageactivities', $context->id)) {
+            if (has_capability('moodle/course:manageactivities', $context)) {
                 echo "<a title=\"$strallowchoice\" href=\"subscribe.php?id=$forum->id&amp;force=no\">$streveryoneissubscribed</a>";
             } else {
                 echo $streveryoneissubscribed;
 
             helpbutton("subscription", $streveryonecanchoose, "forum");
             echo '&nbsp;';
-            if (has_capability('moodle/course:manageactivities', $context->id)) {
+            if (has_capability('moodle/course:manageactivities', $context)) {
                 echo "<span class=\"helplink\"><a title=\"$strforcesubscribe\" href=\"subscribe.php?id=$forum->id&amp;force=yes\">$streveryonecanchoose</a></span>";
                 echo "<br />";
                 echo "<span class=\"helplink\"><a href=\"subscribers.php?id=$forum->id\">$strshowsubscribers</a></span>";
         notify(get_string('thisforumisthrottled','forum',$a));
     }
 
-    if ($forum->type == 'qanda' && !has_capability('moodle/course:manageactivities', $context->id)) {
+    if ($forum->type == 'qanda' && !has_capability('moodle/course:manageactivities', $context)) {
         notify(get_string('qandanotify','forum'));
     }
 
                 set_user_preference("forum_displaymode", $mode);
             }
             $displaymode = get_user_preferences("forum_displaymode", $CFG->forum_displaymode);
-            $canrate = has_capability('mod/forum:rate', $context->id);
+            $canrate = has_capability('mod/forum:rate', $context);
             forum_print_discussion($course, $forum, $discussion, $post, $displaymode, NULL, $canrate);
             break;
 
index 364886f79622e6cb167f0ae62cac57e322299c48..d95e0868d7e4e4a99551569d87fd73892a765215 100644 (file)
@@ -24,7 +24,7 @@
     require_login($course->id, false, $cm);    
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:approve', $context->id, true);
+    require_capability('mod/glossary:approve', $context);
 
     $newentry->id = $eid;
     $newentry->approved = 1;
index 365f65820dc858185030f33d5eb91c17c36130a3..bc9f098318df95d9c7d3ab162b63d16941a120e0 100644 (file)
 /// Input section
 
     if ( $action == 'delete' ) {
-        if (($comment->userid <> $USER->id) and !has_capability('mod/glossary:managecomments', $context->id)) {
+        if (($comment->userid <> $USER->id) and !has_capability('mod/glossary:managecomments', $context)) {
             error('You can\'t delete other people\'s comments!');
         }
-        if (!$glossary->allowcomments && !has_capability('mod/glossary:managecomments', $context->id)) {
+        if (!$glossary->allowcomments && !has_capability('mod/glossary:managecomments', $context)) {
                 error('You can\'t delete comments in this glossary!');
             }
         if ( $confirm ) {
             print_simple_box_end();
         }
     } else {
-        if (!$glossary->allowcomments && !has_capability('mod/glossary:comment', $context->id)) {
+        if (!$glossary->allowcomments && !has_capability('mod/glossary:comment', $context)) {
             error('You can\'t add/edit comments to this glossary!');
         }
         if ( $action == 'edit' ) {
                 $timetocheck = $comment->timemodified;
             }
             $ineditperiod = ((time() - $timetocheck <  $CFG->maxeditingtime) || $glossary->editalways);
-            if ( (!$ineditperiod || $USER->id != $comment->userid) and !has_capability('mod/glossary:comment', $context->id) and $cid) {
+            if ( (!$ineditperiod || $USER->id != $comment->userid) and !has_capability('mod/glossary:comment', $context) and $cid) {
                 if ( $USER->id != $comment->userid ) {
                     error('You can\'t edit other people\'s comments!');
                 } elseif (!$ineditperiod) {
index 176fced3bf1a825266a713fa360d44e7608edf9a..cdb31450fb3d5468ea916068d47305f1ec26a437 100644 (file)
@@ -57,7 +57,7 @@
 
     print_heading(format_string(get_string('commentson','glossary')." <b>\"$entry->concept\"</b>"));
 
-    if ($glossary->allowcomments || has_capability('mod/glossary:managecomments', $context->id)) {
+    if ($glossary->allowcomments || has_capability('mod/glossary:managecomments', $context)) {
         print_heading("<a href=\"comment.php?id=$cm->id&amp;eid=$entry->id\">$straddcomment</a> <img title=\"$straddcomment\" src=\"comment.gif\" height=\"11\" width=\"11\" border=\"0\" alt=\"\" />");
     }
 
index b66d84168bd0ddabade308e44be0e71cfd94b43c..d624f936ffa017b382c5b124f1fc5c680b5381b4 100644 (file)
@@ -39,7 +39,7 @@
         error("Glossary is incorrect");
     }
 
-    if (!has_capability('mod/glossary:manageentries', $context->id) ) {
+    if (!has_capability('mod/glossary:manageentries', $context) ) {
         error("You are not allowed to edit or delete entries");
     }
 
index 5e073954560734729432d1bce080e3ec25fdf2d0..69a82219df1046f97fc2e2c8d9626436c0cc25c1 100644 (file)
@@ -38,7 +38,7 @@ if ($CFG->dbtype == 'postgres7' ) {
         $lcase = 'lcase';
 }
 
-if (!$glossary->studentcanpost && !has_capability('mod/glossary:manageentries', $context->id)) {
+if (!$glossary->studentcanpost && !has_capability('mod/glossary:manageentries', $context)) {
     error("You can't add/edit entries to this glossary!");
 }
 if ( $confirm ) {
@@ -67,7 +67,7 @@ if ( $confirm ) {
     $newentry->timemodified = $timenow;
     $newentry->approved = 0;
     $newentry->aliases = "";
-    if ( $glossary->defaultapproval or has_capability('mod/glossary:approve', $context->id) ) {
+    if ( $glossary->defaultapproval or has_capability('mod/glossary:approve', $context) ) {
         $newentry->approved = 1;
     }
 
@@ -121,7 +121,7 @@ if ( $confirm ) {
         //Perhaps too much security? Anyway thanks to skodak (Bug 1823)
         $old = get_record('glossary_entries', 'id', $e);
         $ineditperiod = ((time() - $old->timecreated <  $CFG->maxeditingtime) || $glossary->editalways);
-        if ( (!$ineditperiod  || $USER->id != $old->userid) and !has_capability('mod/glossary:manageentries', $context->id) and $e) {
+        if ( (!$ineditperiod  || $USER->id != $old->userid) and !has_capability('mod/glossary:manageentries', $context) and $e) {
             if ( $USER->id != $old->userid ) {
                 error("You can't edit other people's entries!");
             } elseif (!$ineditperiod) {
@@ -170,7 +170,7 @@ if ( $confirm ) {
         $newentry->userid = $USER->id;
         $newentry->timecreated = $timenow;
         $newentry->sourceglossaryid = 0;
-        $newentry->teacherentry = has_capability('mod/glossary:manageentries', $context->id);
+        $newentry->teacherentry = has_capability('mod/glossary:manageentries', $context);
 
         $permissiongranted = 1;
         if ( !$glossary->allowduplicatedentries ) {
@@ -237,7 +237,7 @@ if ( $confirm ) {
         $newentry->definition = $form->definition;
         $newentry->format = $form->format;
         $newentry->timemodified = time();
-        $newentry->approved = $glossary->defaultapproval or has_capability('mod/glossary:approve', context->id);
+        $newentry->approved = $glossary->defaultapproval or has_capability('mod/glossary:approve', $context);
         $newentry->usedynalink = $form->usedynalink;
         $newentry->casesensitive = $form->casesensitive;
         $newentry->fullmatch = $form->fullmatch;
@@ -308,7 +308,7 @@ print_header_simple(format_string($glossary->name), "",
               "", true, "", navmenu($course, $cm));
 
 $ineditperiod = ((time() - $newentry->timecreated <  $CFG->maxeditingtime) || $glossary->editalways);
-if ( (!$ineditperiod  || $USER->id != $newentry->userid) and !has_capability('mod/glossary:manageentries', $context->id) and $e) {
+if ( (!$ineditperiod  || $USER->id != $newentry->userid) and !has_capability('mod/glossary:manageentries', $context) and $e) {
     if ( $USER->id != $newentry->userid ) {
         error("You can't edit other people's entries!");
     } elseif (!$ineditperiod) {
@@ -332,7 +332,7 @@ $tab = GLOSSARY_ADDENTRY_VIEW;
 include("tabs.html");
 
 if (!$e) {
-    has_capability('glossary_write', $context->id, true);  
+    require_capability('glossary_write', $context);  
 }
 
 include("edit.html");
index 94d3f478f30892a8a24154a9ad2d25fd3d583af9..e318dce28bb5c41243c57e21a632d8064b2c5a4f 100644 (file)
@@ -44,7 +44,7 @@
     require_login($course->id, false);
 
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:managecategories', $context->id, true);
+    require_capability('mod/glossary:managecategories', $context);
 
     $strglossaries   = get_string("modulenameplural", "glossary");
     $strglossary     = get_string("modulename", "glossary");
index cbe03fe5c757e27ea3f2fb020e68c43b324d274a..ce3528f0d1110496cd77e7c1639a2bf335711cf9 100644 (file)
@@ -25,7 +25,7 @@
     require_login($course->id, false);  
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:export', $context->id, true);
+    require_capability('mod/glossary:export', $context);
 
     $strglossaries = get_string("modulenameplural", "glossary");
     $strglossary = get_string("modulename", "glossary");
index 735eec4cae991ea00c5085627b76b002917a2ce9..d7f60bd22efc9ac7f909590498ae8cc673ecb2aa 100644 (file)
@@ -30,7 +30,7 @@
     }
 
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:export', $context->id, true);
+    require_capability('mod/glossary:export', $context);
 
     if (! $course = get_record('course', 'id', $cm->course)) {
         error('Course is misconfigured');
index ca3338cf6b40e88f5c1dea30b38118222498dd14..4be4cdca468a865d95713371fc64f1bd12607231 100644 (file)
     require_login($course->id, false);
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:export', $context->id, true);
+    require_capability('mod/glossary:export', $context);
     
     $filename = clean_filename(strip_tags(format_string($glossary->name,true)).'.xml');
     $content = glossary_generate_export_file($glossary,$l,$cat);
     
     send_file($content, $filename, 0, 0, true, true);
-?>
\ No newline at end of file
+?>
index ad2f018ca68e4b877ed8ee5c8ed058fd4b3c6d60..9ce562356e50c1576e664521343758235ae6a29a 100644 (file)
@@ -30,7 +30,7 @@
     require_login($course->id, false);  
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:import', $context->id, true);
+    require_capability('mod/glossary:import', $context);
 
     if ($dest != 'new' and $dest != 'current') {
         $dest = 'current';
index 0185ab0ee16249c19ee350ba67ff51aff76ad12c..a70c91de9122e509076bafcd75cb2407227cbd29 100644 (file)
@@ -753,15 +753,15 @@ function glossary_print_entry_icons($course, $cm, $glossary, $entry, $mode='',$h
     }
     $return .= glossary_print_entry_commentslink($course, $cm, $glossary, $entry,$mode,$hook,'html');
     
-    if (has_capability('mod/glossary:comment', $context->id)) {
+    if (has_capability('mod/glossary:comment', $context)) {
         $output = true;
         $return .= ' <a title="' . get_string('addcomment','glossary') . '" href="comment.php?id='.$cm->id.'&amp;eid='.$entry->id.'"><img src="comment.gif" height="11" width="11" border="0" alt="'.get_string('addcomment','glossary').'" /></a>';
     }
 
 
-    if (has_capability('mod/glossary:write', $context->id) or (!empty($USER->id) and $glossary->studentcanpost and $entry->userid == $USER->id)) {
+    if (has_capability('mod/glossary:write', $context) or (!empty($USER->id) and $glossary->studentcanpost and $entry->userid == $USER->id)) {
         // only teachers can export entries so check it out
-        if (has_capability('mod/glossary:export', $context->id) and !$ismainglossary and !$importedentry) {
+        if (has_capability('mod/glossary:export', $context) and !$ismainglossary and !$importedentry) {
             $mainglossary = get_record('glossary','mainglossary',1,'course',$course->id);
             if ( $mainglossary ) {  // if there is a main glossary defined, allow to export the current entry
                 $output = true;
@@ -779,7 +779,7 @@ function glossary_print_entry_icons($course, $cm, $glossary, $entry, $mode='',$h
         // -It isn't a imported entry (so nobody can edit a imported (from secondary to main) entry)) and
         // -The user is teacher or he is a student with time permissions (edit period or editalways defined).
         $ineditperiod = ((time() - $entry->timecreated <  $CFG->maxeditingtime) || $glossary->editalways);
-        if ( !$importedentry and (has_capability('mod/glossary:manageentries', $context->id) or ($entry->userid == $USER->id and $ineditperiod))) {
+        if ( !$importedentry and (has_capability('mod/glossary:manageentries', $context) or ($entry->userid == $USER->id and $ineditperiod))) {
             $output = true;
             $return .= " <a title=\"" . get_string("delete") . "\" href=\"deleteentry.php?id=$cm->id&amp;mode=delete&amp;entry=$entry->id&amp;prevmode=$mode&amp;hook=$hook\"><img src=\"";
             $return .= $icon;
@@ -1311,7 +1311,7 @@ function glossary_print_categories_menu($cm, $glossary, $hook, $category) {
      echo '<tr>';
 
      echo '<td align="center" width="20%">';
-     if (has_capability('mod/glossary:managecategories', $context->id)) {
+     if (has_capability('mod/glossary:managecategories', $context)) {
              $options['id'] = $cm->id;
              $options['mode'] = 'cat';
              $options['hook'] = $hook;
@@ -1542,11 +1542,11 @@ function glossary_print_comment($course, $cm, $glossary, $entry, $comment) {
     echo '<div class="icons commands">';
 
     $ineditperiod = ((time() - $comment->timemodified <  $CFG->maxeditingtime) || $glossary->editalways);
-    if ( ($glossary->allowcomments &&  $ineditperiod && $USER->id == $comment->userid)  || has_capability('mod/glossary:managecomments', $context->id)) {
+    if ( ($glossary->allowcomments &&  $ineditperiod && $USER->id == $comment->userid)  || has_capability('mod/glossary:managecomments', $context)) {
         echo "<a href=\"comment.php?id=$cm->id&amp;eid=$entry->id&amp;cid=$comment->id&amp;action=edit\"><img  
                alt=\"" . get_string("edit") . "\" src=\"$CFG->pixpath/t/edit.gif\" height=\"11\" width=\"11\" border=\"0\" /></a> ";
     }
-    if ( ($glossary->allowcomments && $USER->id == $comment->userid) || has_capability('mod/glossary:managecomments', $context->id) ) {
+    if ( ($glossary->allowcomments && $USER->id == $comment->userid) || has_capability('mod/glossary:managecomments', $context) ) {
         echo "<a href=\"comment.php?id=$cm->id&amp;eid=$entry->id&amp;cid=$comment->id&amp;action=delete\"><img  
                alt=\"" . get_string("delete") . "\" src=\"$CFG->pixpath/t/delete.gif\" height=\"11\" width=\"11\" border=\"0\" /></a>";
     }
@@ -1576,7 +1576,7 @@ function  glossary_print_entry_ratings($course, $entry, $ratings = NULL) {
             }
         }
         if ($useratings) {
-            if (has_capability('mod/glossary:viewrating', $context->id)) {
+            if (has_capability('mod/glossary:viewrating', $context)) {
                 glossary_print_ratings_mean($entry->id, $ratings->scale);
                 if ($USER->id != $entry->userid) {
                      glossary_print_rating_menu($entry->id, $USER->id, $ratings->scale);
index 8ac786f6e2b7b3d95ee4e681e8537750caf33f50..0db6a29aad36a1d844459d724304bf44d0e59c55 100644 (file)
@@ -23,7 +23,7 @@
     $cm = get_record("course_modules","module",$module->id,"instance",$entry->glossaryid);
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
     
-    if (!has_capability('mod/glossary:manageentries', $context->id) and $USER->id != $entry->userid) {
+    if (!has_capability('mod/glossary:manageentries', $context) and $USER->id != $entry->userid) {
         error("You can only look at results for your own entries");
     }
 
@@ -54,7 +54,7 @@
         echo "<th width=\"100%\" class=\"header\"><a href=\"report.php?id=$entry->id&amp;sort=rating\">$strrating</a></th>";
         echo "<th class=\"header\"><a href=\"report.php?id=$entry->id&amp;sort=time\">$strtime</a></th>";
         foreach ($ratings as $rating) {
-            if (has_capability('mod/glossary:manageentries', $context->id)) {
+            if (has_capability('mod/glossary:manageentries', $context)) {
                 echo '<tr class="teacher">';
             } else {
                 echo '<tr>';
index 6ada25b1898402b92b1a4d5e227fd2a176aaf399..e2383166de96943b880cfc96e1063e4c2257b686 100644 (file)
     $data[GLOSSARY_DATE_VIEW]->caption = get_string("dateview", "glossary");
     $data[GLOSSARY_AUTHOR_VIEW]->caption = get_string("authorview","glossary");
 
-    if (has_capability('mod/glossary:write', $context->id)) {
+    if (has_capability('mod/glossary:write', $context)) {
         $data[GLOSSARY_ADDENTRY_VIEW]->caption = get_string("addentry", "glossary");
         $data[GLOSSARY_ADDENTRY_VIEW]->link = "edit.php?id=$cm->id";
     }
-    if (has_capability('mod/glossary:import', $context->id)) {
+    if (has_capability('mod/glossary:import', $context)) {
         $data[GLOSSARY_IMPORT_VIEW]->caption = get_string("importentries", "glossary");
         $data[GLOSSARY_IMPORT_VIEW]->link = "import.php?id=$cm->id";
     }
         
-    if (has_capability('mod/glossary:export', $context->id)) {
+    if (has_capability('mod/glossary:export', $context)) {
         $data[GLOSSARY_EXPORT_VIEW]->caption = get_string("exportentries", "glossary");     
         $data[GLOSSARY_EXPORT_VIEW]->link = "export.php?id=$cm->id&amp;mode=$mode&amp;hook=$hook";
     }
@@ -39,7 +39,7 @@
     $data[GLOSSARY_CATEGORY_VIEW]->link = "view.php?id=$id&amp;mode=cat";
     $data[GLOSSARY_AUTHOR_VIEW]->link = "view.php?id=$id&amp;mode=author";
 
-    if (has_capability('mod/glossary:approve', $context->id)) {
+    if (has_capability('mod/glossary:approve', $context)) {
         $data[GLOSSARY_APPROVAL_VIEW]->caption = get_string("waitingapproval", "glossary");
         $data[GLOSSARY_APPROVAL_VIEW]->link = "";
 
index 71f27968e01376cbbe36199b40c479ab005b0aed..0034958f7af35a28e7db5c91da04ae769d6fed2f 100644 (file)
@@ -45,7 +45,7 @@
     }
 
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/glossary:view', $context->id, true); // kill the page if user can't even read
+    require_capability('mod/glossary:view', $context); // kill the page if user can't even read
 
     if ($CFG->forcelogin) {
         require_login();
                 $ratings->assesstimestart = $glossary->assesstimestart;
                 $ratings->assesstimefinish = $glossary->assesstimefinish;
             }
-            if ($glossary->assessed == 2 and !has_capability('mod/glossary:rate', $context->id)) {
+            if ($glossary->assessed == 2 and !has_capability('mod/glossary:rate', $context)) {
                 $ratings->allow = false;
             } else {
                 $ratings->allow = true;
index ace7e246780491ee60c6eab6bcf3f98241f312ed..69f717d914b415e99b8411df03423c40318acd25 100644 (file)
@@ -22,7 +22,8 @@
     require_login($course->id, false);
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    //has_capability('mod/survey:readresponses', $context->id, true);
+
+    require_capability('mod/survey:readresponses', $context);
 
     if (! $survey = get_record("survey", "id", $cm->instance)) {
         error("Survey ID was incorrect");
@@ -85,7 +86,7 @@
         echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=scales&amp;id=$id\">$strscales</a>";
         echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=questions&amp;id=$id\">$strquestions</a>";
         echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=students&amp;id=$id\">$course->students</a>";
-        if (has_capability('mod/survey:download', $context->id)) {
+        if (has_capability('mod/survey:download', $context)) {
             echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=download&amp;id=$id\">$strdownload</a>";
         }
         if (empty($action)) {
@@ -94,7 +95,7 @@
     } else {
         echo "<a href=\"report.php?action=questions&amp;id=$id\">$strquestions</a>";
         echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=students&amp;id=$id\">$course->students</a>";
-        if (has_capability('mod/survey:download', $context->id)) {
+        if (has_capability('mod/survey:download', $context)) {
             echo "&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"report.php?action=download&amp;id=$id\">$strdownload</a>";
         }
         if (empty($action)) {
          break;
 
       case "download":
-        has_capability('mod/survey:download', $context->id, true);
         print_heading($strdownload);
 
+        require_capability('mod/survey:download', $context);
+
         echo '<p align="center">'.get_string("downloadinfo", "survey").'</p>';
 
         echo '<center>';
index 9f817c2ce6af75f82a73911dcf0743254aff7b98..c5a3885a9246e478f707ba1d3933f925e4c9846c 100644 (file)
@@ -23,7 +23,7 @@
     require_login($course->id, false, $cm);
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    has_capability('mod/survey:participate', $context->id, true);
+    require_capability('mod/survey:participate', $context);
     
     if (! $survey = get_record("survey", "id", $cm->instance)) {
         error("Survey ID was incorrect");
index 43d2633f35731472d74b87fb2c03b3bb4b32663b..cd0c93b58d0434afd233faa2ea6ea5039ae901db 100644 (file)
@@ -16,7 +16,8 @@
     require_login($course->id, false, $cm);
     
     $context = get_context_instance(CONTEXT_MODULE, $cm->id);
-    //has_capability('mod/survey:participate', $context->id, true);
+
+    require_capability('mod/survey:participate', $context);
 
     if (! $survey = get_record("survey", "id", $cm->instance)) {
         error("Survey ID was incorrect");
         $currentgroup = 0;
     }
 
-    //if (isteacheredit($course->id) or ($groupmode == VISIBLEGROUPS)) {
-    if (has_capability('mod/survey:readresponses', $context->id) or ($groupmode == VISIBLEGROUPS)) {    
+    if (has_capability('mod/survey:readresponses', $context) or ($groupmode == VISIBLEGROUPS)) {    
         $currentgroup = 0;
     }
     
-    if (isteacher($course->id)) {
-    //if (has_capability('mod/survey:readresponses', $context->id)) {
+    if (has_capability('mod/survey:readresponses', $context)) {
         $numusers = survey_count_responses($survey->id, $currentgroup);
         echo "<div class=\"reportlink\"><a href=\"report.php?id=$cm->id\">".
               get_string("viewsurveyresponses", "survey", $numusers)."</a></div>";
index 613725607d85cf4fe6da6b8b18755a3a08cb5d76..0b614639bf91f43b7bf91e4cb27774027fe490b4 100644 (file)
         // else we are editting one
         $dummyuser = get_record('user','id', $id);
     
-        if ($dummyuser->username == 'changeme') {
-            // check for add user
-            has_capability('moodle/user:create', $context->id, true);
+        if ($dummyuser->username == 'changeme') {                                            // check for add user
+            require_capability('moodle/user:create', $context);
         } else {
-            if ($USER->id <> $usernew->id and !has_capability('moodle/user:update', $context->id)) {
-        // check for edit  
+            if ($USER->id <> $usernew->id and !has_capability('moodle/user:update', $context)) { // check for edit  
                 print_error('onlyeditown');
             }   
         }   
index b40dc62e4791a4425d0b1a440f70feec09a59e4f..465f2d9ee8c60913626994ae91893446f6d7ad4f 100644 (file)
@@ -29,7 +29,7 @@
     require_login($course->id);
 
     $context = get_context_instance(CONTEXT_COURSE, $id);
-    //has_capability('moodle/course:viewparticipants', $context->id, true);
+    require_capability('moodle/course:viewparticipants', $context);
 
     if (!$course->category) {
         if (!$CFG->showsiteparticipantslist and !isteacher(SITEID)) {