Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

On this guide are sections "Technical Note:" which described how the LAMS concepts are implemented in the code. If you are reading this page to learn how to use LAMS then skip the technical notes as they may confuse matters. If you are reading this page to because you are making code changes to the user management module then you will need to read the technical notes.

Course Management

Usually in academic institutions, the curricula is structure in the following way (exceptions according to the institution or type of institutions may exist):
Term (i.e. 2006)

  • Semester (i.e. First Semester or Fall)

    • > Grade/Degree (i.e. Psychology)

      • -> Course Offering (Abnormal Psychology)

        • -> Lecture

        • -> Tutorials

The term, semester and degree give structure for organising the academic activities. However, it is at the course and class level where actual learning/teaching occurs. Therefore it is from here that we will focus to create our User Management module.


Courses correspond to Course offerings. That is University courses that students can enrol to take classes. For instance, if you are a student at a University, you might enrol in courses that are part of the degree you are pursuing. For instance, if you are a Biology student, you could enrol into the "Microbiology" course.

Now say the Microbiology course has a weekly lecture and five tutorial classes each day of the week in which the tutors help the students with their weekly practical test/experiments, etc. Each student then attends the lecture and only one tutorial a week. Each student is allocated to only one tutorial class.

  • Microbiology
    • -> Weekly Lecture (by Professor Yoichi Takayama)

    • -> Monday Tutorial

    • -> Tuesday Tutorial

    • -> Wednesday Tutorial

    • -> Thursday Tutorial

    • -> Friday Tutorial

Course and Classes are the actual "units" where the teaching occurs and both of them are containers of people that have a roles with these groups. (See Roles for further details)
Users are created in LAMS first and are then assigned to particular courses and classes. If a user is a member of lecture or tutorial class, they are also a member of the course containing that class.

Course Status

There are four Course Status:

  • Active
  • Hidden
  • Archived
  • Removed

An Active Course is a current course and therefore running lessons for this course are to be shown in the index page.

The Hide Course status completely hides the course to teachers and students.

When a course is Archived, the course does not longer show in the index page, instead, these sequences are now shown in the My Profile page instead as Archived courses (next to the course title, we display the archival date). The sequences for these archived courses can only be exported as "Portfolio Export" and cannot be access by students. Only the Course Manager should have Monitor access to these sequences from the My Profile page. The System Admin is able to changed the course status back to Active or Hidden (also the Course Manager -if allowed to change the status of the course -see Create Course use case below, can change it too). When a course is archive, we need to store the date in which the course was archived.

A Removed Course means that all student records, sequences and classes are can be deleted from the database. Note: in LAMS the data will probably still be left in the database but no one will be able to access the data. In later versions the data will be removed from the database. Once a status has changed to Removed it cannot be reversed. Only System Admins can remove courses.

Course Use cases

  1. Create a Course
  2. Modify a Course

Courses are only set by system administrators.

Create a Course

  1. Add a Course Name, Course Code, Description and language & locale (required)
  2. Check "Course Administrators can add new users" option (unchecked by default)
  3. Check "Course Administrators can browse all users in the system" option (unchecked by default)
  4. Check "Course Administrators can change status of course" option (unchecked by default)
  5. Add Users to course (search one by one or bulk excel upload)
  6. Assign roles to added users
  7. System creates a default content folder and a lesson sequence subfolder for this course (and adds permissions for all the users in it)

Once a course is created its default status is Active.

Technical Note

The default content folder name is the name of the course. In the default content folder is one subfolder, in which the sequences used for running a lesson are stored (the sequences are a copy of the original authored sequence and are created when a lesson is started). The default name of the sequence folder in English is "Lesson Sequence Folder". This name of this folder should be internationalised.

Modify Course

  1. Select a course to modify
  2. Edit Course Name, Course code and/or Description, Locale
  3. Edit Course Permissions (the three checkboxes mentioned above: Course Administrators can add new users, Course Administrators can browse all users in the system and Course Administrators can change status of course)
    [This can only be edited by the System Administrator]
  4. Edit Users (add/remove)
  5. Edit Roles (for users in course)
  6. Edit Course Status

