Some finalizations.
[kic.git] / enrolment_status.tex
blob7f19045852c6e8e4f47ecc2f43e2fb3a6a1aa122
1 \documentclass[12pt,a4paper]{article}
2 \usepackage[nolists,nomarkers]{endfloat}
3 %\usepackage[english]{babel}
4 \usepackage{textcomp}
5 \usepackage[utf8x]{inputenc}
6 \usepackage[T1]{fontenc}
7 \usepackage{color}
8 \usepackage{graphicx}
9 \usepackage{chngpage}
10 \usepackage{ifthen}
11 \usepackage{gitinfo}
12 %\enabledraftstandard
13 \usepackage[firstpage]{draftwatermark}
14 \usepackage[hidelinks]{hyperref}
15 \usepackage{url}
16 \usepackage{breakurl}
17 \usepackage{xcolor,soul,lipsum}
18 \usepackage{lineno}
19 %\usepackage{adjustbox}
20 %\usepackage{fancyvrb}
21 %\usepackage{verbatim}
22 \usepackage{rotating}
23 \usepackage{listings}
25 \newcommand{\myul}[1]{\ul{#1}}
27 %\SetWatermarkText{ENTWURF}
28 \SetWatermarkText{DRAFT}
29 \SetWatermarkScale{4}
30 \SetWatermarkAngle{50}
31 \SetWatermarkLightness{0.90}
33 \sloppy
34 %\hoffset-3mm
35 \parindent0mm
37 \newcommand{\da}{DA}
38 \newcommand{\sa}{SA}
39 \newcommand{\ecs}{ECS}
40 \newcommand{\ilias}{ILIAS}
41 \newcommand{\cces}{\texttt{cc/enrolment\_status\ }}
42 \newcommand{\button}[1]{\fbox{\texttt{#1}}}
43 \newcommand{\jsToAppletComUrlA}{\mbox{http://stackoverflow.com/questions/7278626/javascript-to-java-applet-communication}}
44 \newcommand{\jsToAppletComUrlB}{\mbox{http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html}}
45 \newcommand{\appletToDom}{\mbox{http://docs.oracle.com/javase/tutorial/deployment/applet/manipulatingDOMFromApplet.html}}
47 \lstset{basicstyle=\ttfamily}
48 \newcommand{\includecode}[2][{}]{\lstinputlisting[numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt, breaklines, breakatwhitespace, linewidth=1.1\textheight, xleftmargin=1cm, language=#1]{#2}}
50 \newcommand{\texta}{}
51 \newcommand{\textb}{}
52 \newcommand{\textc}{}
53 \newcommand{\textd}{}
54 \newcommand{\texte}{}
55 \newcommand{\textf}{}
57 %\linenumbers
59 \begin{document}
60 \title{Mahara/Moodle enrolment status}
61 \author{David Boehringer\\Universit\"at Stuttgart \and Heiko Bernl\"ohr\\FreeIT.de}
62 \maketitle
63 \begin{center}
64 % Version: 2.0
65 Version: \gitVtag\\
66 % Commit-id: \gitAbbrevHash
67 \end{center}
68 \begin{abstract}
69 New ECS resource providing enrolment status for users enroled to
70 external courses (via courselinks). The course providing participant (e.g.
71 Moodle) informs the courselink providing participant of the subscribed user
72 (e.g. Mahara) about every change of its enrolment status in the course.
73 \end{abstract}
75 %\vspace{\fill}
76 %\begin{center}
77 %\includegraphics[scale=1.0]{vip_lms}
78 %\end{center}
79 %\vspace{\fill}
81 \newpage
83 \section{Enrolment status}
85 The \cces resource describes an enrolment status of a
86 remotly subscribed user (via courselinks) to a course. This document supersedes
87 the part
88 \begin{quote}
89 {\bf Moodle}\\
90 1. New enrolmentStatus resource
91 \end{quote}
92 in \cite{specBoehMaharaMoodle}.
94 \subsection{Events\label{events}}
95 \newcommand{\rstat}[1]{return status: #1}
96 For the following event considerations please have always the state chart on
97 page \pageref{state:enrolmentStatus} in mind.\medskip
99 Moodle has to send the user enrolment status to Mahara on these events:
100 \begin{description}
101 \item[first time clicking courselink] A user clicks on a courselink on Mahara
102 for the first time and tries to consume the linked course on Moodle (sequence
103 diagram on page \pageref{seq:initialEnrolmentStatus}).\\
104 \rstat{active | pending }
105 \item[reject] User will be rejected by course or system admin. This could only happen
106 in \textit{pending} state, e.g. user was on a waiting list, but had not been
107 accepted for the course.\\
108 \rstat{rejected}
109 \item[subscribe] User will be subcribed to course (leaving waiting list). Now
110 he is able to access and consume the course.\\
111 \rstat{active}
112 \item[waiting list] User will be transfered to waiting list
113 i.e. he can't access and consume the course yet. He has to wait until
114 he will be subscribed to the course.\\
115 \rstat{pending}
116 \item[unsubscribe] User ended course membership himself or his course
117 membership has been terminated by course administrator or system
118 administrator. To access and consume the course again he has to enrole
119 again.\\
120 \rstat{unsubscribed}
121 \item[disable subscription] User is disabled by course or system
122 administrator, i.e. he is (temporarly) not allowed to access course for
123 whatever reason.\\
124 \rstat{denied}
125 \item[enable subscription] User is enabled by course or system administrator,
126 i.e. he is to be allowed to access course again.\\
127 \rstat{active}
128 \item[delete user account] User account on remote system is deleted. \cces
129 has to be sent for all of the user's course memberships.\\
130 \rstat{unsubscribed}
131 \item[deactivate user account] User account on remote system is deactivated.\\
132 \rstat{inactive\_account}
133 \item[activate user account] User account on remote system is activated.\\
134 \rstat{active | pending | denied}
135 \item[subsequently clicking courselink] A user subsequently clicks a
136 courselink on Mahara and consumes an already enroled course on Moodle (see
137 page \pageref{seq:subsequentEnrolmentStatus}). After this event Moodle has
138 to send the current enrolment status. This also guarantees to have a
139 status even if Mahara just forget/loose\footnote{We don't make the resource
140 persistent, so loosing the status somehow on Mahara it will be refreshed
141 after next click on a courselink.} it somehow.\\
142 \rstat{pending | active | denied }
143 \end{description}
145 \subsection{Status values\label{statusValues}}
146 \newcommand{\statusnotstored}{This status is usually not persistently stored in the LMS.}
147 For the following status considerations please have always the state chart on
148 page \pageref{state:enrolmentStatus} in mind.\medskip
150 The status attribute could have following values:
151 \begin{description}
152 \item[active] User is enroled and allowed to consume the course.
153 \item[pending] User enroled for the course, but is on a waiting list.
154 \item[rejected] User is not on waiting list anymore\footnote{Clicking the courselink
155 again the user will get through initial enrolment as described in sequence
156 diagram on page \pageref{seq:initialEnrolmentStatus}.}. \statusnotstored
157 \item[unsubscribed] User is not enroled
158 anymore\addtocounter{footnote}{-1}\footnotemark. \statusnotstored
159 \item[denied] Still enroled but not allowed to access the course.
160 \item[inactive\_account] Still enroled but temporarly not allowed to access
161 the system.
162 \end{description}
163 Whereas only \texttt{active, pending, rejected} and \texttt{inactive\_account}
164 status values have to be stored/saved on the LMS. All others are only generated
165 while the transitions.
167 \subsection{Redirect querystring parameters\label{subsec:redirect_querystring_parameters}}
169 Our present specification of redirecting a user is defined in
170 \cite{specRedirectProcedure} and the procedure how to compute the redirect hash
171 (for securing the redirect parameters) in \cite{specHashCumputing}. As
172 described in the document \cite{specBoehMaharaMoodle} Moodle has to provide an
173 interface to define for each participant and its community participation what
174 personal data should be appended as query strings. Of course to allow this we
175 have to enhance our specs in \cite{specRedirectProcedure} and
176 \cite{specHashCumputing}. This still needs to be done.
178 \begin{figure}[p]
179 \includegraphics[scale=0.8]{enrolment_status_seq}
180 \caption{\label{seq:initialEnrolmentStatus}Sending enrolment status after
181 consuming a courselink for the first time. For \textit{params} in
182 the \textit{redirect} of the \textit{consume courselink} block see
183 \ref{subsec:redirect_querystring_parameters} at page
184 \pageref{subsec:redirect_querystring_parameters}.}
185 \end{figure}
187 \begin{figure}[p]
188 \includegraphics[scale=0.8]{subsequent_enrolment_status_seq}
189 \caption{\label{seq:subsequentEnrolmentStatus}Sending enrolment status
190 after subsequently consuming a courselink.}
191 \end{figure}
193 \begin{figure}[p]
194 \centering
195 \includegraphics[scale=0.5]{enrolment_status_state}
196 \caption{\label{state:enrolmentStatus}UML state diagram. Enrolment status of
197 a user in respect to a course on a LMS. For event description see
198 \ref{events} on page \pageref{events}. For status values description see
199 \ref{statusValues} on page \pageref{statusValues}.}
200 \end{figure}
203 \subsection{Resource attributes}
205 For the json schema of \cces see page \pageref{schema:enrolment_status}.
206 Following description write on \cces resource attributes for which a user
207 status has changed or asked for:
208 \begin{description}
209 \item[courseURL] It's a url transfering a courselink consuming user
210 directly to the course on the course providing system. It's also used as a
211 unique id.
212 \item[courseID] It's a unique course id on the course providing system. It
213 references the same course as \texttt{courseURL}.
214 \item[personID] Unique id of the course consuming user.
215 \item[personIDtype] Class/type of \texttt{personID}. It's a controlled
216 vocabulary (see page \pageref{schema:enrolment_status} for possible
217 values).
218 \item[status] Status of the user's course enrolment. It's a controlled
219 vocabulary (for possible values see schema on page
220 \pageref{schema:enrolment_status} and values descriptions at
221 \ref{statusValues}).
222 \end{description}
224 \begin{sidewaysfigure}[p]
225 \includecode{cc_enrolment_status.schema.json}
226 \caption{JSON-Schema definition of enrolment\_status resource}
227 \label{schema:enrolment_status}
228 \end{sidewaysfigure}
230 \begin{thebibliography}{99}
231 \bibitem{specRedirectProcedure} \url{http://freeit.de/documents/ecsa/index.html#_redirect_procedure_protocol_when_consuming_courselinks}
232 \bibitem{specHashCumputing} \url{http://freeit.de/documents/ecsa/index.html#_courselinks}
233 \bibitem{specBoehMaharaMoodle} David Boehringer. \textit{Mahara and Moodle Specification Version 03}
234 \end{thebibliography}
236 \end{document}