Summative exams are a stressful time for many students and sometime a candidate may not be able to log in because they forget their password. Rather than turn the student away it is important that they get the opportunity to take the online assessment. To solve the problem of how to authenticate they can use one of 100 system guest accounts.
How they Work
- In /config/config.inc.php the following line must be set in the $authentication array:
array('guestlogin', array(), 'Guest Login'),
- A check is made at first log in if a Progress Test or Summative Exam is live and the IP address (or client name) of the current user's computer matches that of the computer lab which is assigned to the currently running assessments.
- Student clicks on 'Guest Login' button and is taken to /users/guest_account.php
- guest_account.php will query the database and work out which guest account is free, starting at one.
- It will then reserve this account by inserting a record into temp_users table with NULLs. This stops another user stealing this account before the first user has had time to enter their details. At the time of account reservation the system will reset the password to a random colour and number so students cannot keep using the same guest account for all their exams.
- Student enters their title, first name, surname, etc into the form and clicks 'OK' button.
- guest_account will then insert the student's personal details into the reserved account.
- Student is give the name of the account to use (e.g. user5) and shown a generated password.
In the Class Totals report the function check_temp_account_warnings() is called in class_totals.class.php to display a banner at the top of the report if their are any student who have taken the exam with a guest account. A member of staff would then click on a student in the list and from the popup menu select 'Re-assign to User...'. This will call
check_reassign_script.php which will allow the member of staff to pick the student to assign the guest account answers/marks to. This will then call
do_reassign_script.php which will:
- Work out the userID of the 'real' candidate
- Update log_metadata record for the guest account and substitute in the real userID.
- Update textbox_marking record just in case textbox questions have been marked before the guest account has been reassigned.
- Update student_notes record for the guest account and substitute in the real userID.
- Record in track_changes table details of the reassignment process.
- Delete the temp_user record (the guest account).
- Change the password of the guest account to blank. Users cannot log in with blank passwords.