Technical Note

In LAMS, this is implemented as follows.

  • Institution: A single institution organisation exists, of type ROOT ORGANISATION. This is an internal organisation used to make coding easier.
  • Course: The Institution organisation has many Course organisations. Each Course organisation is of type COURSE ORGANISATION.
  • Lecture and Tutorial Classes: Each Course has one or more Lecture and Tutorial Classes, which are of type CLASS.


Classes are created by Course Admins and/or Course Managers and/or System Administrators.

Course admins can create Classes by using the Course Management Tab in the index page. From there, Course admin can create and edit new classes.

Note: people can overlap between classes e.g. there could be a one class that includes everyone from the course, and then four other classes that split the students into four non-overlapped groups. The lecturer could be made a member of all classes.

The course manager must belong to all classes. The course manager will be added to the staff group for all _lessons, and hence will need to be in all the classes.

Classes Use cases

  1. Add a Class
  2. Edit Class
  3. Hide Class
  4. Remove Class
Add a Class
  1. Add a Class Name, code, description and language and locale
  2. Select/Add users into class and assign roles. Note: if the user is not already in the course, they should also be added to the course.
Edit Class
  1. Edit Class Name, code, description and language and locale
  2. Edit users
  3. Edit users roles in the class
Hide Class
  1. Select a class to hide
  2. Confirm action
Remove class
  1. Select a class to remove
  2. Check whether there's any lesson for that class
  3. if not lesson in class then proceed to confirmation for deletion
  4. if lesson exists tell the course admin that class cannot be removed

Add a course/class

1. Select the Course Mgt option in the System Administrator menu:

2. Select the option "Create course" (highlighted)

3. Complete the course fields and settings as follows

Important fields


Course name (required)


Descriptive course code


Course description


Course language and locale


Course current status (se course status above)


Course administrators can add new users: if course admins are available for this course, these users can add new students to the course.

Course administrators can browse all users in the system: if course admins are available for this course, these users can add existing students in the system to the course.

Course administrators can change course status: if course admins are available for this course, these users can modify the course status (see course status above)

Enable organisation notifications: allows course level notifications.

Enable Gradebook for monitors: if enabled, only monitors have access to gradebook

Enable Gradebook for learners (only can be enabled if "enable gradebook for monitors" is allowed): when features is ON, learners are able to see their own gradebook.

Enable single activity lessons: when enabled, author/monitors can create single activity lessons in the course.

Enable live edit: Enables the live edit feature for all lessons within this course.

Edit course/class

In the Manage courses menu, select the course name for the course to edit:

Once the course is selected, it's details and settings will be displayed:

Press the "Edit" button

And change the settings accordingly.

User Management

Below we describe the user management aspects for LAMS standalone (that is LAMS with its own internal authentication).

LAMS Internal Authentication (standalone)

Adding Users to LAMS

System administrator add users to LAMS using the following use cases:

  • Simple web form interface
  • Bulk Create Users (provisioning)

Simple web form interface

Sysadmin create one user at a time.

  1. Enter username, password, first name, last name (required)
  2. Add email, external user identifier
  3. Country

In the Course management menu, select "Create user"

Then enter the details according to the following form:



Username to login into LAMS (required)


Password to login (must conform with password policy) [required]

Confirm password

Password confirmation (required)

Authentication method

Required authentication method (LDAP, SAML, LAMS-Database) Default: LAMS-database


User title

First name

User's first name (required)

Last name

User's last name (required)


User's email (required)

Address Lines, city, postcode, state, country

User's address

Work phone, Home phone, Mobile phone, Fax

User's telephone details


User's preferred language and locale

Time zone

User's time zone


LAMS theme/skin


Force password change: when selected, the user is forced to change his/her password when he/she logs in next.

Enable two-factor authentication: when selected, upon next login, the user will be presented with a shared key code and a QRCode to scan using a mobile app (Authy or Google Authenticator). After, whenever the user logs in with a successful password, the user will be required to use the code provided by the mobile app to login.

