mirror of
https://github.com/moodle/moodle.git
synced 2025-06-02 06:05:31 +02:00
utf8 migrate support for site with roles active, resolved isstudent legacy problem, implemented $CFG->notloggedinroleid
This commit is contained in:
parent
7222c36bf8
commit
20aeb4b8e3
@ -23,7 +23,6 @@
|
|||||||
|
|
||||||
require_once('../config.php');
|
require_once('../config.php');
|
||||||
include_once($CFG->dirroot.'/lib/adminlib.php'); // Contains various admin-only functions
|
include_once($CFG->dirroot.'/lib/adminlib.php'); // Contains various admin-only functions
|
||||||
|
|
||||||
include_once($CFG->dirroot.'/lib/ddllib.php'); // Install/upgrade related db functions
|
include_once($CFG->dirroot.'/lib/ddllib.php'); // Install/upgrade related db functions
|
||||||
|
|
||||||
$id = optional_param('id', '', PARAM_ALPHANUM);
|
$id = optional_param('id', '', PARAM_ALPHANUM);
|
||||||
|
@ -863,19 +863,40 @@ function get_main_teacher_lang($courseid) {
|
|||||||
global $CFG;
|
global $CFG;
|
||||||
static $mainteachercache;
|
static $mainteachercache;
|
||||||
|
|
||||||
if (!isset($mainteachercache[$courseid])) {
|
if ($courseid == SITEID || $courseid==0) {
|
||||||
$SQL = 'SELECT u.lang from '.$CFG->prefix.'user_teachers ut,
|
$admin = get_admin();
|
||||||
'.$CFG->prefix.'course c,
|
$mainteachercache[$courseid] = $admin->lang;
|
||||||
'.$CFG->prefix.'user u WHERE
|
return $admin->lang;
|
||||||
c.id = ut.course AND ut.course = '.$courseid.' AND u.id = ut.userid ORDER BY ut.authority ASC';
|
}
|
||||||
|
|
||||||
if ($teacher = get_record_sql($SQL, true)) {
|
if (!isset($mainteachercache[$courseid])) {
|
||||||
|
|
||||||
|
/// this is a worse guess
|
||||||
|
if (!empty($CFG->rolesactive)) {
|
||||||
|
|
||||||
|
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||||
|
$teachers = get_users_by_capability($context, 'moodle/legacy:editingteacher', 'distinct u.*', ' ORDER BY ra.id ASC ', sql_paging_limit(0,1)); // only need first one
|
||||||
|
$teacher = array_shift($teachers);
|
||||||
$mainteachercache[$courseid] = $teacher->lang;
|
$mainteachercache[$courseid] = $teacher->lang;
|
||||||
|
|
||||||
return $teacher->lang;
|
return $teacher->lang;
|
||||||
|
|
||||||
|
/// this is a better guess
|
||||||
} else {
|
} else {
|
||||||
$admin = get_admin();
|
|
||||||
$mainteachercache[$courseid] = $admin->lang;
|
$SQL = 'SELECT u.lang from '.$CFG->prefix.'user_teachers ut,
|
||||||
return $admin->lang;
|
'.$CFG->prefix.'course c,
|
||||||
|
'.$CFG->prefix.'user u WHERE
|
||||||
|
c.id = ut.course AND ut.course = '.$courseid.' AND u.id = ut.userid ORDER BY ut.authority ASC';
|
||||||
|
|
||||||
|
if ($teacher = get_record_sql($SQL, true)) {
|
||||||
|
$mainteachercache[$courseid] = $teacher->lang;
|
||||||
|
return $teacher->lang;
|
||||||
|
} else {
|
||||||
|
$admin = get_admin();
|
||||||
|
$mainteachercache[$courseid] = $admin->lang;
|
||||||
|
return $admin->lang;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return $mainteachercache[$courseid];
|
return $mainteachercache[$courseid];
|
||||||
|
@ -32,6 +32,23 @@ define('CONTEXT_BLOCK', 80);
|
|||||||
$context_cache = array(); // Cache of all used context objects for performance (by level and instance)
|
$context_cache = array(); // Cache of all used context objects for performance (by level and instance)
|
||||||
$context_cache_id = array(); // Index to above cache by id
|
$context_cache_id = array(); // Index to above cache by id
|
||||||
|
|
||||||
|
function load_notloggedin_role() {
|
||||||
|
global $CFG, $USER;
|
||||||
|
|
||||||
|
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
|
// load default not logged in role capabilities when user is not logged in
|
||||||
|
|
||||||
|
$SQL = "select * from {$CFG->prefix}role_capabilities where roleid=$CFG->notloggedinroleid
|
||||||
|
AND contextid = $sitecontext->id";
|
||||||
|
|
||||||
|
$capabilities = get_records_sql($SQL);
|
||||||
|
|
||||||
|
foreach ($capabilities as $capability) {
|
||||||
|
$USER->capabilities[$sitecontext->id][$capability->capability] = $capability->permission;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This functions get all the course categories in proper order
|
* This functions get all the course categories in proper order
|
||||||
@ -140,13 +157,18 @@ function require_capability($capability, $context=NULL, $userid=NULL, $errormess
|
|||||||
* @param string $capability - name of the capability
|
* @param string $capability - name of the capability
|
||||||
* @param object $context - a context object (record from context table)
|
* @param object $context - a context object (record from context table)
|
||||||
* @param integer $userid - a userid number
|
* @param integer $userid - a userid number
|
||||||
|
* @param bool $doanything - if false, ignore do anything
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function has_capability($capability, $context=NULL, $userid=NULL) {
|
function has_capability($capability, $context=NULL, $userid=NULL, $doanything='true') {
|
||||||
|
|
||||||
global $USER, $CONTEXT;
|
global $USER, $CONTEXT, $CFG;
|
||||||
|
|
||||||
if ($userid) {
|
if (!isloggedin() && !isset($USER->capabilities)) {
|
||||||
|
load_notloggedin_role();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($userid && $userid != $USER->id) {
|
||||||
if (empty($USER->id) or ($userid != $USER->id)) {
|
if (empty($USER->id) or ($userid != $USER->id)) {
|
||||||
$capabilities = load_user_capability($capability, $context, $userid);
|
$capabilities = load_user_capability($capability, $context, $userid);
|
||||||
} else { //$USER->id == $userid
|
} else { //$USER->id == $userid
|
||||||
@ -168,102 +190,103 @@ function has_capability($capability, $context=NULL, $userid=NULL) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check site
|
if ($doanything) {
|
||||||
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
// Check site
|
||||||
if (isset($capabilities[$sitecontext->id]['moodle/site:doanything'])) {
|
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
return (0 < $capabilities[$sitecontext->id]['moodle/site:doanything']);
|
if (isset($capabilities[$sitecontext->id]['moodle/site:doanything'])) {
|
||||||
}
|
return (0 < $capabilities[$sitecontext->id]['moodle/site:doanything']);
|
||||||
|
}
|
||||||
|
|
||||||
switch ($context->aggregatelevel) {
|
switch ($context->aggregatelevel) {
|
||||||
|
|
||||||
case CONTEXT_COURSECAT:
|
case CONTEXT_COURSECAT:
|
||||||
// Check parent cats.
|
// Check parent cats.
|
||||||
$parentcats = get_parent_cats($context, CONTEXT_COURSECAT);
|
$parentcats = get_parent_cats($context, CONTEXT_COURSECAT);
|
||||||
foreach ($parentcats as $parentcat) {
|
foreach ($parentcats as $parentcat) {
|
||||||
if (isset($capabilities[$parentcat]['moodle/site:doanything'])) {
|
if (isset($capabilities[$parentcat]['moodle/site:doanything'])) {
|
||||||
return (0 < $capabilities[$parentcat]['moodle/site:doanything']);
|
return (0 < $capabilities[$parentcat]['moodle/site:doanything']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case CONTEXT_COURSE:
|
case CONTEXT_COURSE:
|
||||||
// Check parent cat.
|
// Check parent cat.
|
||||||
$parentcats = get_parent_cats($context, CONTEXT_COURSE);
|
$parentcats = get_parent_cats($context, CONTEXT_COURSE);
|
||||||
|
|
||||||
foreach ($parentcats as $parentcat) {
|
|
||||||
if (isset($capabilities[$parentcat]['do_anything'])) {
|
|
||||||
return (0 < $capabilities[$parentcat]['do_anything']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CONTEXT_GROUP:
|
|
||||||
// Find course.
|
|
||||||
$group = get_record('groups','id',$context->instanceid);
|
|
||||||
$courseinstance = get_context_instance(CONTEXT_COURSE, $group->courseid);
|
|
||||||
|
|
||||||
$parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE);
|
|
||||||
foreach ($parentcats as $parentcat) {
|
|
||||||
if (isset($capabilities[$parentcat->id]['do_anything'])) {
|
|
||||||
return (0 < $capabilities[$parentcat->id]['do_anything']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$coursecontext = '';
|
|
||||||
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
|
||||||
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CONTEXT_MODULE:
|
|
||||||
// Find course.
|
|
||||||
$cm = get_record('course_modules', 'id', $context->instanceid);
|
|
||||||
$courseinstance = get_context_instance(CONTEXT_COURSE, $cm->course);
|
|
||||||
|
|
||||||
if ($parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE)) {
|
|
||||||
foreach ($parentcats as $parentcat) {
|
foreach ($parentcats as $parentcat) {
|
||||||
if (isset($capabilities[$parentcat]['do_anything'])) {
|
if (isset($capabilities[$parentcat]['do_anything'])) {
|
||||||
return (0 < $capabilities[$parentcat]['do_anything']);
|
return (0 < $capabilities[$parentcat]['do_anything']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
|
||||||
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
case CONTEXT_GROUP:
|
||||||
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
// Find course.
|
||||||
}
|
$group = get_record('groups','id',$context->instanceid);
|
||||||
|
$courseinstance = get_context_instance(CONTEXT_COURSE, $group->courseid);
|
||||||
|
|
||||||
break;
|
$parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE);
|
||||||
|
foreach ($parentcats as $parentcat) {
|
||||||
case CONTEXT_BLOCK:
|
if (isset($capabilities[$parentcat->id]['do_anything'])) {
|
||||||
// 1 to 1 to course.
|
return (0 < $capabilities[$parentcat->id]['do_anything']);
|
||||||
// Find course.
|
}
|
||||||
$block = get_record('block_instance','id',$context->instanceid);
|
|
||||||
$courseinstance = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
|
|
||||||
|
|
||||||
$parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE);
|
|
||||||
foreach ($parentcats as $parentcat) {
|
|
||||||
if (isset($capabilities[$parentcat]['do_anything'])) {
|
|
||||||
return (0 < $capabilities[$parentcat]['do_anything']);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
$coursecontext = '';
|
||||||
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
||||||
}
|
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
||||||
break;
|
}
|
||||||
|
|
||||||
default:
|
break;
|
||||||
// CONTEXT_SYSTEM: CONTEXT_PERSONAL: CONTEXT_USERID:
|
|
||||||
// Do nothing.
|
case CONTEXT_MODULE:
|
||||||
break;
|
// Find course.
|
||||||
|
$cm = get_record('course_modules', 'id', $context->instanceid);
|
||||||
|
$courseinstance = get_context_instance(CONTEXT_COURSE, $cm->course);
|
||||||
|
|
||||||
|
if ($parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE)) {
|
||||||
|
foreach ($parentcats as $parentcat) {
|
||||||
|
if (isset($capabilities[$parentcat]['do_anything'])) {
|
||||||
|
return (0 < $capabilities[$parentcat]['do_anything']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
||||||
|
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONTEXT_BLOCK:
|
||||||
|
// 1 to 1 to course.
|
||||||
|
// Find course.
|
||||||
|
$block = get_record('block_instance','id',$context->instanceid);
|
||||||
|
$courseinstance = get_context_instance(CONTEXT_COURSE, $block->pageid); // needs check
|
||||||
|
|
||||||
|
$parentcats = get_parent_cats($courseinstance, CONTEXT_COURSE);
|
||||||
|
foreach ($parentcats as $parentcat) {
|
||||||
|
if (isset($capabilities[$parentcat]['do_anything'])) {
|
||||||
|
return (0 < $capabilities[$parentcat]['do_anything']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($capabilities[$courseinstance->id]['do_anything'])) {
|
||||||
|
return (0 < $capabilities[$courseinstance->id]['do_anything']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// CONTEXT_SYSTEM: CONTEXT_PERSONAL: CONTEXT_USERID:
|
||||||
|
// Do nothing.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last: check self.
|
||||||
|
if (isset($capabilities[$context->id]['do_anything'])) {
|
||||||
|
return (0 < $capabilities[$context->id]['do_anything']);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Last: check self.
|
|
||||||
if (isset($capabilities[$context->id]['do_anything'])) {
|
|
||||||
return (0 < $capabilities[$context->id]['do_anything']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// do_anything has not been set, we now look for it the normal way.
|
// do_anything has not been set, we now look for it the normal way.
|
||||||
return (0 < capability_search($capability, $context, $capabilities));
|
return (0 < capability_search($capability, $context, $capabilities));
|
||||||
|
|
||||||
@ -279,8 +302,8 @@ function has_capability($capability, $context=NULL, $userid=NULL) {
|
|||||||
* @return permission (int)
|
* @return permission (int)
|
||||||
*/
|
*/
|
||||||
function capability_search($capability, $context, $capabilities) {
|
function capability_search($capability, $context, $capabilities) {
|
||||||
global $USER, $CFG;
|
|
||||||
|
|
||||||
|
global $USER, $CFG;
|
||||||
|
|
||||||
if (isset($capabilities[$context->id][$capability])) {
|
if (isset($capabilities[$context->id][$capability])) {
|
||||||
if ($CFG->debug > 15) {
|
if ($CFG->debug > 15) {
|
||||||
@ -374,6 +397,11 @@ function load_user_capability($capability='', $context ='', $userid='') {
|
|||||||
|
|
||||||
global $USER, $CFG;
|
global $USER, $CFG;
|
||||||
|
|
||||||
|
// make sure it's cleaned when loaded (again)
|
||||||
|
if (!empty($USER->capabilities)) {
|
||||||
|
unset($USER->capabilities);
|
||||||
|
}
|
||||||
|
|
||||||
if (empty($userid)) {
|
if (empty($userid)) {
|
||||||
$userid = $USER->id;
|
$userid = $USER->id;
|
||||||
} else {
|
} else {
|
||||||
@ -1509,11 +1537,11 @@ function role_context_capabilities($roleid, $context, $cap='') {
|
|||||||
|
|
||||||
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
$sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
if ($sitecontext->id == $context->id) {
|
if ($sitecontext->id == $context->id) {
|
||||||
return array();
|
$contexts = array($sitecontext->id);
|
||||||
|
} else {
|
||||||
|
// first of all, figure out all parental contexts
|
||||||
|
$contexts = array_reverse(get_parent_contexts($context));
|
||||||
}
|
}
|
||||||
|
|
||||||
// first of all, figure out all parental contexts
|
|
||||||
$contexts = array_reverse(get_parent_contexts($context));
|
|
||||||
$contexts = '('.implode(',', $contexts).')';
|
$contexts = '('.implode(',', $contexts).')';
|
||||||
|
|
||||||
if ($cap) {
|
if ($cap) {
|
||||||
@ -1903,7 +1931,7 @@ function get_overridable_roles ($context) {
|
|||||||
* @param $fields - fields to be pulled
|
* @param $fields - fields to be pulled
|
||||||
* @param $sort - the sort order
|
* @param $sort - the sort order
|
||||||
*/
|
*/
|
||||||
function get_users_by_capability($context, $capability, $fields='distinct u.*', $sort='') {
|
function get_users_by_capability($context, $capability, $fields='distinct u.*', $sort='', $limit='') {
|
||||||
|
|
||||||
global $CFG;
|
global $CFG;
|
||||||
|
|
||||||
@ -1930,7 +1958,7 @@ function get_users_by_capability($context, $capability, $fields='distinct u.*',
|
|||||||
$from = ' FROM '.$CFG->prefix.'user u LEFT JOIN '.$CFG->prefix.'role_assignments ra ON ra.userid = u.id ';
|
$from = ' FROM '.$CFG->prefix.'user u LEFT JOIN '.$CFG->prefix.'role_assignments ra ON ra.userid = u.id ';
|
||||||
$where = ' WHERE (ra.contextid = '.$context->id.' OR ra.contextid in '.$listofcontexts.') AND u.deleted = 0 AND ra.roleid in '.$roleids.' ';
|
$where = ' WHERE (ra.contextid = '.$context->id.' OR ra.contextid in '.$listofcontexts.') AND u.deleted = 0 AND ra.roleid in '.$roleids.' ';
|
||||||
|
|
||||||
return get_records_sql($select.$from.$where);
|
return get_records_sql($select.$from.$where.$sort.$limit);
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -47,7 +47,7 @@ function get_guest() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns $user object of the main admin user
|
* Returns $user object of the main admin user
|
||||||
*
|
* primary admin = admin with lowest role_assignment id among admins
|
||||||
* @uses $CFG
|
* @uses $CFG
|
||||||
* @return object(admin) An associative array representing the admin user.
|
* @return object(admin) An associative array representing the admin user.
|
||||||
* @todo Verify documentation of this function
|
* @todo Verify documentation of this function
|
||||||
@ -75,11 +75,10 @@ function get_admins() {
|
|||||||
|
|
||||||
global $CFG;
|
global $CFG;
|
||||||
|
|
||||||
return get_records_sql("SELECT u.*, a.id as adminid
|
$context = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
FROM {$CFG->prefix}user u,
|
|
||||||
{$CFG->prefix}user_admins a
|
return get_users_by_capability($context, 'moodle/legacy:admin', 'distinct u.*, ra.id as adminid', ' ORDER BY ra.id ASC '); // only need first one
|
||||||
WHERE a.userid = u.id
|
|
||||||
ORDER BY a.id ASC");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1983,9 +1983,9 @@ function isadmin($userid=0) {
|
|||||||
$context = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
$context = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
|
|
||||||
if (!$userid) {
|
if (!$userid) {
|
||||||
return has_capability('moodle/legacy:admin', $context);
|
return has_capability('moodle/legacy:admin', $context, $USER->id, false);
|
||||||
} else {
|
} else {
|
||||||
return has_capability('moodle/legacy:admin', $context, false, $userid);
|
return has_capability('moodle/legacy:admin', $context, false, $userid, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2044,11 +2044,13 @@ function isteacher($courseid=0, $userid=0, $includeadmin=true) {
|
|||||||
|
|
||||||
if (!$userid) {
|
if (!$userid) {
|
||||||
|
|
||||||
return (has_capability('moodle/legacy:teacher', $context)
|
return (has_capability('moodle/legacy:teacher', $context, $USER->id, false)
|
||||||
or has_capability('moodle/legacy:editingteacher', $context));
|
or has_capability('moodle/legacy:editingteacher', $context, $USER->id, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $USER->id, false));
|
||||||
} else {
|
} else {
|
||||||
return (has_capability('moodle/legacy:teacher', $context, $userid)
|
return (has_capability('moodle/legacy:teacher', $context, $userid, false)
|
||||||
or has_capability('moodle/legacy:editingteacher', $context, $userid));
|
or has_capability('moodle/legacy:editingteacher', $context, $userid, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $userid, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2135,9 +2137,11 @@ function isteacheredit($courseid, $userid=0, $ignorestudentview=false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$userid) {
|
if (!$userid) {
|
||||||
return has_capability('moodle/legacy:editingteacher', $context);
|
return (has_capability('moodle/legacy:editingteacher', $context, $USER->id, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $USER->id, false));
|
||||||
} else {
|
} else {
|
||||||
return has_capability('moodle/legacy:editingteacher', $context, $userid);
|
return (has_capability('moodle/legacy:editingteacher', $context, $userid, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $userid, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// we can't edit in studentview
|
// we can't edit in studentview
|
||||||
@ -2177,9 +2181,11 @@ function iscreator ($userid=0) {
|
|||||||
$context = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
$context = get_context_instance(CONTEXT_SYSTEM, SITEID);
|
||||||
|
|
||||||
if (!$userid) {
|
if (!$userid) {
|
||||||
return has_capability('moodle/legacy:coursecreator', $context);
|
return (has_capability('moodle/legacy:coursecreator', $context, $USER->id, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $USER->id, false));
|
||||||
} else {
|
} else {
|
||||||
return has_capability('moodle/legacy:coursecreator', $context, $userid);
|
return (has_capability('moodle/legacy:coursecreator', $context, $userid, false)
|
||||||
|
or has_capability('moodle/legacy:admin', $context, $userid, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2221,9 +2227,9 @@ function isstudent($courseid, $userid=0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$userid) {
|
if (!$userid) {
|
||||||
return has_capability('moodle/legacy:student', $context);
|
return has_capability('moodle/legacy:student', $context, $USER->id, false);
|
||||||
} else {
|
} else {
|
||||||
return has_capability('moodle/legacy:student', $context, $userid);
|
return has_capability('moodle/legacy:student', $context, $userid, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user