<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wiki.mipt.ru/index.php?action=history&amp;feed=atom&amp;title=Development%3AEnrolment_usage_overview</id>
	<title>Development:Enrolment usage overview - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.mipt.ru/index.php?action=history&amp;feed=atom&amp;title=Development%3AEnrolment_usage_overview"/>
	<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Development:Enrolment_usage_overview&amp;action=history"/>
	<updated>2026-05-07T06:59:18Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>http://wiki.mipt.ru/index.php?title=Development:Enrolment_usage_overview&amp;diff=11070&amp;oldid=prev</id>
		<title>Олег Давидович: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Development:Enrolment_usage_overview&amp;diff=11070&amp;oldid=prev"/>
		<updated>2024-10-21T08:51:12Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 08:51, 21 октября 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Олег Давидович</name></author>
	</entry>
	<entry>
		<id>http://wiki.mipt.ru/index.php?title=Development:Enrolment_usage_overview&amp;diff=11069&amp;oldid=prev</id>
		<title>1&gt;Skodak в 19:05, 15 июня 2010</title>
		<link rel="alternate" type="text/html" href="http://wiki.mipt.ru/index.php?title=Development:Enrolment_usage_overview&amp;diff=11069&amp;oldid=prev"/>
		<updated>2010-06-15T19:05:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Project&lt;br /&gt;