Bulk Create Users
LAMS provides a Excel spreadsheet for bulk creating users. The spreadsheet format is set by LAMS and it includes a field that have a coma separated.
To access it, proceed to the Sysadmin menu:

Then select the Import users option:

Download the lams_user_template.xls and lams_roles_template.xls

Using the .xls files, complete all the user details and upload first the lams_users_template.xls file to create the user. And then the lams_roles_template.xls to allocate the users into courses.

Editing Users data

In order to select a student for editing the sysadmin can select:

  • Big picker (lists all users available -one big massive list)
  • Picker searcher (provides a searching mechanism that searches on external user_id, lastname, username, firstname)

and then edit/update the user records using a simple edit user's info. This simple edit form updates the users' personal details as well as his/her courses and roles.

In the Manage courses menu, locale the ‘Find users' button:

Then use the Search field to filter your search (as you type, LAMS would for every keystroke in emails, login, first name and last name fields):

Once you located your user, click on "Edit" to change this users details/settings:

Allocating students into courses as System Administrators/Global Course Admins

  • Bulk allocation/removal of students

Using a spreadsheet, sysadmins can add/remove students from courses (see above).

Allocating students into classes (for Course Managers or Course Admins)

When a course manager is creating a class (see above use case), he/she has a chose of methods to add people into a class:

  • Spreadsheet (see above)
  • Big picker (all the list of the people available in the course is displayed at once)
  • Searcher picker

To add one or more users to a class/course using the course management menu, first select the course you want to add users to.

Once the course is selected, choose the button "Manage users" (see highlighted):

The next page shows the list of students already in the course. Select the option "Add/Remove users"

The list of current students in the course will show and to add users into the course, use the "Search" field filter under the "Potential users" and type the email, first name, last name and/or email of the person you would like to add:

Once you found him, click on the user or users and click "Next" and now select the permissions that you would like this user(s) to have in the course:

Click save to confirm them.

Course Content Folders

Each course has a course folder. In this folder is the learning designs for the course. Classes do not have a folder.


Lessons are running instances of learning designs that are assigned to a course/class by the teacher.

Running A Lesson?

How do all these roles and classes interact in a lesson? This is an example flow to illustrate how it works. We assume that there are separate staff for course administrators, author administrators, course managers and course administrators. These roles could be assigned to just one or two staff members if that is appropriate. The example assumes that all the lecturers for the course have author and monitor roles in the course, and the students have learner role.

Before the course starts:

  • The course administrator sets up a course and put 100 students in the course, along with 2 lecturers and 3 tutors. Either the course administration or the course manager sets up 5 tutorial groups and these tutorial groups are created as "Tutorial Group A" through "Tutorial Group E", and assigns the students, lecturers and tutors to the tutorial groups.

Running a lesson in a tutorial:

  • The author administrator creates some learning designs and saves the designs into the course.
  • One of the course tutors runs the "Add Lesson" wizard. He/she starts a new lesson and selects a learning design for the lesson. The learning design is copied and stored in the lesson sequence folder automatically, so that any changes made to the design during the lesson don't affect the original copy.
  • The tutor selects the "Tut Group A" as the class for the lesson. This brings up a list of all the people in "Tut Group A" and they all default to selected. There are two lists on the screen - staff (anyone with course manager or monitor roles) and learners (anyone with learner role). Any course managers (for this course) will be listed as selected but the checkbox disabled. The tutor cannot unselect any of the course managers - all course managers (for the course) must be made part of the staff list for this lesson.
  • One of the students in this class has broken a leg so won't be attending this week. So the tutor deselects this student. The list of selected people is saved against the lesson. The people in the staff list as saved as a staff list and the learners are saved in a learner list.
  • The tutor starts the lesson immediately and everyone in the lesson works through the sequence. The lesson will appear as a link on a user's index page if the user is in the learner list for this lesson, and will appear as a monitor button on the user's index page if the user is in the staff list for this lesson. One user can be both lists (staff and learner) in which case they will get a link and a button.

Running a special one-off class:

