MDL-14679 towards enrol conversion

This commit is contained in:
skodak
2008-06-02 21:02:52 +00:00
parent f28f2d9022
commit 50c5bef452
16 changed files with 243 additions and 253 deletions
+79 -73
View File
@@ -6,13 +6,13 @@ class enrolment_plugin_database {
var $log;
/*
/**
* For the given user, let's go out and look in an external database
* for an authoritative list of enrolments, and then adjust the
* local Moodle assignments to match.
*/
function setup_enrolments(&$user) {
global $CFG;
global $CFG, $DB;
// NOTE: if $this->enrol_connect() succeeds you MUST remember to call
// $this->enrol_disconnect() as it is doing some nasty vodoo with $CFG->prefix
@@ -26,7 +26,7 @@ function setup_enrolments(&$user) {
// we execute the below code for every role type. Otherwise we just
// execute it once with null (hence the dummy array).
$roles = !empty($CFG->enrol_db_remoterolefield) && !empty($CFG->enrol_db_localrolefield)
? get_records('role')
? $DB->get_records('role')
: array(null);
//error_log('[ENROL_DB] found ' . count($roles) . ' roles:');
@@ -46,7 +46,7 @@ function setup_enrolments(&$user) {
/// Check if a particular role has been forced by the plugin site-wide
/// (if we aren't doing a role-based select)
if (!$have_role && $CFG->enrol_db_defaultcourseroleid) {
$role = get_record('role', 'id', $CFG->enrol_db_defaultcourseroleid);
$role = $DB->get_record('role', array('id'=>$CFG->enrol_db_defaultcourseroleid));
}
/// Whether to fetch the default role on a per-course basis (below) or not.
@@ -68,11 +68,11 @@ function setup_enrolments(&$user) {
// We'll use this to see what to add and remove
$existing = $role
? get_records_sql("
SELECT * FROM {$CFG->prefix}role_assignments
WHERE userid = {$user->id}
AND roleid = {$role->id}")
: get_records('role_assignments', 'userid', $user->id);
? $DB->get_records_sql("SELECT *
FROM {role_assignments}
WHERE userid = ? AND roleid = ?",
array($user->id, $role->id))
: $DB->get_records('role_assignments', array('userid'=>$user->id));
if (!$existing) {
$existing = array();
@@ -92,7 +92,7 @@ function setup_enrolments(&$user) {
//error_log('[ENROL_DB] Found '.count($existing).' existing roles and '.$count.' in external database');
foreach ($courselist as $coursefield) { /// Check the list of courses against existing
$course = get_record('course', $CFG->enrol_localcoursefield, $coursefield);
$course = $DB->get_record('course', array($CFG->enrol_localcoursefield=>$coursefield));
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
if (debugging('',DEBUG_ALL)) {
@@ -107,7 +107,7 @@ function setup_enrolments(&$user) {
$course->fullname = $coursefield;
$course->shortname = $coursefield;
if (!($newcourseid = $this->create_course($course, true)
and $course = get_record( 'course', 'id', $newcourseid))) {
and $course = $DB->get_record( 'course', array('id'=>$newcourseid)))) {
error_log( "Creating course $coursefield failed");
continue; // nothing left to do...
}
@@ -173,8 +173,7 @@ function setup_enrolments(&$user) {
* used.
*/
function sync_enrolments($role = null) {
global $CFG;
global $db;
global $CFG, $db, $DB;
error_reporting(E_ALL);
// Connect to the external database
@@ -197,7 +196,7 @@ function sync_enrolments($role = null) {
if (!$have_role) {
if (!empty($CFG->enrol_db_defaultcourseroleid)
and $role = get_record('role', 'id', $CFG->enrol_db_defaultcourseroleid)) {
and $role = $DB->get_record('role', array('id'=>$CFG->enrol_db_defaultcourseroleid))) {
echo "=== Using enrol_db_defaultcourseroleid: {$role->id} ({$role->shortname}) ===\n";
} elseif (isset($role)) {
echo "!!! WARNING: Role specified by caller, but no (or invalid) role configuration !!!\n";
@@ -219,7 +218,7 @@ function sync_enrolments($role = null) {
return true;
}
begin_sql();
$DB->begin_sql();
$extcourses = array();
while ($extcourse_obj = rs_fetch_next_record($rs)) { // there are more course records
$extcourse = $extcourse_obj->{$CFG->enrol_remotecoursefield};
@@ -227,9 +226,7 @@ function sync_enrolments($role = null) {
// does the course exist in moodle already?
$course = false;
$course = get_record( 'course',
$CFG->enrol_localcoursefield,
$extcourse );
$course = $DB->get_record('course', array($CFG->enrol_localcoursefield=>$extcourse));
if (!is_object($course)) {
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
@@ -245,7 +242,7 @@ function sync_enrolments($role = null) {
$course->fullname = $extcourse;
$course->shortname = $extcourse;
if (!($newcourseid = $this->create_course($course, true)
and $course = get_record( 'course', 'id', $newcourseid))) {
and $course = $DB->get_record('course', array('id'=>$newcourseid)))) {
error_log( "Creating course $extcourse failed");
continue; // nothing left to do...
}
@@ -296,15 +293,23 @@ function sync_enrolments($role = null) {
// correctly.
//
if (!$CFG->enrol_db_disableunenrol) {
$to_prune = get_records_sql("
SELECT ra.*
FROM {$CFG->prefix}role_assignments ra
JOIN {$CFG->prefix}user u ON ra.userid = u.id
WHERE ra.enrol = 'database'
AND ra.contextid = {$context->id}
AND ra.roleid = ". $role->id . ($extenrolments
? " AND u.{$CFG->enrol_localuserfield} NOT IN (".join(", ", array_map(array(&$db, 'quote'), $extenrolments)).")"
: ''));
if ($extenrolments) {
list($extlist, $params) = $DB->get_in_or_equal($extenrolments, SQL_PARAMS_NAMED, 'e0', false);
$extsql = "AND u.{$CFG->enrol_localuserfield} $extlist";
} else {
$extsql = "";
$params = array();
}
$params['roleid'] = $role->id;
$params['contextid'] = $context->id;
$to_prune = $DB->get_records_sql("
SELECT ra.*
FROM {role_assignments} ra
JOIN {user} u ON ra.userid = u.id
WHERE ra.enrol = 'database'
AND ra.contextid = :contextid
AND ra.roleid = :roleid", $params);
if ($to_prune) {
foreach ($to_prune as $role_assignment) {
@@ -324,28 +329,26 @@ function sync_enrolments($role = null) {
foreach ($extenrolments as $member) {
// Get the user id and whether is enrolled in one fell swoop
$sql = "
SELECT u.id AS userid, ra.id AS enrolmentid
FROM {$CFG->prefix}user u
LEFT OUTER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
AND ra.roleid = {$role->id}
AND ra.contextid = {$context->id}
WHERE u.{$CFG->enrol_localuserfield} = ".$db->quote($member) .
" AND (u.deleted IS NULL OR u.deleted=0) ";
SELECT u.id, ra.id AS enrolmentid
FROM {user} u
LEFT JOIN {role_assignments} ra ON u.id = ra.userid
AND ra.roleid = ?
AND ra.contextid = ?
WHERE u.{$CFG->enrol_localuserfield} = ?
AND (u.deleted IS NULL OR u.deleted=0)";
$ers = $db->Execute($sql);
if (!$ers) {
trigger_error($db->ErrorMsg() .' STATEMENT: '. $sql);
$eusers = $DB->get_records($sql, array($role->id, $context->id, $member));
if ($eusers === false) {
trigger_error('error STATEMENT: '. $sql);
return false;
}
if ( $ers->EOF ) { // if this returns empty, it means we don't have the student record.
if (!$eusers) { // if this returns empty, it means we don't have the student record.
// should not happen -- but skip it anyway
trigger_error('weird! no user record entry?');
continue;
}
$user_obj = rs_fetch_record($ers);
$userid = $user_obj->userid;
$userid = $user_obj->id;
$enrolmentid = $user_obj->enrolmentid;
rs_close($ers); // release the handle
if ($enrolmentid) { // already enrolled - skip
continue;
@@ -373,39 +376,44 @@ function sync_enrolments($role = null) {
// correctly.
//
if (!$CFG->enrol_db_disableunenrol) {
if ($extcourses) {
list($extlist, $params) = $DB->get_in_or_equal($extcourses, SQL_PARAMS_QM, 'e0', false);
$extsql = "AND u.{$CFG->enrol_localcoursefield} $extlist";
} else {
$extsql = "";
$params = array();
}
$params['roleid'] = $role->id;
$params['contextid'] = $context->id;
$sql = "
SELECT ra.roleid, ra.userid, ra.contextid
FROM {$CFG->prefix}role_assignments ra
JOIN {$CFG->prefix}context cn ON cn.id = ra.contextid
JOIN {$CFG->prefix}course c ON c.id = cn.instanceid
WHERE ra.enrol = 'database'
AND cn.contextlevel = ".CONTEXT_COURSE." " .
($have_role ? ' AND ra.roleid = '.$role->id : '') .
($extcourses
? " AND c.{$CFG->enrol_localcoursefield} NOT IN (" . join(",", array_map(array(&$db, 'quote'), $extcourses)) . ")"
: '');
FROM {role_assignments} ra
JOIN {context} cn ON cn.id = ra.contextid
JOIN {course} c ON c.id = cn.instanceid
WHERE ra.enrol = 'database'
AND cn.contextlevel = ".CONTEXT_COURSE." " .
($have_role ? " AND ra.roleid = :roleid " : '') ."
$extsql";
$ers = $db->Execute($sql);
if (!$ers) {
trigger_error($db->ErrorMsg() .' STATEMENT: '. $sql);
if (!$ers = $DB->get_recordset_sql($sql, $params)) {
trigger_error('error STATEMENT: '. $sql);
return false;
}
if ( !$ers->EOF ) {
while ($user_obj = rs_fetch_next_record($ers)) {
$roleid = $user_obj->roleid;
$user = $user_obj->userid;
$contextid = $user_obj->contextid;
if (role_unassign($roleid, $user, 0, $contextid)){
error_log( "Unassigned role {$roleid} from user $user in context $contextid");
} else {
error_log( "Failed unassign role {$roleid} from user $user in context $contextid");
}
foreach ($ers as $user_obj) {
$roleid = $user_obj->roleid;
$user = $user_obj->userid;
$contextid = $user_obj->contextid;
if (role_unassign($roleid, $user, 0, $contextid)){
error_log( "Unassigned role {$roleid} from user $user in context $contextid");
} else {
error_log( "Failed unassign role {$roleid} from user $user in context $contextid");
}
rs_close($ers); // release the handle
}
$ers->close(); // release the handle
}
commit_sql();
$DB->commit_sql();
// we are done now, a bit of housekeeping
fix_course_sortorder();
@@ -543,11 +551,11 @@ function process_config($config) {
// you will want to call fix_course_sortorder() after your are done
// with course creation
function create_course ($course,$skip_fix_course_sortorder=0){
global $CFG;
global $CFG, $DB;
// define a template
if(!empty($CFG->enrol_db_template)){
$template = get_record("course", 'shortname', $CFG->enrol_db_template);
$template = $DB->get_record("course", array('shortname'=>$CFG->enrol_db_template));
$template = (array)$template;
} else {
$site = get_site();
@@ -583,9 +591,7 @@ function create_course ($course,$skip_fix_course_sortorder=0){
}
// define the sortorder
$sort = get_field_sql('SELECT COALESCE(MAX(sortorder)+1, 100) AS max ' .
' FROM ' . $CFG->prefix . 'course ' .
' WHERE category=' . $course->category);
$sort = $DB->get_field_sql('SELECT COALESCE(MAX(sortorder)+1, 100) AS max FROM {course} WHERE category= ?', array($course->category));
$course->sortorder = $sort;
// override with local data
@@ -601,11 +607,11 @@ function create_course ($course,$skip_fix_course_sortorder=0){
$course->shortname = substr($course->shortname, 0, 100);
// store it and log
if ($newcourseid = insert_record("course", addslashes_object($course))) { // Set up new course
if ($newcourseid = $DB->insert_record("course", $course)) { // Set up new course
$section = NULL;
$section->course = $newcourseid; // Create a default section.
$section->section = 0;
$section->id = insert_record("course_sections", $section);
$section->id = $DB->insert_record("course_sections", $section);
$page = page_create_object(PAGE_COURSE_VIEW, $newcourseid);
blocks_repopulate_page($page); // Return value no
+1 -1
View File
@@ -27,7 +27,7 @@
// role and update it. Otherwise, just got through once (with no role
// specified).
$roles = !empty($CFG->enrol_db_remoterolefield) && !empty($CFG->enrol_db_localrolefield)
? get_records('role')
? $DB->get_records('role')
: array(null);
foreach ($roles as $role) {
+10 -7
View File
@@ -13,7 +13,7 @@ class enrolment_plugin_flatfile {
/// Override the base config_form() function
function config_form($frm) {
global $CFG;
global $CFG, $DB;
$vars = array('enrol_flatfilelocation', 'enrol_mailstudents', 'enrol_mailteachers', 'enrol_mailadmins');
foreach ($vars as $var) {
@@ -22,7 +22,7 @@ function config_form($frm) {
}
}
$roles = get_records('role', '', '', '', 'id, name, shortname');
$roles = $DB->get_records('role', null, '', 'id, name, shortname');
$ffconfig = get_config('enrol_flatfile');
$frm->enrol_flatfilemapping = array();
@@ -40,6 +40,7 @@ function config_form($frm) {
/// Override the base process_config() function
function process_config($config) {
global $DB;
if (!isset($config->enrol_flatfilelocation)) {
$config->enrol_flatfilelocation = '';
@@ -61,7 +62,7 @@ function process_config($config) {
}
set_config('enrol_mailadmins', $config->enrol_mailadmins);
foreach(get_records('role', '', '', '', 'id, shortname') as $id => $role) {
foreach($DB->get_records('role', null, '', 'id, shortname') as $id => $role) {
if (isset($config->{"enrol_flatfilemapping_{$id}"})) {
set_config('map_'.$role->shortname, $config->{"enrol_flatfilemapping_{$id}"}, 'enrol_flatfile');
} else {
@@ -91,7 +92,7 @@ function get_access_icons($course) {
* endtime = end time (in seconds since epoch) - optional
*/
function cron() {
global $CFG;
global $CFG, $DB;
if (empty($CFG->enrol_flatfilelocation)) {
$filename = "$CFG->dataroot/1/enrolments.txt"; // Default location
@@ -157,13 +158,13 @@ function get_access_icons($course) {
continue;
}
if (! $user = get_record("user", "idnumber", $fields[2]) ) {
if (! $user = $DB->get_record("user", array("idnumber"=>$fields[2]))) {
$this->log .= "Unknown user idnumber in field 3 - ignoring line\n";
continue;
}
if (! $course = get_record("course", "idnumber", $fields[3]) ) {
if (! $course = $DB->get_record("course", array("idnumber"=>$fields[3]))) {
$this->log .= "Unknown course idnumber in field 4 - ignoring line\n";
continue;
}
@@ -265,8 +266,10 @@ function get_access_icons($course) {
* @return array ($roles, $rolemap)
*/
function get_roles() {
global $DB;
// Get a list of all the roles in the database, indexed by their short names.
$roles = get_records('role', '', '', '', 'shortname, id');
$roles = $DB->get_records('role', null, '', 'shortname, id');
array_walk($roles, create_function('&$value', '$value = $value->id;'));
// Get any name mappings. These will be of the form 'map_shortname' => 'flatfilename'.
+26 -26
View File
@@ -439,7 +439,7 @@ function get_recstatus($tagdata, $tagname){
* @param string $tagconents The raw contents of the XML element
*/
function process_group_tag($tagcontents){
global $CFG;
global $CFG, $DB;
// Process tag contents
unset($group);
@@ -482,7 +482,7 @@ function process_group_tag($tagcontents){
// Third, check if the course(s) exist
foreach($group->coursecode as $coursecode){
$coursecode = trim($coursecode);
if(!get_field('course', 'id', 'idnumber', $coursecode)) {
if(!$DB->get_field('course', 'id', array('idnumber'=>$coursecode))) {
if(!$CFG->enrol_createnewcourses) {
$this->log_line("Course $coursecode not found in Moodle's course idnumbers.");
} else {
@@ -510,13 +510,13 @@ function process_group_tag($tagcontents){
// Handle course categorisation (taken from the group.org.orgunit field if present)
if(strlen($group->category)>0){
// If the category is defined and exists in Moodle, we want to store it in that one
if($catid = get_field('course_categories', 'id', 'name', addslashes($group->category))){
if($catid = $DB->get_field('course_categories', 'id', array('name'=>$group->category))){
$course->category = $catid;
}elseif($CFG->enrol_createnewcategories){
// Else if we're allowed to create new categories, let's create this one
$newcat->name = $group->category;
$newcat->visible = 0;
if($catid = insert_record('course_categories', $newcat)){
if($catid = $DB->insert_record('course_categories', $newcat)){
$course->category = $catid;
$this->log_line("Created new (hidden) category, #$catid: $newcat->name");
}else{
@@ -534,9 +534,7 @@ function process_group_tag($tagcontents){
$course->startdate = time();
$course->numsections = 1;
// Choose a sort order that puts us at the start of the list!
$sortinfo = get_record_sql('SELECT MIN(sortorder) AS min,
MAX(sortorder) AS max
FROM ' . $CFG->prefix . 'course WHERE category<>0');
$sortinfo = $DB->get_record_sql('SELECT MIN(sortorder) AS min, MAX(sortorder) AS max FROM {course} WHERE category<>0');
if (is_object($sortinfo)) { // no courses?
$max = $sortinfo->max;
$min = $sortinfo->min;
@@ -545,7 +543,7 @@ function process_group_tag($tagcontents){
}else{
$course->sortorder = 1000;
}
if($course->id = insert_record('course', addslashes_object($course))){
if($course->id = $DB->insert_record('course', $course)){
// Setup the blocks
$page = page_create_object(PAGE_COURSE_VIEW, $course->id);
@@ -554,7 +552,7 @@ function process_group_tag($tagcontents){
$section = new object();
$section->course = $course->id; // Create a default section.
$section->section = 0;
$section->id = insert_record("course_sections", $section);
$section->id = $DB->insert_record("course_sections", $section);
add_to_log(SITEID, "course", "new", "view.php?id=$course->id", "$course->fullname (ID $course->id)");
@@ -565,7 +563,7 @@ function process_group_tag($tagcontents){
}
}elseif($recstatus==3 && ($courseid = get_field('course', 'id', 'idnumber', $coursecode))){
// If course does exist, but recstatus==3 (delete), then set the course as hidden
set_field('course', 'visible', '0', 'id', $courseid);
$DB->set_field('course', 'visible', '0', array('id'=>$courseid));
}
} // End of foreach(coursecode)
}
@@ -576,7 +574,7 @@ function process_group_tag($tagcontents){
* @param string $tagconents The raw contents of the XML element
*/
function process_person_tag($tagcontents){
global $CFG;
global $CFG, $DB;
if(preg_match('{<sourcedid>.*?<id>(.+?)</id>.*?</sourcedid>}is', $tagcontents, $matches)){
$person->idnumber = trim($matches[1]);
@@ -630,7 +628,7 @@ function process_person_tag($tagcontents){
if($CFG->enrol_imsdeleteusers){ // If we're allowed to delete user records
// Make sure their "deleted" field is set to one
set_field('user', 'deleted', 1, 'username', $person->username);
$DB->set_field('user', 'deleted', 1, array('username'=>$person->username));
$this->log_line("Marked user record for user '$person->username' (ID number $person->idnumber) as deleted.");
}else{
$this->log_line("Ignoring deletion request for user '$person->username' (ID number $person->idnumber).");
@@ -640,14 +638,14 @@ function process_person_tag($tagcontents){
// If the user exists (matching sourcedid) then we don't need to do anything.
if(!get_field('user', 'id', 'idnumber', $person->idnumber) && $CFG->enrol_createnewusers){
if(!$DB->get_field('user', 'id', array('idnumber'=>$person->idnumber)) && $CFG->enrol_createnewusers){
// If they don't exist and haven't a defined username, we log this as a potential problem.
if((!isset($person->username)) || (strlen($person->username)==0)){
$this->log_line("Cannot create new user for ID # $person->idnumber - no username listed in IMS data for this person.");
}elseif(get_field('user', 'id', 'username', $person->username)){
} else if ($DB->get_field('user', 'id', array('username'=>$person->username))){
// If their idnumber is not registered but their user ID is, then add their idnumber to their record
set_field('user', 'idnumber', addslashes($person->idnumber), 'username', $person->username);
}else{
$DB->set_field('user', 'idnumber', $person->idnumber, array('username'=>$person->username));
} else {
// If they don't exist and they have a defined username, and $CFG->enrol_createnewusers == true, we create them.
$person->lang = 'manual'; //TODO: this needs more work due tu multiauth changes
@@ -655,7 +653,7 @@ function process_person_tag($tagcontents){
$person->confirmed = 1;
$person->timemodified = time();
$person->mnethostid = $CFG->mnet_localhost_id;
if($id = insert_record('user', addslashes_object($person))){
if($id = $DB->insert_record('user', addslashes_object($person))){
/*
Photo processing is deactivated until we hear from Moodle dev forum about modification to gdlib.
@@ -670,7 +668,7 @@ function process_person_tag($tagcontents){
//Llibreria creada per nosaltres mateixos.
require_once($CFG->dirroot.'/lib/gdlib.php');
if ($usernew->picture = save_profile_image($id, $person->urlphoto,'user')) {
set_field('user', 'picture', $usernew->picture, 'id', $id); /// Note picture in DB
$DB->set_field('user', 'picture', $usernew->picture, array('id'=>$id)); /// Note picture in DB
}
}
*/
@@ -683,7 +681,7 @@ function process_person_tag($tagcontents){
$this->log_line("User record already exists for user '$person->username' (ID number $person->idnumber).");
// Make sure their "deleted" field is set to zero.
set_field('user', 'deleted', 0, 'idnumber', $person->idnumber);
$DB->set_field('user', 'deleted', 0, array('idnumber'=>$person->idnumber));
}else{
$this->log_line("No user record found for '$person->username' (ID number $person->idnumber).");
}
@@ -698,7 +696,7 @@ function process_person_tag($tagcontents){
* @param string $tagconents The raw contents of the XML element
*/
function process_membership_tag($tagcontents){
global $CFG;
global $CFG, $DB;
$memberstally = 0;
$membersuntally = 0;
@@ -709,7 +707,7 @@ function process_membership_tag($tagcontents){
$ship->coursecode = ($CFG->enrol_truncatecoursecodes > 0)
? substr(trim($matches[1]), 0, intval($CFG->enrol_truncatecoursecodes))
: trim($matches[1]);
$ship->courseid = get_field('course', 'id', 'idnumber', $ship->coursecode);
$ship->courseid = $DB->get_field('course', 'id', array('idnumber'=>$ship->coursecode));
}
if($ship->courseid && preg_match_all('{<member>(.*?)</member>}is', $tagcontents, $membermatches, PREG_SET_ORDER)){
foreach($membermatches as $mmatch){
@@ -750,7 +748,7 @@ function process_membership_tag($tagcontents){
//print_r($rolecontext);
// Add or remove this student or teacher to the course...
$memberstoreobj->userid = get_field('user', 'id', 'idnumber', $member->idnumber);
$memberstoreobj->userid = $DB->get_field('user', 'id', array('idnumber'=>$member->idnumber));
$memberstoreobj->enrol = 'imsenterprise';
$memberstoreobj->course = $ship->courseid;
$memberstoreobj->time = time();
@@ -781,16 +779,16 @@ function process_membership_tag($tagcontents){
if(isset($groupids[$member->groupname])){
$member->groupid = $groupids[$member->groupname]; // Recall the group ID from cache if available
}else{
if($groupid = get_field('groups', 'id', 'name', addslashes($member->groupname), 'courseid', $ship->courseid)){
if($groupid = $DB->get_field('groups', 'id', 'name', $member->groupname, array('courseid'=>$ship->courseid))){
$member->groupid = $groupid;
$groupids[$member->groupname] = $groupid; // Store ID in cache
}else{
// Attempt to create the group
$group->name = addslashes($member->groupname);
$group->name = $member->groupname;
$group->courseid = $ship->courseid;
$group->timecreated = time();
$group->timemodified = time();
$groupid = insert_record('groups', $group);
$groupid = $DB->insert_record('groups', $group);
$this->log_line('Added a new group for this course: '.$group->name);
$groupids[$member->groupname] = $groupid; // Store ID in cache
$member->groupid = $groupid;
@@ -874,10 +872,12 @@ function decode_timeframe($string){ // Pass me the INNER CONTENTS of a <timefram
* how an IMS-E role corresponds to a Moodle role
*/
function load_role_mappings() {
global $DB;
$this->rolemappings = array();
foreach($this->imsroles as $imsrolenum=>$imsrolename) {
$this->rolemappings[$imsrolenum] = $this->rolemappings[$imsrolename]
= get_field('config', 'value', 'name', 'enrol_imse_imsrolemap' . $imsrolenum);
= $DB->get_field('config', 'value', array('name'=>'enrol_imse_imsrolemap' . $imsrolenum));
}
}
+1 -1
View File
@@ -61,7 +61,7 @@ if (!isset ($frm->enrol_ldap_course_summary_editlock)) {
}
// Roles
$roles = get_records('role');
$roles = $DB->get_records('role');
foreach($roles as $role) {
if (!isset($frm->{'enrol_ldap_contexts_role'.$role->id})) {
$frm->{'enrol_ldap_contexts_role'.$role->id} = '';
+33 -39
View File
@@ -12,7 +12,7 @@ class enrolment_plugin_ldap {
* This function syncs a user's enrolments with those on the LDAP server.
*/
function setup_enrolments(&$user) {
global $CFG;
global $CFG, $DB;
//error_log('[ENROL_LDAP] setup_enrolments called');
@@ -27,13 +27,13 @@ function setup_enrolments(&$user) {
// we are connected OK, continue...
// Get all the possible roles
$roles = get_records('role');
$roles = $DB->get_records('role');
// Make sure the config settings have been upgraded.
$this->check_legacy_config();
// Get the entire list of role assignments that currently exist for this user.
$roleassignments = get_records('role_assignments', 'userid', $user->id);
$roleassignments = $DB->get_records('role_assignments', array('userid'=>$user->id));
if (!$roleassignments) {
$roleassignments = array();
}
@@ -61,17 +61,13 @@ function setup_enrolments(&$user) {
}
// create the course ir required
$course_obj = get_record( 'course',
$this->enrol_localcoursefield,
$course_ext_id );
$course_obj = $DB->get_record('course', array($this->enrol_localcoursefield, $course_ext_id));
if (empty($course_obj)){ // course doesn't exist
if($CFG->enrol_ldap_autocreate){ // autocreate
error_log("[ENROL_LDAP] CREATE User $user->username enrolled to a nonexistant course $course_ext_id \n");
$newcourseid = $this->create_course($enrol);
$course_obj = get_record( 'course',
$this->enrol_localcoursefield,
$newcourseid);
$course_obj = $DB->get_record('course', array($this->enrol_localcoursefield=>$newcourseid));
} else {
error_log("[ENROL_LDAP] User $user->username enrolled to a nonexistant course $course_ext_id \n");
}
@@ -83,7 +79,7 @@ function setup_enrolments(&$user) {
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
//$courseroles = get_user_roles($context, $user->id);
if (!get_record('role_assignments', 'roleid', $role->id, 'userid', $user->id, 'contextid', $context->id)) {
if (!$DB->get_record('role_assignments', array('roleid'=>$role->id, 'userid'=>$user->id, 'contextid'=>$context->id))) {
//error_log("[ENROL_LDAP] Assigning role '{$role->name}' to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
if (!role_assign($role->id, $user->id, 0, $context->id, 0, 0, 0, 'ldap')){
error_log("[ENROL_LDAP] Failed to assign role '{$role->name}' to $user->id ($user->username) into course $course_obj->id ($course_obj->shortname)");
@@ -123,10 +119,10 @@ function setup_enrolments(&$user) {
/// sync enrolments with ldap, create courses if required.
function sync_enrolments($type, $enrol = false) {
global $CFG;
global $CFG, $DB;
// Get the role. If it doesn't exist, that is bad.
$role = get_record('role', 'shortname', $type);
$role = $DB->get_record('role', array('shortname'=>$type));
if (!$role) {
notify("No such role: $type");
return false;
@@ -212,14 +208,12 @@ function sync_enrolments($type, $enrol = false) {
print "== Synching $idnumber\n";
// does the course exist in moodle already?
$course_obj = false;
$course_obj = get_record( 'course',
$this->enrol_localcoursefield,
$idnumber );
$course_obj = $DB->get_record('course', array($this->enrol_localcoursefield=>$idnumber));
if (!is_object($course_obj)) {
// ok, now then let's create it!
print "Creating Course $idnumber...";
$newcourseid = $this->create_course($course, true); // we are skipping fix_course_sortorder()
$course_obj = get_record( 'course', 'id', $newcourseid);
$course_obj = $DB->get_record('course', array('id'=>$newcourseid));
if (is_object($course_obj)) {
print "OK!\n";
} else {
@@ -249,17 +243,19 @@ function sync_enrolments($type, $enrol = false) {
// hopefully they'll fit in the max buffer size for the RDBMS
$sql = '
SELECT enr.userid AS user, 1
FROM '.$CFG->prefix.'role_assignments enr
JOIN '.$CFG->prefix.'user usr ON usr.id=enr.userid
FROM {role_assignments} enr
JOIN {user} usr ON usr.id=enr.userid
WHERE enr.roleid = '.$role->id.'
AND enr.contextid = '.$context->id.'
AND enr.enrol = \'ldap\' ';
if (!empty($ldapmembers)) {
$sql .= 'AND usr.idnumber NOT IN (\''. join('\',\'', $ldapmembers).'\')';
list($ldapml, $params) = $DB->get_in_or_equal($ldapmembers, SQL_PARAMS_NAMED, 'm0', false);
$sql .= "AND usr.idnumber $ldapml";
} else {
print ("Empty enrolment for $course_obj->shortname \n");
$params = array();
}
$todelete = get_records_sql($sql);
$todelete = $DB->get_records_sql($sql, $params);
if(!empty($todelete)){
foreach ($todelete as $member) {
$member = $member->user;
@@ -275,18 +271,17 @@ function sync_enrolments($type, $enrol = false) {
// insert current enrolments
// bad we can't do INSERT IGNORE with postgres...
foreach ($ldapmembers as $ldapmember) {
$sql = 'SELECT id,1 FROM '.$CFG->prefix.'user '
." WHERE idnumber='$ldapmember'";
$member = get_record_sql($sql);
$sql = 'SELECT id,1 FROM {user} '
." WHERE idnumber=?";
$member = $DB->get_record_sql($sql, array($ldapmember));
// print "sql: $sql \nidnumber = $ldapmember \n" . var_dump($member);
if(empty($member) || empty($member->id)){
print "Could not find user $ldapmember, skipping\n";
continue;
}
$member = $member->id;
if (!get_record('role_assignments', 'roleid', $role->id,
'contextid', $context->id,
'userid', $member, 'enrol', 'ldap')){
if (!$DB->get_record('role_assignments', array('roleid'=>$role->id,
'contextid'=>$context->id, 'userid'=>$member, 'enrol'=>'ldap'))){
if (role_assign($role->id, $member, 0, $context->id, 0, 0, 0, 'ldap')){
print "Assigned role $type to $member ($ldapmember) for course $course_obj->id ($course_obj->shortname)\n";
} else {
@@ -323,6 +318,7 @@ function config_form($frm) {
/// Override the base process_config() function
function process_config($config) {
global $DB;
$this->check_legacy_config();
@@ -401,7 +397,7 @@ function process_config($config) {
}
set_config('enrol_ldap_autocreate', $config->enrol_ldap_autocreate);
$roles = get_records('role');
$roles = $DB->get_records('role');
foreach ($roles as $role) {
if (!isset($config->{'enrol_ldap_contexts_role'.$role->id})) {
$config->{'enrol_ldap_contexts_role'.$role->id} = '';
@@ -551,11 +547,11 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
// you will want to call fix_course_sortorder() after your are done
// with course creation
function create_course ($course_ext,$skip_fix_course_sortorder=0){
global $CFG;
global $CFG, $DB;
// override defaults with template course
if(!empty($CFG->enrol_ldap_template)){
$course = get_record("course", 'shortname', $CFG->enrol_ldap_template);
$course = $DB->get_record("course", array('shortname'=>$CFG->enrol_ldap_template));
unset($course->id); // so we are clear to reinsert the record
unset($course->sortorder);
} else {
@@ -593,7 +589,7 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
}
// define the sortorder (yuck)
$sort = get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM ' . $CFG->prefix . 'course WHERE category=' . $course->category);
$sort = $DB->get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM {course} WHERE category=?', array($course->category));
$sort = $sort->max;
$sort++;
$course->sortorder = $sort;
@@ -602,15 +598,13 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
$course->startdate = time();
$course->timecreated = time();
$course->visible = 1;
$course = addslashes_recursive($course);
// store it and log
if ($newcourseid = insert_record("course", $course)) { // Set up new course
if ($newcourseid = $DB->insert_record("course", $course)) { // Set up new course
$section = new object();
$section->course = $newcourseid; // Create a default section.
$section->section = 0;
$section->id = insert_record("course_sections", $section);
$section->id = $DB->insert_record("course_sections", $section);
$page = page_create_object(PAGE_COURSE_VIEW, $newcourseid);
blocks_repopulate_page($page); // Return value no
@@ -635,10 +629,10 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
* @uses $CFG
*/
function check_legacy_config () {
global $CFG;
global $CFG, $DB;
if (isset($CFG->enrol_ldap_student_contexts)) {
if ($student_role = get_record('role', 'shortname', 'student')) {
if ($student_role = $DB->get_record('role', array('shortname'=>'student'))) {
set_config('enrol_ldap_contexts_role'.$student_role->id, $CFG->enrol_ldap_student_contexts);
}
@@ -647,7 +641,7 @@ function check_legacy_config () {
if (isset($CFG->enrol_ldap_student_memberattribute)) {
if (isset($student_role)
or $student_role = get_record('role', 'shortname', 'student')) {
or $student_role = $DB->get_record('role', array('shortname'=>'student'))) {
set_config('enrol_ldap_memberattribute_role'.$student_role->id, $CFG->enrol_ldap_student_memberattribute);
}
@@ -655,7 +649,7 @@ function check_legacy_config () {
}
if (isset($CFG->enrol_ldap_teacher_contexts)) {
if ($teacher_role = get_record('role', 'shortname', 'teacher')) {
if ($teacher_role = $DB->get_record('role', array('shortname'=>'teacher'))) {
set_config('enrol_ldap_contexts_role'.$teacher_role->id, $CFG->enrol_ldap_student_contexts);
}
@@ -664,7 +658,7 @@ function check_legacy_config () {
if (isset($CFG->enrol_ldap_teacher_memberattribute)) {
if (isset($teacher_role)
or $teacher_role = get_record('role', 'shortname', 'teacher')) {
or $teacher_role = $DB->get_record('role', array('shortname'=>'teacher'))) {
set_config('enrol_ldap_memberattribute_role'.$teacher_role->id, $CFG->enrol_ldap_teacher_memberattribute);
}
+1 -1
View File
@@ -22,7 +22,7 @@
$enrol->check_legacy_config();
$roles = get_records('role');
$roles = $DB->get_records('role');
foreach ($roles as $role) {
$enrol->sync_enrolments($role->shortname, true);
}
+7 -6
View File
@@ -245,7 +245,7 @@ function process_config($config) {
* @return void
*/
function cron() {
global $CFG, $USER, $SITE;
global $CFG, $USER, $SITE, $DB;
if (!isset($CFG->lastexpirynotify)) {
set_config('lastexpirynotify', 0);
@@ -256,13 +256,13 @@ function cron() {
return;
}
if ($rs = get_recordset_select('course', 'enrolperiod > 0 AND expirynotify > 0 AND expirythreshold > 0')) {
if ($rs = $DB->get_recordset_select('course', 'enrolperiod > 0 AND expirynotify > 0 AND expirythreshold > 0')) {
$cronuser = clone($USER);
$admin = get_admin();
while($course = rs_fetch_next_record($rs)) {
foreach ($rs as $course) {
$a = new object();
$a->coursename = $course->shortname .'/'. $course->fullname; // must be processed by format_string later
$a->threshold = $course->expirythreshold / 86400;
@@ -279,10 +279,10 @@ function cron() {
continue;
}
if ($oldenrolments = get_records_sql("
if ($oldenrolments = $DB->get_records_sql("
SELECT u.*, ra.timeend
FROM {$CFG->prefix}user u
JOIN {$CFG->prefix}role_assignments ra ON (ra.userid = u.id)
FROM {user} u
JOIN {role_assignments} ra ON (ra.userid = u.id)
WHERE ra.contextid = $context->id
AND ra.timeend > 0 AND ra.timeend <= $expiry
AND ra.enrol = 'manual'")) {
@@ -338,6 +338,7 @@ function cron() {
}
$USER = $cronuser;
course_setup($course); // More environment
$rs->close();
}
set_config('lastexpirynotify', date('Ymd'));
+2 -2
View File
@@ -83,7 +83,7 @@ if ($form = data_submitted() and confirm_sesskey()) {
// setup arrays for allowed categories and courses
$categories = array();
if ($categories = get_records('course_categories', '', '', 'name', 'id, name')) {
if ($categories = $DB->get_records('course_categories', null, 'name', 'id, name')) {
$allowedcategories = array();
if (empty($CFG->enrol_mnet_allowed_categories)) {
$potentialcategories = $categories;
@@ -100,7 +100,7 @@ if ($categories = get_records('course_categories', '', '', 'name', 'id, name'))
}
}
$courses = array();
if ($courses = get_records('course', '', '', 'shortname', 'id, shortname')) {
if ($courses = $DB->get_records('course', null, 'shortname', 'id, shortname')) {
unset($courses[SITEID]); // never list or offer the siteid
$allowedcourses = array();
if (empty($CFG->enrol_mnet_allowed_courses)) {
+68 -82
View File
@@ -83,7 +83,7 @@ class enrolment_plugin_mnet {
* @return bool Whether the user can login from the remote host
*/
function available_courses() {
global $CFG;
global $CFG, $DB;
if (!empty($CFG->enrol_mnet_allow_allcourses)) {
@@ -104,21 +104,19 @@ class enrolment_plugin_mnet {
co.defaultrole AS defaultroleid,
r.name AS defaultrolename
FROM
{$CFG->prefix}course_categories ca
{course_categories} ca
JOIN
{$CFG->prefix}course co ON
ca.id = co.category
{course} co ON ca.id = co.category
LEFT JOIN
{$CFG->prefix}role r ON
r.id = co.defaultrole
{role} r ON r.id = co.defaultrole
WHERE
co.visible = '1' AND
co.enrollable = '1'
co.visible = 1 AND
co.enrollable = 1
ORDER BY
sortorder ASC
";
return get_records_sql($query);
return $DB->get_records_sql($query);
} elseif (!empty($CFG->enrol_mnet_allowed_categories)) {
@@ -132,7 +130,7 @@ class enrolment_plugin_mnet {
"SELECT
id, name
FROM
{$CFG->prefix}course_categories ca
{course_categories} ca
WHERE
ca.id IN ({$CFG->enrol_mnet_allowed_categories})
OR ( $cats )
@@ -142,7 +140,7 @@ class enrolment_plugin_mnet {
";
unset($cats);
$rs = get_records_sql($query);
$rs = $DB->get_records_sql($query);
if (!empty($rs)) {
$cats = array_keys($rs);
@@ -173,21 +171,19 @@ class enrolment_plugin_mnet {
co.defaultrole as defaultroleid,
r.name
FROM
{$CFG->prefix}course_categories ca
{course_categories} ca
JOIN
{$CFG->prefix}course co ON
ca.id = co.category
{course} co ON ca.id = co.category
LEFT JOIN
{$CFG->prefix}role r ON
r.id = co.defaultrole
{role} r ON r.id = co.defaultrole
WHERE
co.visible = '1' AND
co.enrollable = '1' $where
co.visible = 1 AND
co.enrollable = 1 $where
ORDER BY
sortorder ASC
";
return get_records_sql($query);
return $DB->get_records_sql($query);
} elseif (!empty($CFG->enrol_mnet_allowed_courses)) {
@@ -208,22 +204,20 @@ class enrolment_plugin_mnet {
co.defaultrole as defaultroleid,
r.name
FROM
{$CFG->prefix}course_categories ca
{course_categories} ca
JOIN
{$CFG->prefix}course co ON
ca.id = co.category
{course} co ON ca.id = co.category
LEFT JOIN
{$CFG->prefix}role r ON
r.id = co.defaultrole
{role} r ON r.id = co.defaultrole
WHERE
co.visible = '1' AND
co.enrollable = '1' AND
co.id in ({$CFG->enrol_mnet_allowed_courses})
co.visible = 1 AND
co.enrollable = 1 AND
co.id IN ({$CFG->enrol_mnet_allowed_courses})
ORDER BY
sortorder ASC
";
return get_records_sql($query);
return $DB->get_records_sql($query);
}
@@ -246,9 +240,9 @@ class enrolment_plugin_mnet {
* client machine
*/
function course_enrolments($courseid, $roles = '') {
global $MNET_REMOTE_CLIENT, $CFG;
global $MNET_REMOTE_CLIENT, $CFG, $DB;
if (! $course = get_record('course', 'id', $courseid) ) {
if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
return 'no course';
//error("That's an invalid course id");
}
@@ -264,11 +258,11 @@ class enrolment_plugin_mnet {
r.name,
r.shortname
FROM
{$CFG->prefix}role_assignments a,
{$CFG->prefix}role r,
{$CFG->prefix}user u
{role_assignments} a,
{role} r,
{user} u
WHERE
a.contextid = '{$context->id}' AND
a.contextid = {$context->id} AND
a.roleid = r.id AND
a.userid = u.id AND
u.mnethostid = '{$MNET_REMOTE_CLIENT->id}'
@@ -280,7 +274,7 @@ class enrolment_plugin_mnet {
a.roleid in ('".str_replace(',', "', '", $roles)."')";
}
$enrolments = get_records_sql($sql);
$enrolments = $DB->get_records_sql($sql);
$returnarray = array();
foreach($enrolments as $user) {
@@ -300,27 +294,27 @@ class enrolment_plugin_mnet {
* @return bool Whether the enrolment has been successful
*/
function enrol_user($user, $courseid) {
global $MNET, $MNET_REMOTE_CLIENT;
global $MNET, $MNET_REMOTE_CLIENT, $DB;
$userrecord = get_record('user','username',addslashes($user['username']), 'mnethostid',$MNET_REMOTE_CLIENT->id);
$userrecord = $DB->get_record('user',array('username'=>$user['username'], 'mnethostid'=>$MNET_REMOTE_CLIENT->id));
if ($userrecord == false) {
$userrecord = new stdClass();
$userrecord->username = addslashes($user['username']);
$userrecord->email = addslashes($user['email']);
$userrecord->firstname = addslashes($user['firstname']);
$userrecord->lastname = addslashes($user['lastname']);
$userrecord->username = $user['username'];
$userrecord->email = $user['email'];
$userrecord->firstname = $user['firstname'];
$userrecord->lastname = $user['lastname'];
$userrecord->mnethostid = $MNET_REMOTE_CLIENT->id;
if ($userrecord->id = insert_record('user', $userrecord)) {
$userrecord = get_record('user','id', $userrecord->id);
if ($userrecord->id = $DB->insert_record('user', $userrecord)) {
$userrecord = $DB->get_record('user', array('id'=>$userrecord->id));
} else {
// TODO: Error out
return false;
}
}
if (! $course = get_record('course', 'id', $courseid) ) {
if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
// TODO: Error out
return false;
}
@@ -343,15 +337,15 @@ class enrolment_plugin_mnet {
* @return bool Whether the user can login from the remote host
*/
function unenrol_user($user, $courseid) {
global $MNET_REMOTE_CLIENT;
global $MNET_REMOTE_CLIENT, $DB;
$userrecord = get_record('user','username',$user['username'], 'mnethostid',$MNET_REMOTE_CLIENT->id);
$userrecord = $DB->get_record('user', array('username'=>$user['username'], 'mnethostid'=>$MNET_REMOTE_CLIENT->id));
if ($userrecord == false) {
// TODO: Error out
}
if (! $course = get_record('course', 'id', $courseid) ) {
if (! $course = $DB->get_record('course', array('id'=>$courseid))) {
// TODO: Error out
}
@@ -381,23 +375,23 @@ class enrolment_plugin_mnet {
* @return array
*/
function list_remote_servers() {
global $CFG;
global $CFG, $DB;
$sql = "
SELECT DISTINCT
h.id,
h.name
FROM
{$CFG->prefix}mnet_host h,
{$CFG->prefix}mnet_host2service h2s,
{$CFG->prefix}mnet_service s
{mnet_host} h,
{mnet_host2service} h2s,
{mnet_service} s
WHERE
h.id = h2s.hostid AND
h2s.serviceid = s.id AND
s.name = 'mnet_enrol' AND
h2s.subscribe = 1";
$res = get_records_sql($sql);
$res = $DB->get_records_sql($sql);
if (is_array($res)) {
return $res;
} else {
@@ -412,9 +406,7 @@ class enrolment_plugin_mnet {
* @return array Whether the user can login from the remote host
*/
function fetch_remote_courses($mnethostid) {
global $CFG;
global $USER;
global $MNET;
global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// get the Service Provider info
@@ -435,9 +427,7 @@ class enrolment_plugin_mnet {
$courses = $mnetrequest->response;
// get the cached courses key'd on remote id - only need remoteid and id fields
$cachedcourses = get_records('mnet_enrol_course',
'hostid', $mnethostid,
'remoteid', 'remoteid, id' );
$cachedcourses = $DB->get_records('mnet_enrol_course', array('hostid'=>$mnethostid), 'remoteid', 'remoteid, id' );
// Update cache and transform $courses into objects
// in-place for the benefit of our caller...
@@ -459,22 +449,22 @@ class enrolment_plugin_mnet {
// sanitise strings for DB NOTE - these are not sane
// for printing, so we'll use a different object
$dbcourse = clone($course);
$dbcourse->cat_name = addslashes($dbcourse->cat_name);
$dbcourse->cat_description = addslashes($dbcourse->cat_description);
$dbcourse->fullname = addslashes($dbcourse->fullname);
$dbcourse->shortname = addslashes($dbcourse->shortname);
$dbcourse->idnumber = addslashes($dbcourse->idnumber);
$dbcourse->summary = addslashes($dbcourse->summary);
$dbcourse->currency = addslashes($dbcourse->currency);
$dbcourse->defaultrolename = addslashes($dbcourse->defaultrolename);
$dbcourse->cat_name = $dbcourse->cat_name;
$dbcourse->cat_description = $dbcourse->cat_description;
$dbcourse->fullname = $dbcourse->fullname;
$dbcourse->shortname = $dbcourse->shortname;
$dbcourse->idnumber = $dbcourse->idnumber;
$dbcourse->summary = $dbcourse->summary;
$dbcourse->currency = $dbcourse->currency;
$dbcourse->defaultrolename = $dbcourse->defaultrolename;
// insert or update
if (empty($cachedcourses[$course->remoteid])) {
$course->id = insert_record('mnet_enrol_course', $dbcourse);
$course->id = $DB->insert_record('mnet_enrol_course', $dbcourse);
} else {
$course->id = $cachedcourses[$course->remoteid]->id;
$cachedcourses[$course->remoteid]->seen=true;
update_record('mnet_enrol_course', $dbcourse);
$DB->update_record('mnet_enrol_course', $dbcourse);
}
// free tmp obj
unset($dbcourse);
@@ -490,7 +480,7 @@ class enrolment_plugin_mnet {
}
}
if (!empty($stale)) {
delete_records_select('mnet_enrol_course', 'id IN ('.join(',',$stale).')');
$DB->delete_records_select('mnet_enrol_course', 'id IN ('.join(',',$stale).')');
}
}
@@ -512,17 +502,15 @@ class enrolment_plugin_mnet {
* @return array Whether the user can login from the remote host
*/
function req_enrol_user($userid, $courseid) {
global $CFG;
global $USER;
global $MNET;
global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// Prepare a basic user record
// in case the remote host doesn't have it
$user = get_record('user', 'id', $userid, '','','','', 'username, email, firstname, lastname');
$user = $DB->get_record('user', array('id'=>$userid), 'username, email, firstname, lastname');
$user = (array)$user;
$course = get_record('mnet_enrol_course', 'id', $courseid);
$course = $DB->get_record('mnet_enrol_course', array('id'=>$courseid));
// get the Service Provider info
$mnet_sp = new mnet_peer();
@@ -544,7 +532,7 @@ class enrolment_plugin_mnet {
$assignment->courseid = $course->id;
$assignment->enroltype = 'mnet';
// TODO: other fields
if (insert_record('mnet_enrol_assignments', $assignment)) {
if ($DB->insert_record('mnet_enrol_assignments', $assignment)) {
return true;
}
}
@@ -560,16 +548,14 @@ class enrolment_plugin_mnet {
* @return array Whether the user can login from the remote host
*/
function req_unenrol_user($userid, $courseid) {
global $CFG;
global $USER;
global $MNET;
global $CFG, $USER, $MNET, $DB;
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
// in case the remote host doesn't have it
$user = get_record('user', 'id', $userid, '','','','', 'username, email');
$user = $DB->get_record('user', array('id'=>$userid), 'username, email');
$user = $user->username;
$course = get_record('mnet_enrol_course', 'id', $courseid);
$course = $DB->get_record('mnet_enrol_course', array('id'=>$courseid));
// get the Service Provider info
$mnet_sp = new mnet_peer();
@@ -589,8 +575,8 @@ class enrolment_plugin_mnet {
if ($mnetrequest->send($mnet_sp) === true) {
if ($mnetrequest->response == true) {
// remove enrolment cached in mnet_enrol_assignments
delete_records_select('mnet_enrol_assignments',
"userid={$userid} AND courseid={$course->id}");
$DB->delete_records_select('mnet_enrol_assignments',
"userid=? AND courseid=?", array($userid, $course->id));
return true;
}
+7 -7
View File
@@ -46,12 +46,12 @@
/// get the user and course records
if (! $user = get_record("user", "id", $data->userid) ) {
if (! $user = $DB->get_record("user", array("id"=>$data->userid))) {
email_paypal_error_to_admin("Not a valid user id", $data);
die;
}
if (! $course = get_record("course", "id", $data->courseid) ) {
if (! $course = $DB->get_record("course", array("id"=>$data->courseid))) {
email_paypal_error_to_admin("Not a valid course id", $data);
die;
}
@@ -119,7 +119,7 @@
if ($existing = get_record("enrol_paypal", "txn_id", addslashes($data->txn_id))) { // Make sure this transaction doesn't exist already
if ($existing = $DB->get_record("enrol_paypal", array("txn_id"=>$data->txn_id))) { // Make sure this transaction doesn't exist already
email_paypal_error_to_admin("Transaction $data->txn_id is being repeated!", $data);
die;
@@ -131,12 +131,12 @@
}
if (!$user = get_record('user', 'id', $data->userid)) { // Check that user exists
if (!$user = $DB->get_record('user', array('id'=>$data->userid))) { // Check that user exists
email_paypal_error_to_admin("User $data->userid doesn't exist", $data);
die;
}
if (!$course = get_record('course', 'id', $data->courseid)) { // Check that course exists
if (!$course = $DB->get_record('course', array('id'=>$data->courseid))) { // Check that course exists
email_paypal_error_to_admin("Course $data->courseid doesn't exist", $data);;
die;
}
@@ -157,7 +157,7 @@
// ALL CLEAR !
if (!insert_record("enrol_paypal", addslashes_object($data))) { // Insert a transaction record
if (!$DB->insert_record("enrol_paypal", $data)) { // Insert a transaction record
email_paypal_error_to_admin("Error while trying to insert valid transaction", $data);
}
@@ -195,7 +195,7 @@
} else if (strcmp ($result, "INVALID") == 0) { // ERROR
insert_record("enrol_paypal", addslashes_object($data), false);
$DB->insert_record("enrol_paypal", $data, false);
email_paypal_error_to_admin("Received an invalid payment notification!! (Fake payment?)", $data);
}
}
+1 -1
View File
@@ -5,7 +5,7 @@
$id = required_param('id', PARAM_INT);
if (!$course = get_record("course", "id", $id)) {
if (!$course = $DB->get_record("course", array("id"=>$id))) {
redirect($CFG->wwwroot);
}
+1 -1
View File
@@ -26,7 +26,7 @@
$confirm = optional_param('confirm', 0, PARAM_BOOL);
if (! $course = get_record("course", "id", $id) ) {
if (! $course = $DB->get_record("course", array("id"=>$id))) {
print_error('invalidcourseid');
}
+1 -1
View File
@@ -26,7 +26,7 @@
$confirm = optional_param('confirm', 0, PARAM_BOOL);
if (! $course = get_record("course", "id", $id) ) {
if (! $course = $DB->get_record("course", array("id"=>$id))) {
print_error("invalidcourseid");
}
+2 -2
View File
@@ -222,11 +222,11 @@ class grade_category_test extends grade_test {
$this->assertTrue(method_exists($category, 'generate_grades'));
$category->load_grade_item();
$grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
$grades = $DB->get_records('grade_grades', array('itemid'=>$category->grade_item->id));
$this->assertFalse($grades);
$category->generate_grades();
$grades = get_records('grade_grades', 'itemid', $category->grade_item->id);
$grades = $DB->get_records('grade_grades', array('itemid'=>$category->grade_item->id));
$this->assertEqual(3, count($grades));
$rawvalues = array();
+3 -3
View File
@@ -122,16 +122,16 @@ class eventslib_test extends UnitTestCase {
*/
function test__events_update_definition__update() {
// first modify directly existing handler
$handler = get_record('events_handlers', 'handlermodule', 'unittest', 'eventname', 'test_instant');
$handler = $DB->get_record('events_handlers', array('handlermodule'=>'unittest', 'eventname'=>'test_instant'));
$original = $handler->handlerfunction;
// change handler in db
set_field('events_handlers', 'handlerfunction', serialize('some_other_function_handler'), 'id', $handler->id);
$DB->set_field('events_handlers', 'handlerfunction', serialize('some_other_function_handler'), array('id'=>$handler->id));
// update the definition, it should revert the handler back
events_update_definition('unittest');
$handler = get_record('events_handlers', 'handlermodule', 'unittest', 'eventname', 'test_instant');
$handler = $DB->get_record('events_handlers', array('handlermodule'=>'unittest', 'eventname'=>'test_instant'));
$this->assertEqual($handler->handlerfunction, $original, 'update should sync db with file definition: %s');
}