本文整理汇总了PHP中guest_user函数的典型用法代码示例。如果您正苦于以下问题:PHP guest_user函数的具体用法?PHP guest_user怎么用?PHP guest_user使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了guest_user函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: game_showusers
function game_showusers($game)
{
global $CFG, $USER, $DB;
$users = array();
$context = get_context_instance(CONTEXT_COURSE, $game->course);
$groupid = optional_param('groupid', 0, PARAM_INT);
$sql = "SELECT DISTINCT ra.userid,u.lastname,u.firstname FROM {role_assignments} ra, {user} u " . " WHERE ra.contextid={$context->id} AND ra.userid=u.id";
if ($groupid != 0) {
$sql .= " AND ra.userid IN (SELECT gm.userid FROM {groups_members} gm WHERE gm.groupid={$groupid})";
}
if ($recs = $DB->get_records_sql($sql)) {
foreach ($recs as $rec) {
$users[$rec->userid] = $rec->lastname . ' ' . $rec->firstname;
}
}
if ($guest = guest_user()) {
$users[$guest->id] = fullname($guest);
}
?>
<script type="text/javascript">
function onselectuser()
{
window.location.href = "<?php
echo $CFG->wwwroot . '/mod/game/showattempts.php?q=' . $game->id . '&userid=';
?>
" + document.getElementById('menuuser').value + '&groupid=' + document.getElementById('menugroup').value;
}
</script>
<?php
$attributes = 'onchange="javascript:onselectuser();"';
$name = 'user';
$id = 'menu' . $name;
$class = 'menu' . $name;
$class = 'select ' . $class;
/// Add 'select' selector always
$nothing = get_string("allparticipants");
$nothingvalue = '0';
$options = $users;
$selected = optional_param('userid', 0, PARAM_INT);
$output = '<select id="' . $id . '" class="' . $class . '" name="' . $name . '" ' . $attributes . '>' . "\n";
$output .= ' <option value="' . s($nothingvalue) . '"' . "\n";
if ($nothingvalue === $selected) {
$output .= ' selected="selected"';
}
$output .= '>' . $nothing . '</option>' . "\n";
if (!empty($options)) {
foreach ($options as $value => $label) {
$output .= ' <option value="' . s($value) . '"';
if ((string) $value == (string) $selected || is_array($selected) && in_array($value, $selected)) {
$output .= ' selected="selected"';
}
if ($label === '') {
$output .= '>' . $value . '</option>' . "\n";
} else {
$output .= '>' . $label . '</option>' . "\n";
}
}
}
echo $output . '</select>' . "\n";
}
示例2: game_showusers
function game_showusers($game)
{
global $CFG, $USER;
$users = array();
$context = get_context_instance(CONTEXT_COURSE, $game->course);
if ($courseusers = get_enrolled_users($context)) {
foreach ($courseusers as $courseuser) {
$users[$courseuser->id] = fullname($courseuser, has_capability('moodle/site:viewfullnames', $context));
}
}
if ($guest = guest_user()) {
$users[$guest->id] = fullname($guest);
}
?>
<script type="text/javascript">
function onselectuser()
{
window.location.href = "<?php
echo $CFG->wwwroot . '/mod/game/showanswers.php?q=' . $game->id . '&userid=';
?>
" + document.getElementById('menuuser').value;
}
</script>
<?php
//choose_from_menu($users, 'user', $USER->id, get_string("allparticipants"), 'javascript:onselectuser();');
//function choose_from_menu ($options, $name, $selected='', $nothing='choose', $script='',
// $nothingvalue='0', $return=false, $disabled=false, $tabindex=0,
// $id='', $listbox=false, $multiple=false, $class='')
$attributes = 'onchange="javascript:onselectuser();"';
$name = 'user';
$id = 'menu' . $name;
$class = 'menu' . $name;
$class = 'select ' . $class;
/// Add 'select' selector always
$nothing = get_string("allparticipants");
$nothingvalue = '0';
$options = $users;
$selected = optional_param('userid', $USER->id, PARAM_INT);
$output = '<select id="' . $id . '" class="' . $class . '" name="' . $name . '" ' . $attributes . '>' . "\n";
$output .= ' <option value="' . s($nothingvalue) . '"' . "\n";
if ($nothingvalue === $selected) {
$output .= ' selected="selected"';
}
$output .= '>' . $nothing . '</option>' . "\n";
if (!empty($options)) {
foreach ($options as $value => $label) {
$output .= ' <option value="' . s($value) . '"';
if ((string) $value == (string) $selected || is_array($selected) && in_array($value, $selected)) {
$output .= ' selected="selected"';
}
if ($label === '') {
$output .= '>' . $value . '</option>' . "\n";
} else {
$output .= '>' . $label . '</option>' . "\n";
}
}
}
echo $output . '</select>' . "\n";
}
示例3: rss_get_url
/**
* This function returns the URL for the RSS XML file.
*
* @param int $contextid the course id
* @param int $userid the current user id
* @param string $componentname the name of the current component. For example "forum"
* @param string $additionalargs For modules, module instance id
* @return string the url of the RSS feed
*/
function rss_get_url($contextid, $userid, $componentname, $additionalargs)
{
global $CFG;
if (empty($userid)) {
$userid = guest_user()->id;
}
$usertoken = rss_get_token($userid);
$url = '/rss/file.php';
return moodle_url::make_file_url($url, '/' . $contextid . '/' . $usertoken . '/' . $componentname . '/' . $additionalargs . '/rss.xml');
}
示例4: rss_get_url
/**
* This function returns the URL for the RSS XML file.
*
* @param int $contextid the course id
* @param int $userid the current user id
* @param string $componentname the name of the current component. For example "forum"
* @param string $additionalargs For modules, module instance id
* @return string the url of the RSS feed
*/
function rss_get_url($contextid, $userid, $componentname, $additionalargs)
{
global $CFG;
require_once $CFG->libdir . '/filelib.php';
if (empty($userid)) {
$userid = guest_user()->id;
}
$usertoken = rss_get_token($userid);
return get_file_url($contextid . '/' . $usertoken . '/' . $componentname . '/' . $additionalargs . '/rss.xml', null, 'rssfile');
}
示例5: assignsubmission_comments_comment_display
/**
* Callback called by comment::get_comments() and comment::add(). Gives an opportunity to enforce blind-marking.
*
* @param array $comments
* @param stdClass $options
* @return array
* @throws comment_exception
*/
function assignsubmission_comments_comment_display($comments, $options)
{
global $CFG, $DB, $USER;
if ($options->commentarea != 'submission_comments' && $options->commentarea != 'submission_comments_upgrade') {
throw new comment_exception('invalidcommentarea');
}
if (!($submission = $DB->get_record('assign_submission', array('id' => $options->itemid)))) {
throw new comment_exception('invalidcommentitemid');
}
$context = $options->context;
$cm = $options->cm;
$course = $options->courseid;
require_once $CFG->dirroot . '/mod/assign/locallib.php';
$assignment = new assign($context, $cm, $course);
if ($assignment->get_instance()->id != $submission->assignment) {
throw new comment_exception('invalidcontext');
}
if ($assignment->is_blind_marking() && !empty($comments)) {
// Blind marking is being used, may need to map unique anonymous ids to the comments.
$usermappings = array();
$hiddenuserstr = trim(get_string('hiddenuser', 'assign'));
$guestuser = guest_user();
foreach ($comments as $comment) {
// Anonymize the comments.
if (empty($usermappings[$comment->userid])) {
// The blind-marking information for this commenter has not been generated; do so now.
$anonid = $assignment->get_uniqueid_for_user($comment->userid);
$commenter = new stdClass();
$commenter->firstname = $hiddenuserstr;
$commenter->lastname = $anonid;
$commenter->picture = 0;
$commenter->id = $guestuser->id;
$commenter->email = $guestuser->email;
$commenter->imagealt = $guestuser->imagealt;
// Temporarily store blind-marking information for use in later comments if necessary.
$usermappings[$comment->userid]->fullname = fullname($commenter);
$usermappings[$comment->userid]->avatar = $assignment->get_renderer()->user_picture($commenter, array('size' => 18, 'link' => false));
}
// Set blind-marking information for this comment.
$comment->fullname = $usermappings[$comment->userid]->fullname;
$comment->avatar = $usermappings[$comment->userid]->avatar;
$comment->profileurl = null;
}
}
return $comments;
}
示例6: initialise_user_session
//.........这里部分代码省略.........
// Verify timeout first.
$maxlifetime = $CFG->sessiontimeout;
$timeout = false;
if (isguestuser($userid) or empty($userid)) {
// Ignore guest and not-logged in timeouts, there is very little risk here.
$timeout = false;
} else {
if ($record->timemodified < time() - $maxlifetime) {
$timeout = true;
$authsequence = get_enabled_auth_plugins();
// Auths, in sequence.
foreach ($authsequence as $authname) {
$authplugin = get_auth_plugin($authname);
if ($authplugin->ignore_timeout_hook($_SESSION['USER'], $record->sid, $record->timecreated, $record->timemodified)) {
$timeout = false;
break;
}
}
}
}
if ($timeout) {
session_regenerate_id(true);
$_SESSION = array();
$DB->delete_records('sessions', array('id' => $record->id));
} else {
// Update session tracking record.
$update = new \stdClass();
$updated = false;
if ($record->userid != $userid) {
$update->userid = $record->userid = $userid;
$updated = true;
}
$ip = getremoteaddr();
if ($record->lastip != $ip) {
$update->lastip = $record->lastip = $ip;
$updated = true;
}
$updatefreq = empty($CFG->session_update_timemodified_frequency) ? 20 : $CFG->session_update_timemodified_frequency;
if ($record->timemodified == $record->timecreated) {
// Always do first update of existing record.
$update->timemodified = $record->timemodified = time();
$updated = true;
} else {
if ($record->timemodified < time() - $updatefreq) {
// Update the session modified flag only once every 20 seconds.
$update->timemodified = $record->timemodified = time();
$updated = true;
}
}
if ($updated) {
$update->id = $record->id;
$DB->update_record('sessions', $update);
}
return;
}
} else {
if ($record) {
// This happens when people switch session handlers...
session_regenerate_id(true);
$_SESSION = array();
$DB->delete_records('sessions', array('id' => $record->id));
}
}
unset($record);
$timedout = false;
if (!isset($_SESSION['SESSION'])) {
$_SESSION['SESSION'] = new \stdClass();
if (!$newsid) {
$timedout = true;
}
}
$user = null;
if (!empty($CFG->opentogoogle)) {
if (\core_useragent::is_web_crawler()) {
$user = guest_user();
}
$referer = get_local_referer(false);
if (!empty($CFG->guestloginbutton) and !$user and !empty($referer)) {
// Automatically log in users coming from search engine results.
if (strpos($referer, 'google') !== false) {
$user = guest_user();
} else {
if (strpos($referer, 'altavista') !== false) {
$user = guest_user();
}
}
}
}
// Setup $USER and insert the session tracking record.
if ($user) {
self::set_user($user);
self::add_session_record($user->id);
} else {
self::init_empty_session();
self::add_session_record(0);
}
if ($timedout) {
$_SESSION['SESSION']->has_timed_out = true;
}
}
示例7: forum_subscribed_users
/**
* Returns list of user objects that are subscribed to this forum
*/
function forum_subscribed_users($course, $forum, $groupid = 0)
{
global $CFG;
if ($groupid) {
$grouptables = ", {$CFG->prefix}groups_members gm ";
$groupselect = "AND gm.groupid = {$groupid} AND u.id = gm.userid";
} else {
$grouptables = '';
$groupselect = '';
}
if (forum_is_forcesubscribed($forum)) {
$context = get_context_instance(CONTEXT_COURSE, $course->id);
$sort = "u.email ASC";
$fields = "u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest, u.emailstop, u.imagealt,\n u.email, u.city, u.country, u.lastaccess, u.lastlogin, u.picture, u.timezone, u.theme, u.lang, u.trackforums, u.mnethostid";
$results = get_users_by_capability($context, 'mod/forum:initialsubscriptions', $fields, $sort, '', '', '', '', false, true);
} else {
$results = get_records_sql("SELECT u.id, u.username, u.firstname, u.lastname, u.maildisplay, u.mailformat, u.maildigest, u.emailstop, u.imagealt,\n u.email, u.city, u.country, u.lastaccess, u.lastlogin, u.picture, u.timezone, u.theme, u.lang, u.trackforums, u.mnethostid\n FROM {$CFG->prefix}user u,\n {$CFG->prefix}forum_subscriptions s {$grouptables}\n WHERE s.forum = '{$forum->id}'\n AND s.userid = u.id\n AND u.deleted = 0 {$groupselect}\n ORDER BY u.email ASC");
}
static $guestid = null;
if (is_null($guestid)) {
if ($guest = guest_user()) {
$guestid = $guest->id;
} else {
$guestid = 0;
}
}
// Guest user should never be subscribed to a forum.
unset($results[$guestid]);
return $results;
}
示例8: add_message
/**
* Adds a new chat message.
* <b>Note:</b> if the $author parameter is omitted or invalid, then the function will attempt to use the {@link SloodleUser} member
* of the current {@link SloodleSession} object;
* If that is unavailable, then it will try to use the user currently 'logged-in' to the VLE (i.e. the $USER variable in Moodle).
* If all else fails, it will attempt to attribute the message to the guest user.
* @param string $message The text of the message.
* @param mixed $user The user who wrote the message -- either a VLE user ID or (preferably) a {@link SloodleUser} object. If null, then the user in the current SloodleSession object will be used. If that fails, then the guest user is used if possible.
* @param int $timestamp Timestamp of the message. If omitted or <= 0 then the current timestamp is used
* @return bool True if successful, or false otherwise
*/
function add_message($message, $user = null, $timestamp = null)
{
// Ignore empty messages
if (empty($message)) {
return false;
}
// Make sure the message is safe
$message = addslashes(clean_text(stripslashes($message)));
// We need to get the user ID for the message
$userid = 0;
// Has a user object been provided?
if (is_object($user)) {
// Yes - grab the user ID
$userid = $user->get_user_id();
} else {
if ($user != null) {
// May be an ID
$userid = (int) $user;
}
}
// Did we end up with a valid user ID?
if ((int) $userid <= 0) {
// No - do we have a user in the session parameter?
if (isset($this->_session->user)) {
// Store the user ID
$userid = $this->_session->user->get_user_id();
}
}
// Are we still lacking a valid user?
if ((int) $userid <= 0) {
// Yes - user the guest user
$guest = guest_user();
if ($guest) {
$userid = $guest->id;
}
}
// Prepare the timestamp variable if necessary
if (is_null($timestamp)) {
$timestamp = time();
}
// Create a chat message record object
$rec = new stdClass();
$rec->chatid = $this->moodle_chat_instance->id;
$rec->userid = $userid;
$rec->message = $message;
$rec->timestamp = $timestamp;
// Attempt to insert the chat message
$result = insert_record('chat_messages', $rec);
if (!$result) {
// Insertion failed.
// If possible, add an appropriate side effect code to our response
if (isset($this->_session->response)) {
$this->_session->response->add_side_effect(-10101);
}
}
// We successfully added a chat message
// If possible, add an appropriate side effect code to our response
if (isset($this->_session->response)) {
$this->_session->response->add_side_effect(10101);
}
return true;
}
示例9: Synch_restoreMergedBackupFromRemoteHost
function Synch_restoreMergedBackupFromRemoteHost($id, $hostUrl, $sessionId, $fileName)
{
global $SynchManager, $USER;
$USER = guest_user();
return $SynchManager->restoreMergedBackupFromRemoteHost($id, $hostUrl, $sessionId, $fileName);
}
示例10: forum_extend_settings_navigation
//.........这里部分代码省略.........
// 0
$allowchoice->action = null;
$allowchoice->add_class('activesetting');
$allowchoice->icon = new pix_icon('t/selected', '', 'mod_forum');
break;
case FORUM_FORCESUBSCRIBE:
// 1
$forceforever->action = null;
$forceforever->add_class('activesetting');
$forceforever->icon = new pix_icon('t/selected', '', 'mod_forum');
break;
case FORUM_INITIALSUBSCRIBE:
// 2
$forceinitially->action = null;
$forceinitially->add_class('activesetting');
$forceinitially->icon = new pix_icon('t/selected', '', 'mod_forum');
break;
case FORUM_DISALLOWSUBSCRIBE:
// 3
$disallowchoice->action = null;
$disallowchoice->add_class('activesetting');
$disallowchoice->icon = new pix_icon('t/selected', '', 'mod_forum');
break;
}
} else {
if ($activeenrolled) {
switch ($subscriptionmode) {
case FORUM_CHOOSESUBSCRIBE:
// 0
$notenode = $forumnode->add(get_string('subscriptionoptional', 'forum'));
break;
case FORUM_FORCESUBSCRIBE:
// 1
$notenode = $forumnode->add(get_string('subscriptionforced', 'forum'));
break;
case FORUM_INITIALSUBSCRIBE:
// 2
$notenode = $forumnode->add(get_string('subscriptionauto', 'forum'));
break;
case FORUM_DISALLOWSUBSCRIBE:
// 3
$notenode = $forumnode->add(get_string('subscriptiondisabled', 'forum'));
break;
}
}
}
if ($cansubscribe) {
if (\mod_forum\subscriptions::is_subscribed($USER->id, $forumobject, null, $PAGE->cm)) {
$linktext = get_string('unsubscribe', 'forum');
} else {
$linktext = get_string('subscribe', 'forum');
}
$url = new moodle_url('/mod/forum/subscribe.php', array('id' => $forumobject->id, 'sesskey' => sesskey()));
$forumnode->add($linktext, $url, navigation_node::TYPE_SETTING);
if (isset($discussionid)) {
if (\mod_forum\subscriptions::is_subscribed($USER->id, $forumobject, $discussionid, $PAGE->cm)) {
$linktext = get_string('unsubscribediscussion', 'forum');
} else {
$linktext = get_string('subscribediscussion', 'forum');
}
$url = new moodle_url('/mod/forum/subscribe.php', array('id' => $forumobject->id, 'sesskey' => sesskey(), 'd' => $discussionid, 'returnurl' => $PAGE->url->out()));
$forumnode->add($linktext, $url, navigation_node::TYPE_SETTING);
}
}
if (has_capability('mod/forum:viewsubscribers', $PAGE->cm->context)) {
$url = new moodle_url('/mod/forum/subscribers.php', array('id' => $forumobject->id));
$forumnode->add(get_string('showsubscribers', 'forum'), $url, navigation_node::TYPE_SETTING);
}
if ($enrolled && forum_tp_can_track_forums($forumobject)) {
// keep tracking info for users with suspended enrolments
if ($forumobject->trackingtype == FORUM_TRACKING_OPTIONAL || !$CFG->forum_allowforcedreadtracking && $forumobject->trackingtype == FORUM_TRACKING_FORCED) {
if (forum_tp_is_tracked($forumobject)) {
$linktext = get_string('notrackforum', 'forum');
} else {
$linktext = get_string('trackforum', 'forum');
}
$url = new moodle_url('/mod/forum/settracking.php', array('id' => $forumobject->id, 'sesskey' => sesskey()));
$forumnode->add($linktext, $url, navigation_node::TYPE_SETTING);
}
}
if (!isloggedin() && $PAGE->course->id == SITEID) {
$userid = guest_user()->id;
} else {
$userid = $USER->id;
}
$hascourseaccess = $PAGE->course->id == SITEID || can_access_course($PAGE->course, $userid);
$enablerssfeeds = !empty($CFG->enablerssfeeds) && !empty($CFG->forum_enablerssfeeds);
if ($enablerssfeeds && $forumobject->rsstype && $forumobject->rssarticles && $hascourseaccess) {
if (!function_exists('rss_get_url')) {
require_once "{$CFG->libdir}/rsslib.php";
}
if ($forumobject->rsstype == 1) {
$string = get_string('rsssubscriberssdiscussions', 'forum');
} else {
$string = get_string('rsssubscriberssposts', 'forum');
}
$url = new moodle_url(rss_get_url($PAGE->cm->context->id, $userid, "mod_forum", $forumobject->id));
$forumnode->add($string, $url, settings_navigation::TYPE_SETTING, null, null, new pix_icon('i/rss', ''));
}
}
示例11: check_user_initialised
/**
* Initialise $USER object, handles google access
* and sets up not logged in user properly.
*
* @return void
*/
protected function check_user_initialised()
{
global $CFG;
if (isset($_SESSION['USER']->id)) {
// already set up $USER
return;
}
$user = null;
if (!empty($CFG->opentogoogle) and !NO_MOODLE_COOKIES) {
if (is_web_crawler()) {
$user = guest_user();
}
if (!empty($CFG->guestloginbutton) and !$user and !empty($_SERVER['HTTP_REFERER'])) {
// automaticaly log in users coming from search engine results
if (strpos($_SERVER['HTTP_REFERER'], 'google') !== false) {
$user = guest_user();
} else {
if (strpos($_SERVER['HTTP_REFERER'], 'altavista') !== false) {
$user = guest_user();
}
}
}
}
if (!$user) {
$user = new stdClass();
$user->id = 0;
// to enable proper function of $CFG->notloggedinroleid hack
if (isset($CFG->mnet_localhost_id)) {
$user->mnethostid = $CFG->mnet_localhost_id;
} else {
$user->mnethostid = 1;
}
}
session_set_user($user);
}
示例12: test_apply_concurrent_login_limit
public function test_apply_concurrent_login_limit()
{
global $DB;
$this->resetAfterTest();
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$guest = guest_user();
$record = new \stdClass();
$record->state = 0;
$record->sessdata = null;
$record->userid = $user1->id;
$record->timemodified = time();
$record->firstip = $record->lastip = '10.0.0.1';
$record->sid = md5('hokus1');
$record->timecreated = 20;
$DB->insert_record('sessions', $record);
$record->sid = md5('hokus2');
$record->timecreated = 10;
$DB->insert_record('sessions', $record);
$record->sid = md5('hokus3');
$record->timecreated = 30;
$DB->insert_record('sessions', $record);
$record->userid = $user2->id;
$record->sid = md5('pokus1');
$record->timecreated = 20;
$DB->insert_record('sessions', $record);
$record->sid = md5('pokus2');
$record->timecreated = 10;
$DB->insert_record('sessions', $record);
$record->sid = md5('pokus3');
$record->timecreated = 30;
$DB->insert_record('sessions', $record);
$record->timecreated = 10;
$record->userid = $guest->id;
$record->sid = md5('g1');
$DB->insert_record('sessions', $record);
$record->sid = md5('g2');
$DB->insert_record('sessions', $record);
$record->sid = md5('g3');
$DB->insert_record('sessions', $record);
$record->userid = 0;
$record->sid = md5('nl1');
$DB->insert_record('sessions', $record);
$record->sid = md5('nl2');
$DB->insert_record('sessions', $record);
$record->sid = md5('nl3');
$DB->insert_record('sessions', $record);
set_config('limitconcurrentlogins', 0);
$this->assertCount(12, $DB->get_records('sessions'));
\core\session\manager::apply_concurrent_login_limit($user1->id);
\core\session\manager::apply_concurrent_login_limit($user2->id);
\core\session\manager::apply_concurrent_login_limit($guest->id);
\core\session\manager::apply_concurrent_login_limit(0);
$this->assertCount(12, $DB->get_records('sessions'));
set_config('limitconcurrentlogins', -1);
\core\session\manager::apply_concurrent_login_limit($user1->id);
\core\session\manager::apply_concurrent_login_limit($user2->id);
\core\session\manager::apply_concurrent_login_limit($guest->id);
\core\session\manager::apply_concurrent_login_limit(0);
$this->assertCount(12, $DB->get_records('sessions'));
set_config('limitconcurrentlogins', 2);
\core\session\manager::apply_concurrent_login_limit($user1->id);
$this->assertCount(11, $DB->get_records('sessions'));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 20)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 30)));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 10)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 20)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 30)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 10)));
set_config('limitconcurrentlogins', 2);
\core\session\manager::apply_concurrent_login_limit($user2->id, md5('pokus2'));
$this->assertCount(10, $DB->get_records('sessions'));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 20)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 30)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 10)));
\core\session\manager::apply_concurrent_login_limit($guest->id);
\core\session\manager::apply_concurrent_login_limit(0);
$this->assertCount(10, $DB->get_records('sessions'));
set_config('limitconcurrentlogins', 1);
\core\session\manager::apply_concurrent_login_limit($user1->id, md5('grrr'));
$this->assertCount(9, $DB->get_records('sessions'));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 20)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 30)));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 10)));
\core\session\manager::apply_concurrent_login_limit($user1->id);
$this->assertCount(9, $DB->get_records('sessions'));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 20)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 30)));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user1->id, 'timecreated' => 10)));
\core\session\manager::apply_concurrent_login_limit($user2->id, md5('pokus2'));
$this->assertCount(8, $DB->get_records('sessions'));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 20)));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 30)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 10)));
\core\session\manager::apply_concurrent_login_limit($user2->id);
$this->assertCount(8, $DB->get_records('sessions'));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 20)));
$this->assertFalse($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 30)));
$this->assertTrue($DB->record_exists('sessions', array('userid' => $user2->id, 'timecreated' => 10)));
\core\session\manager::apply_concurrent_login_limit($guest->id);
//.........这里部分代码省略.........
示例13: get_group_taginstance_userid
/**
* Check user can save a new group tag instance as these have a unique key
* If not, will use - admin user (0), guest user (1), other admin user (2+)
* @param int $groupid
* @param int $tagid
* @param int $start default -1 for current user.
* @return int user id
* @throws moodle_exception If out of users
*/
private static function get_group_taginstance_userid($groupid, $tagid, $start = -1)
{
global $DB, $USER;
$userid = $USER->id;
$nexttry = 0;
if ($start == 0) {
$userid = get_admin()->id;
$nexttry = 1;
} else {
if ($start == 1) {
$userid = guest_user()->id;
$nexttry = 2;
} else {
if ($start >= 2) {
$admins = get_admins();
if (count($admins) < $start) {
throw new moodle_exception('Cannot add tag instance - duplicate value, max possible reached.');
}
$keys = array_keys($admins);
// Get keys (user id's).
$userid = $keys[$start - 1];
$nexttry = $start;
$nexttry++;
}
}
}
if (!$DB->record_exists('tag_instance', array('itemtype' => 'groups', 'itemid' => $groupid, 'tiuserid' => $userid, 'tagid' => $tagid))) {
// No existing record, safe to proceed.
return $userid;
}
// Try and find another userid.
return self::get_group_taginstance_userid($groupid, $tagid, $nexttry);
}
示例14: forum_subscribed_users
/**
* Returns list of user objects that are subscribed to this forum
*
* @global object
* @global object
* @param object $course the course
* @param forum $forum the forum
* @param integer $groupid group id, or 0 for all.
* @param object $context the forum context, to save re-fetching it where possible.
* @param string $fields requested user fields (with "u." table prefix)
* @return array list of users.
*/
function forum_subscribed_users($course, $forum, $groupid = 0, $context = null, $fields = null)
{
global $CFG, $DB;
$params = array($forum->id);
if ($groupid) {
$grouptables = ", {groups_members} gm ";
$groupselect = "AND gm.groupid = ? AND u.id = gm.userid";
$params[] = $groupid;
} else {
$grouptables = '';
$groupselect = '';
}
if (empty($fields)) {
$fields = "u.id,\n u.username,\n u.firstname,\n u.lastname,\n u.maildisplay,\n u.mailformat,\n u.maildigest,\n u.imagealt,\n u.email,\n u.city,\n u.country,\n u.lastaccess,\n u.lastlogin,\n u.picture,\n u.timezone,\n u.theme,\n u.lang,\n u.trackforums,\n u.mnethostid";
}
if (forum_is_forcesubscribed($forum)) {
if (empty($context)) {
$cm = get_coursemodule_from_instance('forum', $forum->id, $course->id);
$context = get_context_instance(CONTEXT_MODULE, $cm->id);
}
$sort = "u.email ASC";
$results = forum_get_potential_subscribers($context, $groupid, $fields, $sort);
} else {
$results = $DB->get_records_sql("SELECT {$fields}\n FROM {user} u,\n {forum_subscriptions} s {$grouptables}\n WHERE s.forum = ?\n AND s.userid = u.id\n AND u.deleted = 0 {$groupselect}\n ORDER BY u.email ASC", $params);
}
static $guestid = null;
if (is_null($guestid)) {
if ($guest = guest_user()) {
$guestid = $guest->id;
} else {
$guestid = 0;
}
}
// Guest user should never be subscribed to a forum.
unset($results[$guestid]);
return $results;
}
示例15: hsuforum_is_anonymous_user
/**
* @param $user
* @return bool
* @author Mark Nielsen
*/
function hsuforum_is_anonymous_user($user)
{
static $guest = null;
if (is_null($guest)) {
$guest = guest_user();
}
return $user->id == $guest->id;
}