It is found that a special tutorial is needed to cover a particular issue in the course. It will have some students from all the regular tutorial groups and will be given by one of the lecturers.

  • The lecturer creates a learning design and saves it into the course.
  • The course manager or course administrator creates a new class "Special Tut Class" within the course. This new class has just a list of students who are known to be attending the special tutorial. It could also be set up to include everyone from the course.
  • The lecturer runs the "Add Lesson" wizard. He/she starts a new lesson and selects the learning design for the lesson. The learning design is copied as before.
  • The lecturer selects the "Special Tut Class" and sets up the staff and learner lists as needed.
  • The lecturer selects the schedule option and sets the lesson to start at the same time as the special tutorial will be run.
  • Then when the special tutorial is held, the lesson will start automatically and the lecturer and students will participate in the lesson.

Lesson Management

Managing a lesson, once a lesson is deployed, there are several options to manage this lesson directly from the course page:

Clicking on the lesson name will start the lesson as learners can play it.

The following icons symbolize the state of the lesson:

Lesson has been completed.

Teacher has disabled lesson.

The following icons are actions and features related to these lessons:

Direct link to monitor this lesson.

Link to lesson notifications.

Lesson gradebook.

Lesson conditions (ie: only access if another lesson has been completed/finished).

Delete lesson (double confirmation is required).

LAMS Roles

  1. Global Roles
    1. System Administrator
    2. Course Administrator
    3. Author Administrator
  2. Course based roles
    1. Course Manager
    2. Course Admin
    3. Author
    4. Monitor
    5. Learner

Global Roles

  • System Administrator
  • Course Administrator
  • Author Administrator
System Administrator

Sysadmin is the "walk with the Gods" user in LAMS and it has the following privileges:

  • Has access to System Admin module to set up, modify, archive, hide course/classes/users
  • Adds/Modify tools properties and settings
  • Has all access (write/read/delete/modify) to all Content Folders
  • Can login as any user in the system
  • Has access to all content folders including users' private folders.

This means that they can do anything that a course administrator or a authoring administrator can do plus more. The Sysadmin is God!

Course Administrator

The Global Course Administrator:

  • Has access to set up, modify, archive, hide course/classes/users
Author Administrator

The Author Admin:

  • Has access full access (write, delete, create, etc) access to all course content folders

Therefore from the Author interface he/she can see/manage all course content folders.

Course based roles

  • Course Manager
  • Course Administrator
  • Author
  • Monitor
  • Learner

Roles and privileges matrix according to course structure and content


Course Structure


Course Manager

  • Can add/remove/modify classes within the course
  • Can create running instances of sequences that are in
    the course content folder and assign those to a class
  • Can stop/start running sequences
  • Can monitor the progress of learners
  • Has write/create/delete permissions in course content folder and
  • any subfolder within it

Course Admin

  • Can add/remove/modify classes within the course

No rights


No rights

  • Create content for a course in LAMS authoring and save them
    in the course content folder
  • Has write/create/read access for the content folder
  • can delete sequences that he/she has created, but not others


  • Can create running instances of sequences that are in
    the course content folder and assign those to a class
  • Can stop/start running sequences
  • Can monitor the progress of learners
  • Only read access to course content folder (thru Monitor)


  • Participates in sequences

No rights

Course Manager

The Course Manager role for a course has the following privileges:

  • Can add/remove/modify classes within the course
  • Can create running instances of sequences that are in
    the course content folder and assign those to a class
  • Can stop/start running sequences
  • Can monitor the progress of learners

Course Admin

The Course Admin role is just for assistance purposes only:

  • Can add/remove/modify classes within the course


The Author role for a course can do the following:

  • Create content for a course in LAMS Authoring
  • Save sequences in the Course content folder
  • Has writing/create/read access on the content folder
  • Can delete sequences that he/she has created, but not of others
  • Has no access to Monitor to run sequences for this course


The Monitor role for a course can do:

  • Can creating running instances of sequences that are in the course content folder and assign those to a class
  • Can stop/start running sequences
  • Can monitor the progress of learners


