~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to doc/man/architecture.rst

  • Committer: William Grant
  • Date: 2009-06-29 01:55:55 UTC
  • mto: This revision was merged to the branch mainline in revision 1322.
  • Revision ID: grantw@unimelb.edu.au-20090629015555-49xxv0piiieunx8e
Add docs on configuring Apache.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
This page describes the various subsystems of IVLE.
23
23
 
24
 
.. image:: /images/ivle-system-diagram.png
25
 
 
26
24
The IVLE web application
27
25
========================
28
26
 
50
48
 
51
49
Database
52
50
========
53
 
 
54
 
Authentication
55
 
==============
56
 
 
57
 
There are two mechanisms by which IVLE can connect to an external server to
58
 
get information about users. These are typically used to connect to an
59
 
institution's central database to authenticate students, and download student
60
 
details (such as names and subject enrolment details).
61
 
 
62
 
Neither of these mechanisms are necessary; they are only useful where
63
 
third-party authentication is required.
64
 
 
65
 
.. _ref-auth-modules:
66
 
 
67
 
Auth modules
68
 
------------
69
 
 
70
 
IVLE's database contains user accounts, which includes a password (hash)
71
 
field. In this way, IVLE is fully-functioning without third-party
72
 
authentication modules. However, it is also often desirable to allow users to
73
 
log in without storing their password hash in the local database. IVLE allows
74
 
plug-in "auth modules" which can authenticate users with arbitrary logic, and
75
 
also create new user accounts.
76
 
 
77
 
This has at least the following two use cases:
78
 
 
79
 
* Allowing users to authenticate upon each login with a remote server. This
80
 
  allows users to log in without ever storing their password hash locally.
81
 
* Allowing users who have never used IVLE to log in, without an IVLE user
82
 
  account. Upon seeing an unknown username, an auth module can connect to a
83
 
  remote server, authenticate the unknown user, and create an IVLE user
84
 
  account on-the-fly, optionally downloading additional details (such as full
85
 
  name).
86
 
 
87
 
TODO: Describe how auth modules work.
88
 
 
89
 
.. _ref-subject-pulldown-modules:
90
 
 
91
 
Subject pulldown modules
92
 
------------------------
93
 
 
94
 
IVLE maintains lists of enrolled students in each subject, providing access to
95
 
worksheets and allowing submissions for enrolled users. Again, enrolments can
96
 
be made manually, but IVLE also allows plug-in "subject pulldown modules"
97
 
which can enrol students with arbitrary logic.
98
 
 
99
 
This allows a third-party server to dictate which IVLE users are enrolled in
100
 
which IVLE subjects.
101
 
 
102
 
Subject pulldown modules are used by the :program:`ivle-enrolallusers` script
103
 
to automatically enrol all existing users in subjects. Note that this does not
104
 
enrol users who are not in the IVLE database (perhaps because a third-party
105
 
auth module is being used to create user accounts on-the-fly, and some
106
 
students have not yet logged in for the first time).
107
 
 
108
 
Because of this, subject pulldown modules are also used whenever a student
109
 
logs in. This ensures that students who log in for the first time are
110
 
automatically enrolled in all subjects, according to the third-party server,
111
 
and also ensures that enrolments are kept up-to-date, should the third-party
112
 
server add new enrolments, or should new subjects be created in IVLE.
113
 
 
114
 
.. note::
115
 
   Enrolments are never removed by subject pulldown modules, only added.
116
 
   Students can only be un-enrolled from a subject by an administrator.
117
 
 
118
 
TODO: Describe how subject pulldown modules work.