Source for file regenrol_linker.php
Documentation is available at regenrol_linker.php
// This script is part of the Sloodle project
* Registration and enrolment linker script.
* Allows scripts in-world to initiate manual registration and enrolment.
* @package sloodleregenrol
* @copyright Copyright (c) 2007-8 Sloodle (various contributors)
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU GPL v3
* @contributor Edmund Edgar
* @contributor Peter R. Bloomfield
* The following parameters are required:
* sloodlecontrollerid = the ID of the controller to connect to
* sloodlepwd = password for authentication (either a prim password or an object-specific session key)
* sloodlemode = indicates the mode: "reg", "enrol", or "regenrol"
* sloodleuuid = UUID of the avatar
* sloodleavname = name of the avatar
* If successful, the status code returned will be 1 and the data line will contain a URL to forward the user to.
* If nothing needs done because the user is already registered, then status code 301 is returned.
* If nothing needs done because the user is already enrolled, then status code 401 is returned.
* If the user cannot be enrolled because they are not yet registered, then status code -321.
/** Lets Sloodle know we are in a linker script. */
define('SLOODLE_LINKER_SCRIPT', true);
/** Grab the Sloodle/Moodle configuration. */
require_once('../sl_config.php');
/** Include the Sloodle PHP API. */
require_once(SLOODLE_LIBROOT.
'/sloodle_session.php');
// Authenticate the request
$sloodle->authenticate_request();
// Attempt to authenticate the user, but do not allow auto-registration/enrolment
$sloodle->validate_user(false, true, true);
$is_registered =
$sloodle->user->is_user_loaded();
$is_enrolled =
$sloodle->user->is_enrolled($sloodle->course->get_course_id());
// Make sure UUID and avatar name were specified
$sloodleuuid =
$sloodle->request->get_avatar_uuid(TRUE);
$sloodleavname =
$sloodle->request->get_avatar_name(TRUE);
$sloodlemode =
$sloodle->request->required_param('sloodlemode');
// If the mode is 'regenrol', but the user is already registered,
// then just do enrolment
if ($sloodlemode ==
'regenrol' &&
$is_registered) $sloodlemode =
'enrol';
// What mode has been requested?
case 'reg':
case 'regenrol':
// Is the user already registered?
$sloodle->response->set_status_code(301);
$sloodle->response->set_status_descriptor('MISC_REGISTER');
$pa =
$sloodle->user->add_pending_avatar($sloodleuuid, $sloodleavname);
$sloodle->response->set_status_code(-
322);
$sloodle->response->set_status_descriptor('MISC_REGISTER');
$sloodle->response->add_data_line('Failed to add pending avatar details.');
// Construct and return a registration URL
$url =
SLOODLE_WWWROOT.
"/login/sl_welcome_reg.php?sloodleuuid=$sloodleuuid&sloodlelst={$pa->lst}";
if ($sloodlemode ==
'regenrol') $url .=
'&sloodlecourseid='.
$sloodle->course->get_course_id();
$sloodle->response->set_status_code(1);
$sloodle->response->set_status_descriptor('OK');
$sloodle->response->add_data_line($url);
// Is the user registered?
$sloodle->response->set_status_code(-
321);
$sloodle->response->set_status_descriptor('MISC_REGISTER');
$sloodle->response->add_data_line('Enrolment failed -- user is not yet registered.');
// Is the user already enrolled?
$sloodle->response->set_status_code(401);
$sloodle->response->set_status_descriptor('MISC_ENROL');
// Construct and return an enrolment URL
$sloodle->response->set_status_code(1);
$sloodle->response->set_status_descriptor('OK');
$sloodle->response->add_data_line("{
$CFG->wwwroot}/course/enrol.php?id=
".
$sloodle->course->get_course_id());
$sloodle->response->set_status_code(-
811);
$sloodle->response->set_status_descriptor('REQUEST');
$sloodle->response->add_data_line("Mode '$sloodlemode' unrecognised.");
$sloodle->response->render_to_output();
Documentation generated on Mon, 07 Jul 2008 12:33:12 +0100 by phpDocumentor 1.4.0