The learner role for a course allows:

  • Participate sequences

Technical Notes

The roles are defined in the lams_role table. The entries in the privilege matrix above become one or more entries in the privilege table, and the roles are linked to the privilege entries.

Then the user's course roles are recorded by linking the user's role to a particular course, and the permission derived from the role.
The global roles are recorded by linking the user's roles to the ROOT organisation. As a general rule, if a user has permission to do something in the ROOT organisation then they can do it to any organisation.

When the user's details are cached on logon, a list of active organisations (root organisation, active courses and active classes) and their permissions are cached. Many of buttons and links on the index page are generated from cached permissions. The only ones that aren't are related to the lesson entries and the link/buttons for the lesson entries are dependent on the staff/learner lists in the lesson. However the staff/learner lists were created using the user's permissions and hence all the buttons and links on the index page are either directly or indirectly defined by the user's permissions.

Database Table Model:

LAMS Configuration Settings

The following entries describe the server settings in LAMS. They may be set via the "Configuration Settings" screen in System Administration. The entries with there entries used for customising LAMS to your site.

In most cases, changing a setting using the "Configuration Settings" screen will change the setting straight away. But if you change the User Inactive Timeout Period or the Allow Multiple Login flag then you will need to restart LAMS for the changes to take affect as these settings are cached for efficiency.

Please do not change any of the values that do not have, unless specifically know what you are doing.




LAMS Support Email

In LAMS it is the the return address used on system emails (e.g. Forgot Password emails).

SMTP Server

Required for sending system emails.




Allow Direct Lesson Launch

The lesson launch page is a special url which will display a short page with basic lesson details and a button to allow the user to start the learner interface for this lesson. If AllowDirectLessonLaunch is "true" then the url for the lesson launch page will be shown in authoring for staff to copy and paste into another system, or send by email to the learners. Default to "false". Should be "true" or "false".

Allow Live Edit

Live Edit allows a staff member to change a learning design (sequence) once a lesson has started. It changes just the copy of the learning design that is being used for the lesson - the original design created in authoring is not changed by LiveEdit. This configuration parameter shows/hides the Live Edit button in Monitoring. Defaults to "true". Should be "true" or "false".

Display a print button when the lesson is completed

Displays a print button when the lesson si completed for the student to print as certificate.

Enable profile editing

Allow users to edit their profile.

Enable partial profile editing (only email and contact number can be changed)

Allow users to edit only their contact details. All other details cannot be changed.

Show "All my lessons" link in User's profile

Show "All my lesson" in a single page.

Show warning when user's LAMS timezone does not match their computer/device

Warn user that timezone settings do match their browser.

Add unique suffix when importing Learning Designs

Append a time suffix to sequences are imported into LAMS to prevent accidental overwrites.

Password policy



Must contain lowercase letter(s)

Password must contain at least 1 lowercase character

Minimum number of characters

Minimum length for password

Must contain at least a number(s)

Password must contain at least 1 number

Must contain at least one symbol(s)

Password must contain at least 1 symbol

Must contain uppercase letter(s)

Password must contain at least 1 uppercase character

Look and Feel



Authoring Screen Size

The size of the Authoring client window. The value should be in the format of {width}x{height} e.g. 1280x720

Monitor Screen Size

The size of the Monitor client window. The value should be in the format of {width}x{height} e.g. 1280x720.

Learner Screen Size

The size of the Learner client window. The value should be in the format of {width}x{height} e.g. 1280x720

System Admin Screen Size

The size of the System Admin window. The value should be in the format of {width}x{height} e.g. 1280x720

Custom Tab URL

A custom tab is a tab that appears next to the My Profile tab on the main screen. If this entry is blank, then no tab is displayed. If this entry is not blank, Custom Tab Link should also be filled in. This entry should contain the URL to be called when the tab is selected..

Custom Tab Title

The text to be displayed on the custom tab (see Custom Tab URL).

Default HTML Theme

Default theme to be used for HTML pages. Defaults to "default", which matches to the defaultHTML.css and defaultHTML_learner.css files in lams.ear\lams-central.war\css. No alternative themes are available at the moment.


