foreach ($roles as $srole) {
foreach ($roles as $trole) {
if (isset($temp[$srole->id][$trole->id])) { // if set, need to write to db
- if (!$record = get_record('role_allow_assign', 'roleid', $srole->id, 'allowassign', $trole->id)) {
+ if (!$record = $DB->get_record('role_allow_assign', array('roleid'=>$srole->id, 'allowassign'=>$trole->id))) {
allow_assign($srole->id, $trole->id);
}
} else { //if set, means can access, attempt to remove it from db
- delete_records('role_allow_assign', 'roleid', $srole->id, 'allowassign', $trole->id);
+ $DB->delete_records('role_allow_assign', array('roleid'=>$srole->id, 'allowassign'=>$trole->id));
}
}
}
-function get_box_list($roleid, $arraylist){
+function get_box_list($roleid, $arraylist) {
+ global $DB;
foreach ($arraylist as $targetid) {
- if (get_record('role_allow_assign', 'roleid', $roleid, 'allowassign', $targetid)) {
+ if ($DB->get_record('role_allow_assign', array('roleid'=>$roleid, 'allowassign'=>$targetid))) {
$array[] = '<input type="checkbox" name="s_'.$roleid.'_'.$targetid.'" value="1" checked="checked"/>';
} else {
$array[] = '<input type="checkbox" name="s_'.$roleid.'_'.$targetid.'" value="1" />';
$roles = get_all_roles();
- if ($grant = data_submitted()) {
+ if ($grant = data_submitted(false)) {
foreach ($grant as $grole => $val) {
if ($grole == 'dummy') {
foreach ($roles as $srole) {
foreach ($roles as $trole) {
if (isset($temp[$srole->id][$trole->id])) { // if set, need to write to db
- if (!$record = get_record('role_allow_override', 'roleid', $srole->id, 'allowoverride', $trole->id)) {
+ if (!$record = $DB->get_record('role_allow_override', array('roleid'=>$srole->id, 'allowoverride'=>$trole->id))) {
allow_override($srole->id, $trole->id);
}
} else { //if set, means can access, attempt to remove it from db
- delete_records('role_allow_override', 'roleid', $srole->id, 'allowoverride', $trole->id);
+ $DB->delete_records('role_allow_override', array('roleid'=>$srole->id, 'allowoverride'=>$trole->id));
}
}
}
admin_externalpage_print_footer();
// returns array
-function get_box_list($roleid, $arraylist){
+function get_box_list($roleid, $arraylist) {
+ global $DB;
foreach ($arraylist as $targetid) {
- if (get_record('role_allow_override', 'roleid', $roleid, 'allowoverride', $targetid)) {
+ if ($DB->get_record('role_allow_override', array('roleid'=>$roleid, 'allowoverride'=>$targetid))) {
$array[] = '<input type="checkbox" name="s_'.$roleid.'_'.$targetid.'" value="1" checked="checked"/>';
} else {
$array[] = '<input type="checkbox" name="s_'.$roleid.'_'.$targetid.'" value="1" />';
$i=0;
if (!empty($searchtext)) {
echo "<optgroup label=\"$strsearchresults (" . $usercount . ")\">\n";
- while ($user = rs_fetch_next_record($availableusers)) {
+ foreach ($availableusers as $user) {
$fullname = fullname($user, true);
echo "<option value=\"$user->id\">".$fullname.", ".$user->email."</option>\n";
$i++;
echo '<optgroup label="'.get_string('toomanytoshow').'"><option></option></optgroup>'."\n"
.'<optgroup label="'.get_string('trysearching').'"><option></option></optgroup>'."\n";
} else {
- while ($user = rs_fetch_next_record($availableusers)) {
+ foreach ($availableusers as $user) {
$fullname = fullname($user, true);
echo "<option value=\"$user->id\">".$fullname.", ".$user->email."</option>\n";
$i++;
$inmeta = 0;
if ($context->contextlevel == CONTEXT_COURSE) {
$courseid = $context->instanceid;
- if ($course = get_record('course', 'id', $courseid)) {
+ if ($course = $DB->get_record('course', array('id'=>$courseid))) {
$inmeta = $course->metacourse;
} else {
print_error('invalidcourse', 'error');
}
} else if (!empty($courseid)){ // we need this for user tabs in user context
- if (!$course = get_record('course', 'id', $courseid)) {
+ if (!$course = $DB->get_record('course', array('id', $courseid))) {
print_error('invalidcourse', 'error');
}
}
if ($userid) {
- $user = get_record('user', 'id', $userid);
+ $user = $DB->get_record('user', array('id', $userid));
$fullname = fullname($user, has_capability('moodle/site:viewfullnames', $context));
}
} else {
$managerroles = get_roles_with_capability('moodle/course:managemetacourse', CAP_ALLOW, $context);
if (!empty($managerroles) and !array_key_exists($roleid, $managerroles)) {
- $erruser = get_record('user', 'id', $adduser, '','','','', 'id, firstname, lastname');
+ $erruser = $DB->get_record('user', array('id'=>$adduser), 'id, firstname, lastname');
$errors[] = get_string('metaassignerror', 'role', fullname($erruser));
$allow = false;
}
}
}
- $rolename = get_field('role', 'name', 'id', $roleid);
+ $rolename = $DB->get_field('role', 'name', array('id'=>$roleid));
add_to_log($course->id, 'role', 'assign', 'admin/roles/assign.php?contextid='.$context->id.'&roleid='.$roleid, $rolename, '', $USER->id);
} else if ($remove and !empty($frm->removeselect) and confirm_sesskey()) {
sync_metacourse($courseid);
$newroles = get_user_roles($context, $removeuser, false);
if (!empty($newroles) and !array_key_exists($roleid, $newroles)) {
- $erruser = get_record('user', 'id', $removeuser, '','','','', 'id, firstname, lastname');
+ $erruser = $DB->get_record('user', array('id'=>$removeuser), 'id, firstname, lastname');
$errors[] = get_string('metaunassignerror', 'role', fullname($erruser));
$allow = false;
}
}
}
- $rolename = get_field('role', 'name', 'id', $roleid);
+ $rolename = $DB->get_field('role', 'name', array('id'=>$roleid));
add_to_log($course->id, 'role', 'unassign', 'admin/roles/assign.php?contextid='.$context->id.'&roleid='.$roleid, $rolename, '', $USER->id);
} else if ($showall) {
$searchtext = '';
}
$select = "username <> 'guest' AND deleted = 0 AND confirmed = 1";
+ $params = array();
- $usercount = count_records_select('user', $select) - count($contextusers);
+ $usercount = $DB->count_records_select('user', $select, $params) - count($contextusers);
$searchtext = trim($searchtext);
if ($searchtext !== '') { // Search for a subset of remaining users
- $LIKE = sql_ilike();
- $FULLNAME = sql_fullname();
+ $LIKE = $DB->sql_ilike();
+ $FULLNAME = $DB->sql_fullname();
- $selectsql = " AND ($FULLNAME $LIKE '%$searchtext%' OR email $LIKE '%$searchtext%') ";
- $select .= $selectsql;
- } else {
- $selectsql = "";
+ $select .= " AND ($FULLNAME $LIKE :search1 OR email $LIKE :search2) ";
+ $params['search1'] = "%$searchtext%";
+ $params['search2'] = "%$searchtext%";
}
if ($context->contextlevel > CONTEXT_COURSE) { // mod or block (or group?)
if ($validroleids) {
$roleids = '('.implode(',', $validroleids).')';
- $select = " SELECT u.id, u.firstname, u.lastname, u.email";
- $countselect = "SELECT COUNT(u.id)";
- $from = " FROM {$CFG->prefix}user u
- INNER JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
- INNER JOIN {$CFG->prefix}role r ON r.id = ra.roleid";
- $where = " WHERE ra.contextid ".get_related_contexts_string($context)."
- AND u.deleted = 0
- AND ra.roleid in $roleids";
- $excsql = " AND u.id NOT IN (
- SELECT u.id
- FROM {$CFG->prefix}role_assignments r,
- {$CFG->prefix}user u
- WHERE r.contextid = $contextid
- AND u.id = r.userid
- AND r.roleid = $roleid
- $selectsql)";
-
- $availableusers = get_recordset_sql($select . $from . $where . $selectsql . $excsql);
+ $fields = "SELECT u.id, u.firstname, u.lastname, u.email";
+ $countfields = "SELECT COUNT('x')";
+
+ $sql = " FROM {user} u
+ JOIN {role_assignments} ra ON ra.userid = u.id
+ JOIN {role} r ON r.id = ra.roleid
+ WHERE ra.contextid ".get_related_contexts_string($context)."
+ AND $select AND ra.roleid in $roleids
+ AND u.id NOT IN (
+ SELECT u.id
+ FROM {role_assignments} r, {user} u
+ WHERE r.contextid = :contextid
+ AND u.id = r.userid
+ AND r.roleid = :roleid)";
+ $params['contextid'] = $contextid;
+ $params['roleid'] = $roleid;
+
+ $availableusers = $DB->get_recordset_sql("$fields $sql", $params);
+ $usercount = $DB->count_records_sql("$countfields $sql", $params);
+
+ } else {
+ $availableusers = array();
+ $usercount = 0;
}
-
- $usercount = $availableusers->_numOfRows;
}
} else {
/// MDL-11111 do not include user already assigned this role in this context as available users
/// so that the number of available users is right and we save time looping later
- $availableusers = get_recordset_sql('SELECT id, firstname, lastname, email
- FROM '.$CFG->prefix.'user
- WHERE '.$select.'
- AND id NOT IN (
- SELECT u.id
- FROM '.$CFG->prefix.'role_assignments r,
- '.$CFG->prefix.'user u
- WHERE r.contextid = '.$contextid.'
- AND u.id = r.userid
- AND r.roleid = '.$roleid.'
- '.$selectsql.')
- ORDER BY lastname ASC, firstname ASC');
-
- $usercount = $availableusers->_numOfRows;
+ $fields = "SELECT id, firstname, lastname, email";
+ $countfields = "SELECT COUNT('x')";
+
+ $sql = " FROM {user}
+ WHERE $select
+ AND id NOT IN (
+ SELECT u.id
+ FROM {role_assignments} r, {user} u
+ WHERE r.contextid = :contextid
+ AND u.id = r.userid
+ AND r.roleid = :roleid)";
+ $order = "ORDER BY lastname ASC, firstname ASC";
+
+ $params['contextid'] = $contextid;
+ $params['roleid'] = $roleid;
+
+ $availableusers = $DB->get_recordset_sql("$fields $sql $order", $params);
+ $usercount = $DB->count_records_sql("$countfields $sql", $params);
}
echo '<div class="selector">';
$rolesort[$i] = $rolex->id;
if ($rolex->sortorder != $i) {
$r = new object();
- $r->id = $rolex->id;
+ $r->id = $rolex->id;
$r->sortorder = $i;
- update_record('role', $r);
+ $DB->update_record('role', $r);
$roles[$rolex->id]->sortorder = $i;
}
$i++;
/// form processing, editing a role, adding a role, deleting a role etc.
switch ($action) {
case 'add':
- if ($data = data_submitted() and confirm_sesskey()) {
+ if ($data = data_submitted(false) and confirm_sesskey()) {
$shortname = moodle_strtolower(clean_param(clean_filename($shortname), PARAM_SAFEDIR)); // only lowercase safe ASCII characters
$legacytype = required_param('legacytype', PARAM_RAW);
mark_context_dirty($sitecontext->path);
if (empty($errors)) {
- $rolename = get_field('role', 'name', 'id', $newroleid);
+ $rolename = $DB->get_field('role', 'name', array('id'=>$newroleid));
add_to_log(SITEID, 'role', 'add', 'admin/roles/manage.php?action=add', $rolename, '', $USER->id);
redirect('manage.php');
}
break;
case 'edit':
- if ($data = data_submitted() and confirm_sesskey()) {
+ if ($data = data_submitted(false) and confirm_sesskey()) {
$shortname = moodle_strtolower(clean_param(clean_filename($shortname), PARAM_SAFEDIR)); // only lowercase safe ASCII characters
$legacytype = required_param('legacytype', PARAM_RAW);
$a->id = $roleid;
$a->name = $roles[$roleid]->name;
$a->shortname = $roles[$roleid]->shortname;
- $a->count = (int)count_records('role_assignments', 'roleid', $roleid);
+ $a->count = $DB->count_records('role_assignments', array('roleid'=>$roleid));
notice_yesno(get_string('deleterolesure', 'role', $a), 'manage.php', 'manage.php', $optionsyes, NULL, 'post', 'get');
admin_externalpage_print_footer();
die;
}
if ($courseid) {
- if (!$course = get_record('course', 'id', $courseid)) {
+ if (!$course = $DB->get_record('course', array('id'=>$courseid))) {
print_error('invalidcourse');
}
} else {
}
if ($userid) {
- $user = get_record('user', 'id', $userid);
+ $user = $DB->get_record('user', array('id'=>$userid));
$fullname = fullname($user, has_capability('moodle/site:viewfullnames', $context));
}
$capabilities = fetch_context_capabilities($context);
/// Process incoming role override
- if ($data = data_submitted() and $roleid and confirm_sesskey()) {
+ if ($data = data_submitted(false) and $roleid and confirm_sesskey()) {
$allowed_values = array(CAP_INHERIT, CAP_ALLOW, CAP_PREVENT, CAP_PROHIBIT);
- $localoverrides = get_records_select('role_capabilities', "roleid = $roleid AND contextid = $context->id",
+ $localoverrides = $DB->get_records_select('role_capabilities', "roleid = ? AND contextid = ?", array($roleid, $context->id),
'', 'capability, permission, id');
foreach ($capabilities as $cap) {
// force accessinfo refresh for users visiting this context...
mark_context_dirty($context->path);
- $rolename = get_field('role', 'name', 'id', $roleid);
+ $rolename = $DB->get_field('role', 'name', array('id'=>$roleid));
add_to_log($course->id, 'role', 'override', 'admin/roles/override.php?contextid='.$context->id.'&roleid='.$roleid, $rolename, '', $USER->id);
redirect($baseurl);
}
$r_caps = role_context_capabilities($roleid, $parentcontext);
- $localoverrides = get_records_select('role_capabilities', "roleid = $roleid AND contextid = $context->id",
+ $localoverrides = $DB->get_records_select('role_capabilities', "roleid = ? AND contextid = ?", array($roleid, $context->id),
'', 'capability, permission, id');
$lang = str_replace('_utf8', '', current_language());
foreach ($overridableroles as $roleid => $rolename) {
$countusers = 0;
- $overridecount = count_records_select('role_capabilities', "roleid = $roleid AND contextid = $context->id");
+ $overridecount = $DB->count_records_select('role_capabilities', "roleid = ? AND contextid = ?", array($roleid, $context->id));
$description = format_string(get_field('role', 'description', 'id', $roleid));
$table->data[] = array('<a href="'.$baseurl.'&roleid='.$roleid.'">'.$rolename.'</a>', $description, $overridecount);
}
break;
case CONTEXT_COURSECAT:
- $category = get_record('course_categories', 'id', $context->instanceid);
+ $category = $DB->get_record('course_categories', array('id'=>$context->instanceid));
$strcategories = get_string("categories");
$strcategory = get_string("category");
$strcourses = get_string("courses");
if ($context->instanceid != SITEID) {
$streditcoursesettings = get_string("editcoursesettings");
- $course = get_record('course', 'id', $context->instanceid);
+ $course = $DB->get_record('course', array('id'=>$context->instanceid));
require_login($course);
$navlinks[] = array('name' => get_string('roles'),
case CONTEXT_MODULE:
// get module type?
- if (!$cm = get_record('course_modules','id',$context->instanceid)) {
+ if (!$cm = $DB->get_record('course_modules', array('id'=>$context->instanceid))) {
print_error('invalidcoursemodule', 'error');
}
- if (!$module = get_record('modules','id',$cm->module)) { //$module->name;
+ if (!$module = $DB->get_record('modules', array('id'=>$cm->module))) { //$module->name;
print_error('invalidmodule', 'error');
}
- if (!$course = get_record('course','id',$cm->course)) {
+ if (!$course = $DB->get_record('course', array('id'=>$cm->course))) {
print_error('invalidcourse');
}
- if (!$instance = get_record($module->name, 'id', $cm->instance)) {
+ if (!$instance = $DB->get_record($module->name, array('id'=>$cm->instance))) {
print_error('moduledoesnotexist', 'error');
}
break;
case CONTEXT_BLOCK:
- if ($blockinstance = get_record('block_instance', 'id', $context->instanceid)) {
- if ($block = get_record('block', 'id', $blockinstance->blockid)) {
+ if ($blockinstance = $DB->get_record('block_instance', array('id'=>$context->instanceid))) {
+ if ($block = $DB->get_record('block', array('id'=>$blockinstance->blockid))) {
$blockname = print_context_name($context);
switch ($blockinstance->pagetype) {
case 'course-view':
- if ($course = get_record('course', 'id', $blockinstance->pageid)) {
+ if ($course = $DB->get_record('course', array('id'=>$blockinstance->pageid))) {
require_login($course);