|name = Enrolment usage overview&lt;br /&gt;
|state = In progress&lt;br /&gt;
|tracker = MDL-21655&lt;br /&gt;
|discussion = n/a&lt;br /&gt;
|assignee = [[User:Petr Škoda (škoďák)|Petr Škoda (škoďák)]]&lt;br /&gt;
}}&lt;br /&gt;
{{Moodle 2.0}}&lt;br /&gt;
&lt;br /&gt;
=Goals=&lt;br /&gt;
There is a lot of confusion related to guest access, enrolment of users, etc. This page is trying to sum up the usage of enrolments and guest access in various parts of Moodle.&lt;br /&gt;
&lt;br /&gt;
=Definitions=&lt;br /&gt;
; enrolment : All enrolled users enrolled in a course record in user_enrolments table. The original moodle/course:view is reset during 2.0 upgrade and all data is migrated to this new enrolment table.&lt;br /&gt;
; guest user : Local user account with username &amp;#039;&amp;#039;guest&amp;#039;&amp;#039;, for performance reasons guest id is cached in $CFG, guest is never returns by get_users_by_capability() or get_enrolled_users(), all write and dangerous capabilities are blocked in has_capability().&lt;br /&gt;
; viewing/inspection : Users with moodle/course:view at course or higher level, users are not visible inside course unless they post or do other visible action.&lt;br /&gt;
; course guest access : Those are users that are not enrolled or just viewing, but still &amp;#039;&amp;#039;somehow&amp;#039;&amp;#039; get through the require_login($course), the enrolment plugins are supposed to grant this temporary guest access, usually the user is granted some guest role on the fly.&lt;br /&gt;
; administrator access : Administrators do not have any role assigned any more, instead list of administrators is stored in CFG variable. Administrators are not returned from any accesslib queries, the only function explicitly dealing with administrators is the has_capability().&lt;br /&gt;
&lt;br /&gt;
=Core API=&lt;br /&gt;
&lt;br /&gt;
; get_enrolled_users() : returns list of userids that are already enrolled (everybody on frontpage) optionally with some capability&lt;br /&gt;
; get_enrolled_sql() : return the sql select used in get_enrolled_users() &lt;br /&gt;
; isguest() : returns true for guest user account and users with temporary guest access&lt;br /&gt;
; isguestuser() : return true only for the real guest account (username==guest)&lt;br /&gt;
; is_siteadmin() : returns true for all site admins&lt;br /&gt;
; has_capability() : returns true if user has capability, if $doanything==true used returns true for all admins&lt;br /&gt;
; get_users_by_capability() : the same as in 1.9&lt;br /&gt;
; is_enrolled() : returns true if user enrolled, on frontpage true for everybody&lt;br /&gt;
; is_viewing() : returns true if user administrator or has inspect capability&lt;br /&gt;
&lt;br /&gt;
=Core usage=&lt;br /&gt;
&lt;br /&gt;
==Group membership==&lt;br /&gt;
Only enrolled users may be members of groups. In 1.9 and earlier we only guess by looking at roles that have moodle/course:view which is not hidden, this may actually return incorrect results if overrides used. All group membership is removed when unenrolling form course.&lt;br /&gt;
&lt;br /&gt;
Technically we need to look only at users that are returned by get_enrolled_users() when looking for new group membership candidates. Existing group membership should be filtered so that only enrolled users are displayed.&lt;br /&gt;
&lt;br /&gt;
==Gradebook==&lt;br /&gt;
&lt;br /&gt;
We keep only grades of enrolled users. Gradebook shows only enrolled users that have the gradebook role. In future it could be controlled by a special capability instead, this was not possible in 1.9 for performance reasons.&lt;br /&gt;
&lt;br /&gt;
Anybody with capability may grade or manage gradebook.&lt;br /&gt;
&lt;br /&gt;
==Logs and reports==&lt;br /&gt;
In some cases we want to see only enrolled users, in others we want to see really all users. This should be decided by a new capability.&lt;br /&gt;
&lt;br /&gt;
==User profiles==&lt;br /&gt;
&lt;br /&gt;
Only enrolled user have course visible profile.&lt;br /&gt;
Users that have one of $CFG-&amp;gt;coursemanager roles have profile on site level because we want them to be clickable on course description page. (This was originally controlled by isteacherinanycourse() which was both deprecated and incorrect.)&lt;br /&gt;
&lt;br /&gt;
Profile displays also user roles in course, the list of roles is the same as on the profile page.&lt;br /&gt;
&lt;br /&gt;
==Participation page==&lt;br /&gt;
&lt;br /&gt;
Participants page displays only enrolled users (with moodle/course:participate capability).&lt;br /&gt;
It shows only limited number of roles specified in the $CFG-&amp;gt;profileroles setting.&lt;br /&gt;
&lt;br /&gt;
==Messaging==&lt;br /&gt;
&lt;br /&gt;
There is an ongoing discussion about limiting of communication to Teacher-Student only, I do not think we should restrict this - they may use modules like Consultation or Dialog instead. In any case the current 2.0dev messaging needs a lot more work both on performance and usability.&lt;br /&gt;
&lt;br /&gt;
==Comments==&lt;br /&gt;
Comments can be controlled by capability.&lt;br /&gt;
&lt;br /&gt;
==Ratings==&lt;br /&gt;
Ratings can be controlled by capability.&lt;br /&gt;
&lt;br /&gt;
=Modules=&lt;br /&gt;
&lt;br /&gt;
==Assignment==&lt;br /&gt;
&lt;br /&gt;
Only enrolled user with submit capability may submit.&lt;br /&gt;
&lt;br /&gt;
Users with capability may grade.&lt;br /&gt;
&lt;br /&gt;
==Chat==&lt;br /&gt;
&lt;br /&gt;
Users with capability may chat.&lt;br /&gt;
&lt;br /&gt;
==Choice==&lt;br /&gt;
&lt;br /&gt;
Enrolled users with capability may make a choice. In theory there could be a setting to require capability only.&lt;br /&gt;
&lt;br /&gt;
The enrolment is important especially when there is a limited number of slots or when we want to display list of users that did not make a choice yet.&lt;br /&gt;
&lt;br /&gt;
==Feedback==&lt;br /&gt;
&lt;br /&gt;
Options:&lt;br /&gt;
* Enrolled users with capability only&lt;br /&gt;
* Users with capability&lt;br /&gt;
* All users including guest (non standard feature disabled by default for security reasons)&lt;br /&gt;
&lt;br /&gt;
==Forum==&lt;br /&gt;
&lt;br /&gt;
Anybody with capability may post. Enrolled users may get notifications via email or track new posts.&lt;br /&gt;
&lt;br /&gt;
==Glossary==&lt;br /&gt;
&lt;br /&gt;
Anybody with capability may post.&lt;br /&gt;
&lt;br /&gt;
==Lesson==&lt;br /&gt;
&lt;br /&gt;
Anybody with capability may try it, grades are recorded only for enrolled.&lt;br /&gt;
&lt;br /&gt;
==Quiz==&lt;br /&gt;
&lt;br /&gt;
Anybody with capability could try it. Only enrolled with capability are displayed as those that did not pass grade yet. Only grades of enrolled are passed to gradebook.&lt;br /&gt;
&lt;br /&gt;
==SCORM==&lt;br /&gt;
Anybody with capability may try it.&lt;br /&gt;
&lt;br /&gt;
==Survey==&lt;br /&gt;
Only enrolled with capability may answer it.&lt;br /&gt;
&lt;br /&gt;
==Wiki==&lt;br /&gt;
&lt;br /&gt;
Anybody with capability may edit.&lt;br /&gt;
&lt;br /&gt;
==Workshop==&lt;br /&gt;
&lt;br /&gt;
Only enrolled with capabilities may participate.&lt;br /&gt;
&lt;br /&gt;
=Blocks=&lt;br /&gt;
&lt;br /&gt;
==Online users==&lt;br /&gt;
&lt;br /&gt;
We need separate capability to see all or enrolled users.&lt;br /&gt;
&lt;br /&gt;
=See also=&lt;br /&gt;
* [[Development:Role archetypes]]&lt;br /&gt;
* [[Development:New permissions evaluation in 2.0]]&lt;br /&gt;
* [[Development:New_enrolments in 2.0]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Developer]]&lt;br /&gt;
[[Category:Enrolment]]&lt;br /&gt;
[[Category:Groups]]&lt;br /&gt;
[[Category:Roles]]&lt;/div&gt;</summary>
		<author><name>1&gt;Skodak</name></author>
	</entry>
</feed>