Default server language. Must be an entry from the lams_supported_locale table e.g. en_AU, es_ES. If this entry is invalid, the login pages will revert to Australian English

Locale Page Direction

Overall page layout - LTR (Left to right) or RTL (Right to left). Should match the ServerLanguage.

System Configuration



Number of Days to Keep Preview

LAMS uses a folder to store temporary files (from uploads or exports). These files get deleted after the number of days set here.

Configuration cache refresh interval (minutes)

Number of minutes for LAMS instance to refresh its first level cache (configuration settings). Useful only for clustered environments.

EAR Directory

The "deployed" or "running" version of LAMS will go here. It is usually <JBOSS directory>/server/default/deploy/lams.ear. If this is wrong then the export portfolio will not work correctly.

Enable remote server user registration *

Enable API access to create users remotely.

Show full error message (stack trace)

Display error message when an exception occurrs.

Number of failed logins before locking account *

Number of failed attempts before locking an acccount.

Number of minutes to lock account for *

Number of minutes to lockup an account for after a certain number of failed attempts.

Help URL

This website! Defaults to

Server URL

ServerURL must be set to the url you intend to use to run LAMS. If you put one url here, and then access LAMS via another url the look and feel will be wrong as the stylesheets will not load properly.

Server URL Context Path

This is the part of the ServerURL that comes after the http://<server:port>/. For example, if your ServerURL is "http://localhost:8080/lams/" then the ServerURLContextPath must be "lams/". If your ServerURL is "" then the ServerURLContextPath must be "rams/". This is used to build paths to the HTML editor, so if it is wrong then the HTML editor will not work.

Site name

LAMS instance name.

Temporary Files Directory

Location of temporary files. Should be allocated to an area with plenty of disk space. These files can be deleted if they are more than a couple of days old.

Inactive User Timeout

Number of seconds until an inactive user's session should timeout. Defaults to 10800 (3 hours).


Overall version string identifying LAMS. Displayed on the login screen. Value set when a release is done.

Uploaded Files



Content Repository Directory

This is where all uploaded files are stored, so it needs to be on a disk with plenty of space.

Executable extensions

Prevents files with these extensions to be uploaded into LAMS.

Maximum Memory Used When Uploading

Maximum amount of memory that should be used when user's uploading files. If the file is larger than this, then it is temporarily written to disk.

Maximum Upload Size

Maximum size of file uploaded by a learner. Given in bytes. Defaults to 10485760 (10 MB).

Maximum Large Upload Size

Maximum size of file uploaded in special areas where a larger file is permitted (e.g. authoring). Given in bytes. Defaults to 104857600 (100 MB).




Authoring Client Version

Version string identifying the build of the Authoring Flash client. Value set when LAMS is compiled.

Language Pack Install Date

Date when last language pack was installed. Used to trigger the download of new language files to the Flash clients. Should be set when new language packs are installed.

Learner Client Version

Version string identifying the build of the Learner Flash client. Value set when LAMS is compiled.

Monitor Client Version

Version string identifying the build of the Monitoring Flash client. Value set when LAMS is compiled.

Server Version Number

Version string identifying server component version. Value set when LAMS is compiled.

Timezone management

Dates and time in LAMS is displayed according to the user's preferred timezone. As such, the system administrator can set which timezones are available for users to choose from.

Additionally, a default timezone is set for the server that might or might not be the internal server timezone.

To set the server default timezone, in the System admin menu, select the Timezone management option.

The timezone management page will allow the administrator to select the server timezone by clicking set timezone (if not set it will default to server host timezone).

To select which available options would be given to other users within LAMS, the administrator can select from the list of timezones.

Once the options are selected, click save to persist.

If the option to modify the user's profile is enable (see configuration settings), then users will be able to select from the list of timezone options enabled by the sysadmin.

Maintain login page

To modify the LAMS front page, in the sysadmin menu, an administrator can modify the the front page content.
In the sysadmin menu, select Maintain login page:

Then edit the front page content and save to persist changes.

  • No labels