Index: lang/en_utf8/role.php
===================================================================
RCS file: /cvsroot/moodle/moodle/lang/en_utf8/role.php,v
retrieving revision 1.47.2.22
diff -u -r1.47.2.22 role.php
--- lang/en_utf8/role.php	30 Dec 2009 17:17:10 -0000	1.47.2.22
+++ lang/en_utf8/role.php	18 Feb 2010 20:43:19 -0000
@@ -42,6 +42,7 @@
 $string['course:managegroups'] = 'Manage groups';
 $string['course:managemetacourse'] = 'Manage metacourse';
 $string['course:managescales'] = 'Manage scales';
+$string['course:participate'] = 'Participate in courses';
 $string['course:request'] = 'Request new courses';
 $string['course:reset'] = 'Reset course';
 $string['course:sectionvisibility'] = 'Control section visibility';
Index: group/lib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/group/lib.php,v
retrieving revision 1.8.2.9
diff -u -r1.8.2.9 lib.php
--- group/lib.php	6 Jul 2008 22:54:05 -0000	1.8.2.9
+++ group/lib.php	18 Feb 2010 20:43:19 -0000
@@ -443,7 +443,7 @@
  * @return Array of role ID integers, or false if error/none.
  */
 function groups_get_possible_roles($context) {
-    $capability = 'moodle/course:view';
+    $capability = 'moodle/course:participate';
     $doanything = false;
 
     // find all possible "student" roles
@@ -495,7 +495,7 @@
 
     if ($roles = get_roles_used_in_context($context, true)) {
 
-        $canviewroles    = get_roles_with_capability('moodle/course:view', CAP_ALLOW, $context);
+        $canviewroles    = get_roles_with_capability('moodle/course:participate', CAP_ALLOW, $context);
         $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
 
         foreach ($roles as $role) {
Index: group/autogroup.php
===================================================================
RCS file: /cvsroot/moodle/moodle/group/autogroup.php,v
retrieving revision 1.1.2.4
diff -u -r1.1.2.4 autogroup.php
--- group/autogroup.php	19 Nov 2007 22:53:50 -0000	1.1.2.4
+++ group/autogroup.php	18 Feb 2010 20:43:19 -0000
@@ -47,7 +47,7 @@
 /// Get applicable roles
 $rolenames = array();
 if ($roles = get_roles_used_in_context($context, true)) {
-    $canviewroles    = get_roles_with_capability('moodle/course:view', CAP_ALLOW, $context);
+    $canviewroles    = get_roles_with_capability('moodle/course:participate', CAP_ALLOW, $context);
     $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $systemcontext);
 
     foreach ($roles as $role) {
Index: lib/db/access.php
===================================================================
RCS file: /cvsroot/moodle/moodle/lib/db/access.php,v
retrieving revision 1.75.2.23
diff -u -r1.75.2.23 access.php
--- lib/db/access.php	30 Dec 2009 17:17:09 -0000	1.75.2.23
+++ lib/db/access.php	18 Feb 2010 20:43:22 -0000
@@ -548,6 +548,17 @@
             'editingteacher' => CAP_ALLOW
         )
     ),
+    
+    'moodle/course:participate' => array(
+
+		'captype' => 'read',
+		'contextlevel' => CONTEXT_COURSE,
+		'legacy' => array(
+			'student' => CAP_ALLOW,
+			'teacher' => CAP_ALLOW,
+			'editingteacher' => CAP_ALLOW
+		)
+	),
 
     'moodle/course:bulkmessaging' => array(
 
Index: lib/datalib.php
===================================================================
RCS file: /cvsroot/moodle/moodle/lib/datalib.php,v
retrieving revision 1.439.2.36
diff -u -r1.439.2.36 datalib.php
--- lib/datalib.php	8 Jan 2010 07:08:59 -0000	1.439.2.36
+++ lib/datalib.php	18 Feb 2010 20:43:22 -0000
@@ -929,7 +929,7 @@
     }
 
 
-    $courses = get_user_courses_bycap($userid, 'moodle/course:view', $accessinfo,
+    $courses = get_user_courses_bycap($userid, 'moodle/course:participate', $accessinfo,
                                       $doanything, $sort, $fields,
                                       $limit);
 
Index: user/index.php
===================================================================
RCS file: /cvsroot/moodle/moodle/user/index.php,v
retrieving revision 1.194.2.23
diff -u -r1.194.2.23 index.php
--- user/index.php	4 Feb 2010 04:37:31 -0000	1.194.2.23
+++ user/index.php	18 Feb 2010 20:43:22 -0000
@@ -62,7 +62,7 @@
         // We should further exclude "admin" users (those with "doanything" at site level) because
         // Otherwise they appear in every participant list
 
-        $canviewroles    = get_roles_with_capability('moodle/course:view', CAP_ALLOW, $context);
+        $canviewroles    = get_roles_with_capability('moodle/course:participate', CAP_ALLOW, $context);
         $doanythingroles = get_roles_with_capability('moodle/site:doanything', CAP_ALLOW, $sitecontext);
 
         if ($context->id == $frontpagectx->id) {
Index: admin/uploaduser.php
===================================================================
RCS file: /cvsroot/moodle/moodle/admin/uploaduser.php,v
retrieving revision 1.68.2.18
diff -u -r1.68.2.18 uploaduser.php
--- admin/uploaduser.php	25 Nov 2009 17:05:28 -0000	1.68.2.18
+++ admin/uploaduser.php	18 Feb 2010 20:43:19 -0000
@@ -638,7 +638,7 @@
             // find group to add to
             if (!empty($user->{'group'.$i})) {
                 // make sure user is enrolled into course before adding into groups
-                if (!has_capability('moodle/course:view', $coursecontext, $user->id, false)) {
+                if (!has_capability('moodle/course:participate', $coursecontext, $user->id, false)) {
                     $upt->track('enrolments', get_string('addedtogroupnotenrolled', '', $gname), 'error');
                     continue;
                 }
