本文整理汇总了PHP中truncate_userinfo函数的典型用法代码示例。如果您正苦于以下问题:PHP truncate_userinfo函数的具体用法?PHP truncate_userinfo怎么用?PHP truncate_userinfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了truncate_userinfo函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: truncate_user
function truncate_user($userobj)
{
$user_array = truncate_userinfo((array) $userobj);
$obj = new stdClass();
foreach ($user_array as $key => $value) {
$obj->{$key} = $value;
}
return $obj;
}
开发者ID:nagyistoce,项目名称:wp2moodle-moodle,代码行数:9,代码来源:login.php
示例2: update_user_record
/**
* will update a local user record from an external source.
* is a lighter version of the one in moodlelib -- won't do
* expensive ops such as enrolment
*
* If you don't pass $updatekeys, there is a performance hit and
* values removed from DB won't be removed from moodle.
*
* @param string $username username (with system magic quotes)
*/
function update_user_record($username, $updatekeys = false)
{
global $CFG;
//just in case check text case
$username = trim(moodle_strtolower($username));
// get the current user record
$user = get_record('user', 'username', $username, 'mnethostid', $CFG->mnet_localhost_id);
if (empty($user)) {
// trouble
error_log("Cannot update non-existent user: {$username}");
print_error('auth_dbusernotexist', 'auth', $username);
die;
}
// Ensure userid is not overwritten
$userid = $user->id;
if ($newinfo = $this->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
if (empty($updatekeys)) {
// all keys? this does not support removing values
$updatekeys = array_keys($newinfo);
}
foreach ($updatekeys as $key) {
if (isset($newinfo[$key])) {
$value = $newinfo[$key];
} else {
$value = '';
}
if (!empty($this->config->{'field_updatelocal_' . $key})) {
if ($user->{$key} != $value) {
// only update if it's changed
set_field('user', $key, addslashes($value), 'id', $userid);
}
}
}
}
return get_record_select('user', "id = {$userid} AND deleted = 0");
}
开发者ID:BackupTheBerlios,项目名称:samouk-svn,代码行数:47,代码来源:auth.php
示例3: update_user_record_by_id
/**
* Will update a local user record from an external source (MNET users can not be updated using this method!).
*
* @param int $id user id
* @return stdClass A complete user object
*/
function update_user_record_by_id($id)
{
global $DB, $CFG;
require_once $CFG->dirroot . "/user/profile/lib.php";
require_once $CFG->dirroot . '/user/lib.php';
$params = array('mnethostid' => $CFG->mnet_localhost_id, 'id' => $id, 'deleted' => 0);
$oldinfo = $DB->get_record('user', $params, '*', MUST_EXIST);
$newuser = array();
$userauth = get_auth_plugin($oldinfo->auth);
if ($newinfo = $userauth->get_userinfo($oldinfo->username)) {
$newinfo = truncate_userinfo($newinfo);
$customfields = $userauth->get_custom_user_profile_fields();
foreach ($newinfo as $key => $value) {
$iscustom = in_array($key, $customfields);
if (!$iscustom) {
$key = strtolower($key);
}
if (!property_exists($oldinfo, $key) && !$iscustom or $key === 'username' or $key === 'id' or $key === 'auth' or $key === 'mnethostid' or $key === 'deleted') {
// Unknown or must not be changed.
continue;
}
$confval = $userauth->config->{'field_updatelocal_' . $key};
$lockval = $userauth->config->{'field_lock_' . $key};
if (empty($confval) || empty($lockval)) {
continue;
}
if ($confval === 'onlogin') {
// MDL-4207 Don't overwrite modified user profile values with
// empty LDAP values when 'unlocked if empty' is set. The purpose
// of the setting 'unlocked if empty' is to allow the user to fill
// in a value for the selected field _if LDAP is giving
// nothing_ for this field. Thus it makes sense to let this value
// stand in until LDAP is giving a value for this field.
if (!(empty($value) && $lockval === 'unlockedifempty')) {
if ($iscustom || in_array($key, $userauth->userfields) && (string) $oldinfo->{$key} !== (string) $value) {
$newuser[$key] = (string) $value;
}
}
}
}
if ($newuser) {
$newuser['id'] = $oldinfo->id;
$newuser['timemodified'] = time();
user_update_user((object) $newuser, false, false);
// Save user profile data.
profile_save_data((object) $newuser);
// Trigger event.
\core\event\user_updated::create_from_userid($newuser['id'])->trigger();
}
}
return get_complete_user_data('id', $oldinfo->id);
}
开发者ID:lucaboesch,项目名称:moodle,代码行数:58,代码来源:moodlelib.php
示例4: update_user_record
/**
* Will update a local user record from an external source
*
* @uses $CFG
* @param string $username New user's username to add to record
* @return user A {@link $USER} object
*/
function update_user_record($username, $authplugin)
{
$username = trim(moodle_strtolower($username));
/// just in case check text case
$oldinfo = get_record('user', 'username', $username, '', '', '', '', 'username, auth');
$userauth = get_auth_plugin($oldinfo->auth);
if ($newinfo = $userauth->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
foreach ($newinfo as $key => $value) {
if ($key === 'username') {
// 'username' is not a mapped updateable/lockable field, so skip it.
continue;
}
$confval = $userauth->config->{'field_updatelocal_' . $key};
$lockval = $userauth->config->{'field_lock_' . $key};
if (empty($confval) || empty($lockval)) {
continue;
}
if ($confval === 'onlogin') {
$value = addslashes($value);
// MDL-4207 Don't overwrite modified user profile values with
// empty LDAP values when 'unlocked if empty' is set. The purpose
// of the setting 'unlocked if empty' is to allow the user to fill
// in a value for the selected field _if LDAP is giving
// nothing_ for this field. Thus it makes sense to let this value
// stand in until LDAP is giving a value for this field.
if (!(empty($value) && $lockval === 'unlockedifempty')) {
set_field('user', $key, $value, 'username', $username) || error_log("Error updating {$key} for {$username}");
}
}
}
}
return get_complete_user_data('username', $username);
}
开发者ID:nadavkav,项目名称:rtlMoodle,代码行数:41,代码来源:moodlelib.php
示例5: update_user_record
/**
* Update a local user record from an external source.
* This is a lighter version of the one in moodlelib -- won't do
* expensive ops such as enrolment.
*
* If you don't pass $updatekeys, there is a performance hit and
* values removed from LDAP won't be removed from moodle.
*
* @param string $username username
* @param boolean $updatekeys true to update the local record with the external LDAP values.
* @param bool $triggerevent set false if user_updated event should not be triggered.
* This will not affect user_password_updated event triggering.
* @return stdClass|bool updated user record or false if there is no new info to update.
*/
function update_user_record($username, $updatekeys = false, $triggerevent = false)
{
global $CFG, $DB;
// Just in case check text case
$username = trim(core_text::strtolower($username));
// Get the current user record
$user = $DB->get_record('user', array('username' => $username, 'mnethostid' => $CFG->mnet_localhost_id));
if (empty($user)) {
// trouble
error_log($this->errorlogtag . get_string('auth_dbusernotexist', 'auth_db', '', $username));
print_error('auth_dbusernotexist', 'auth_db', '', $username);
die;
}
// Protect the userid from being overwritten
$userid = $user->id;
if ($newinfo = $this->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
if (empty($updatekeys)) {
// all keys? this does not support removing values
$updatekeys = array_keys($newinfo);
}
if (!empty($updatekeys)) {
$newuser = new stdClass();
$newuser->id = $userid;
foreach ($updatekeys as $key) {
if (isset($newinfo[$key])) {
$value = $newinfo[$key];
} else {
$value = '';
}
if (!empty($this->config->{'field_updatelocal_' . $key})) {
// Only update if it's changed.
if ($user->{$key} != $value) {
$newuser->{$key} = $value;
}
}
}
user_update_user($newuser, false, $triggerevent);
}
} else {
return false;
}
return $DB->get_record('user', array('id' => $userid, 'deleted' => 0));
}
开发者ID:jeffthestampede,项目名称:excelsior,代码行数:58,代码来源:auth.php
示例6: update_user_record
/**
* will update a local user record from an external source.
* is a lighter version of the one in moodlelib -- won't do
* expensive ops such as enrolment
*
* If you don't pass $updatekeys, there is a performance hit and
* values removed from DB won't be removed from moodle.
*
* @param string $username username
* @param bool $updatekeys
* @return stdClass
*/
function update_user_record($username, $updatekeys = false)
{
global $CFG, $DB;
//just in case check text case
$username = trim(textlib::strtolower($username));
// get the current user record
$user = $DB->get_record('user', array('username' => $username, 'mnethostid' => $CFG->mnet_localhost_id));
if (empty($user)) {
// trouble
error_log("Cannot update non-existent user: {$username}");
print_error('auth_dbusernotexist', 'auth_db', $username);
die;
}
// Ensure userid is not overwritten
$userid = $user->id;
$updated = false;
if ($newinfo = $this->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
if (empty($updatekeys)) {
// all keys? this does not support removing values
$updatekeys = array_keys($newinfo);
}
foreach ($updatekeys as $key) {
if (isset($newinfo[$key])) {
$value = $newinfo[$key];
} else {
$value = '';
}
if (!empty($this->config->{'field_updatelocal_' . $key})) {
if (isset($user->{$key}) and $user->{$key} != $value) {
// only update if it's changed
$DB->set_field('user', $key, $value, array('id' => $userid));
$updated = true;
}
}
}
}
if ($updated) {
$DB->set_field('user', 'timemodified', time(), array('id' => $userid));
}
return $DB->get_record('user', array('id' => $userid, 'deleted' => 0));
}
开发者ID:saurabh947,项目名称:MoodleLearning,代码行数:54,代码来源:auth.php
示例7: update_user_record
/**
* Will update a local user record from an external source.
* (MNET users can not be updated using this method!)
*
* @param string $username user's username to update the record
* @return stdClass A complete user object
*/
function update_user_record($username)
{
global $DB, $CFG;
$username = trim(moodle_strtolower($username));
/// just in case check text case
$oldinfo = $DB->get_record('user', array('username' => $username, 'mnethostid' => $CFG->mnet_localhost_id), '*', MUST_EXIST);
$newuser = array();
$userauth = get_auth_plugin($oldinfo->auth);
if ($newinfo = $userauth->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
foreach ($newinfo as $key => $value) {
$key = strtolower($key);
if (!property_exists($oldinfo, $key) or $key === 'username' or $key === 'id' or $key === 'auth' or $key === 'mnethostid' or $key === 'deleted') {
// unknown or must not be changed
continue;
}
$confval = $userauth->config->{'field_updatelocal_' . $key};
$lockval = $userauth->config->{'field_lock_' . $key};
if (empty($confval) || empty($lockval)) {
continue;
}
if ($confval === 'onlogin') {
// MDL-4207 Don't overwrite modified user profile values with
// empty LDAP values when 'unlocked if empty' is set. The purpose
// of the setting 'unlocked if empty' is to allow the user to fill
// in a value for the selected field _if LDAP is giving
// nothing_ for this field. Thus it makes sense to let this value
// stand in until LDAP is giving a value for this field.
if (!(empty($value) && $lockval === 'unlockedifempty')) {
if ((string) $oldinfo->{$key} !== (string) $value) {
$newuser[$key] = (string) $value;
}
}
}
}
if ($newuser) {
$newuser['id'] = $oldinfo->id;
$DB->update_record('user', $newuser);
// fetch full user record for the event, the complete user data contains too much info
// and we want to be consistent with other places that trigger this event
events_trigger('user_updated', $DB->get_record('user', array('id' => $oldinfo->id)));
}
}
return get_complete_user_data('id', $oldinfo->id);
}
开发者ID:hitphp,项目名称:moodle,代码行数:52,代码来源:moodlelib.php
示例8: create_users
/**
* Create one or more users
*
* @param array $users An array of users to create.
* @return array An array of arrays
*/
public static function create_users($users) {
global $CFG, $DB;
require_once($CFG->dirroot."/user/lib.php");
require_once($CFG->dirroot."/user/profile/lib.php"); //required for customfields related function
//TODO: move the functions somewhere else as
//they are "user" related
// Ensure the current user is allowed to run this function
$context = get_context_instance(CONTEXT_SYSTEM);
self::validate_context($context);
require_capability('moodle/user:create', $context);
// Do basic automatic PARAM checks on incoming data, using params description
// If any problems are found then exceptions are thrown with helpful error messages
$params = self::validate_parameters(self::create_users_parameters(), array('users'=>$users));
$availableauths = get_plugin_list('auth');
unset($availableauths['mnet']); // these would need mnethostid too
unset($availableauths['webservice']); // we do not want new webservice users for now
$availablethemes = get_plugin_list('theme');
$availablelangs = get_string_manager()->get_list_of_translations();
$transaction = $DB->start_delegated_transaction();
$userids = array();
foreach ($params['users'] as $user) {
// Make sure that the username doesn't already exist
if ($DB->record_exists('user', array('username'=>$user['username'], 'mnethostid'=>$CFG->mnet_localhost_id))) {
throw new invalid_parameter_exception('Username already exists: '.$user['username']);
}
// Make sure auth is valid
if (empty($availableauths[$user['auth']])) {
throw new invalid_parameter_exception('Invalid authentication type: '.$user['auth']);
}
// Make sure lang is valid
if (empty($availablelangs[$user['lang']])) {
throw new invalid_parameter_exception('Invalid language code: '.$user['lang']);
}
// Make sure lang is valid
if (!empty($user['theme']) && empty($availablethemes[$user['theme']])) { //theme is VALUE_OPTIONAL,
// so no default value.
// We need to test if the client sent it
// => !empty($user['theme'])
throw new invalid_parameter_exception('Invalid theme: '.$user['theme']);
}
// make sure there is no data loss during truncation
$truncated = truncate_userinfo($user);
foreach ($truncated as $key=>$value) {
if ($truncated[$key] !== $user[$key]) {
throw new invalid_parameter_exception('Property: '.$key.' is too long: '.$user[$key]);
}
}
$user['confirmed'] = true;
$user['mnethostid'] = $CFG->mnet_localhost_id;
$user['id'] = user_create_user($user);
// custom fields
if(!empty($user['customfields'])) {
foreach($user['customfields'] as $customfield) {
$user["profile_field_".$customfield['type']] = $customfield['value']; //profile_save_data() saves profile file
//it's expecting a user with the correct id,
//and custom field to be named profile_field_"shortname"
}
profile_save_data((object) $user);
}
//preferences
if (!empty($user['preferences'])) {
foreach($user['preferences'] as $preference) {
set_user_preference($preference['type'], $preference['value'],$user['id']);
}
}
$userids[] = array('id'=>$user['id'], 'username'=>$user['username']);
}
$transaction->allow_commit();
return $userids;
}
开发者ID:ravivare,项目名称:moodle-1,代码行数:92,代码来源:externallib.php
示例9: update_user_record
/**
* will update a local user record from an external source.
* is a lighter version of the one in moodlelib -- won't do
* expensive ops such as enrolment.
*
* If you don't pass $updatekeys, there is a performance hit and
* values removed from DB won't be removed from moodle.
*
* @param string $username username
* @param bool $updatekeys
* @return stdClass
*/
function update_user_record($username, $updatekeys = false)
{
global $CFG, $DB;
//just in case check text case
$username = trim(core_text::strtolower($username));
// get the current user record
$user = $DB->get_record('user', array('username' => $username, 'mnethostid' => $CFG->mnet_localhost_id));
if (empty($user)) {
// trouble
error_log("Cannot update non-existent user: {$username}");
print_error('auth_dbusernotexist', 'auth_db', $username);
die;
}
// Ensure userid is not overwritten.
$userid = $user->id;
$needsupdate = false;
$updateuser = new stdClass();
$updateuser->id = $userid;
if ($newinfo = $this->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
if (empty($updatekeys)) {
// All keys? This does not support removing values.
$updatekeys = array_keys($newinfo);
}
foreach ($updatekeys as $key) {
if (isset($newinfo[$key])) {
$value = $newinfo[$key];
} else {
$value = '';
}
if (!empty($this->config->{'field_updatelocal_' . $key})) {
if (isset($user->{$key}) and $user->{$key} != $value) {
// Only update if it's changed.
$needsupdate = true;
$updateuser->{$key} = $value;
}
}
}
}
if ($needsupdate) {
require_once $CFG->dirroot . '/user/lib.php';
user_update_user($updateuser);
}
return $DB->get_record('user', array('id' => $userid, 'deleted' => 0));
}
开发者ID:janaece,项目名称:globalclassroom4_clean,代码行数:57,代码来源:auth.php
示例10: create_users
/**
* Create one or more users
*
* @param array $users An array of users to create.
* @return array An array of arrays
*/
public static function create_users($users)
{
global $CFG, $DB;
require_once $CFG->dirroot . "/lib/weblib.php";
require_once $CFG->dirroot . "/user/lib.php";
require_once $CFG->dirroot . "/user/profile/lib.php";
//required for customfields related function
//TODO: move the functions somewhere else as
//they are "user" related
// Ensure the current user is allowed to run this function
$context = get_context_instance(CONTEXT_SYSTEM);
self::validate_context($context);
require_capability('moodle/user:create', $context);
// Do basic automatic PARAM checks on incoming data, using params description
// If any problems are found then exceptions are thrown with helpful error messages
$params = self::validate_parameters(self::create_users_parameters(), array('users' => $users));
$availableauths = get_plugin_list('auth');
unset($availableauths['mnet']);
// these would need mnethostid too
unset($availableauths['webservice']);
// we do not want new webservice users for now
$availablethemes = get_plugin_list('theme');
$availablelangs = get_string_manager()->get_list_of_translations();
$transaction = $DB->start_delegated_transaction();
$userids = array();
foreach ($params['users'] as $user) {
// Start of user info validation.
//
// Make sure that the username doesn't already exist
if ($DB->record_exists('user', array('username' => $user['username'], 'mnethostid' => $CFG->mnet_localhost_id))) {
$a = array('idnumber' => $user['idnumber'], 'username' => $user['username']);
throw new moodle_exception('username_already_exists', 'local_sistemaaulaws', '', $a);
}
// Make sure auth is valid
if (empty($availableauths[$user['auth']])) {
$a = array('idnumber' => $user['idnumber'], 'username' => $user['username'], 'auth' => $user['auth']);
throw new moodle_exception('invalid_authentication_type', 'local_sistemaaulaws', '', $a);
}
// Make sure lang is valid
if (empty($availablelangs[$user['lang']])) {
$a = new stdClass();
$a->idnumber = $user['idnumber'];
$a->name = $user['username'];
$a->lang = $user['lang'];
$a->object = get_string('object_name_user', 'local_sistemaaulaws');
$a->object_text_name = get_string('object_text_name_user', 'local_sistemaaulaws');
throw new modle('invalid_language_code', 'local_sistemaaulaws', '', $a);
}
// Make sure lang is valid
if (!empty($user['theme']) && empty($availablethemes[$user['theme']])) {
//theme is VALUE_OPTIONAL,
// so no default value.
// We need to test if the client sent it
// => !empty($user['theme'])
$a = new stdClass();
$a->idnumber = $user['idnumber'];
$a->name = $user['username'];
$a->theme = $user['theme'];
$a->object = get_string('object_name_user', 'local_sistemaaulaws');
$a->object_text_name = get_string('object_text_name_user', 'local_sistemaaulaws');
throw new modle_exception('invalid_theme', 'local_sistemaaulaws', '', $a);
}
if (!empty($user['email'])) {
if (!validate_email($user['email'])) {
$a = new stdClass();
$a->idnumber = $user['idnumber'];
$a->name = $user['username'];
$a->email = $user['email'];
throw new moodle_exception('email_address_is_invalid', 'local_sistemaaulaws', $a);
} else {
if ($DB->record_exists('user', array('email' => $user['email'], 'mnethostid' => $user['mnethostid']))) {
$a = new stdClass();
$a->idnumber = $user['idnumber'];
$a->name = $user['username'];
$a->email = $user['email'];
throw new moodle_exception('email_address_already_exists', 'local_sistemaaulaws', $a);
}
}
}
//
// End of user info validation.
// CDCP: Achei válido deixar esta verificação em nossa função,
// CDCP: é importante não perder nenhum dado.
// CDCP: eles devem ser enviados no tamanho certo.
//
// make sure there is no data loss during truncation
$truncated = truncate_userinfo($user);
foreach ($truncated as $key => $value) {
if ($truncated[$key] !== $user[$key]) {
$a = array('idnumber' => $user['idnumber'], 'username', 'key' => $key, 'value' => $user[$key]);
throw new moodle_exception('property_is_too_long', 'local_sistemaaulaws', '', $a);
}
}
$user['confirmed'] = true;
//.........这里部分代码省略.........
开发者ID:LMSeXT,项目名称:WebService-Moodle,代码行数:101,代码来源:externallib.php
示例11: create_joomdle_user_record
function create_joomdle_user_record($username, $password, $auth = 'joomdle')
{
global $CFG, $DB;
require_once $CFG->dirroot . '/user/profile/lib.php';
require_once $CFG->dirroot . '/user/lib.php';
// Just in case check text case.
$username = trim(core_text::strtolower($username));
$authplugin = get_auth_plugin($auth);
$customfields = $authplugin->get_custom_user_profile_fields();
$newuser = new stdClass();
if ($newinfo = $authplugin->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
foreach ($newinfo as $key => $value) {
if (in_array($key, $authplugin->userfields) || in_array($key, $customfields)) {
$newuser->{$key} = $value;
}
}
}
if (!empty($newuser->email)) {
if (email_is_not_allowed($newuser->email)) {
unset($newuser->email);
}
}
if (!isset($newuser->city)) {
$newuser->city = '';
}
$newuser->auth = $auth;
$newuser->username = $username;
// Fix for MDL-8480
// user CFG lang for user if $newuser->lang is empty
// or $user->lang is not an installed language.
if (empty($newuser->lang) || !get_string_manager()->translation_exists($newuser->lang)) {
$newuser->lang = $CFG->lang;
}
$newuser->confirmed = 1;
$newuser->lastip = getremoteaddr();
$newuser->timecreated = time();
$newuser->timemodified = $newuser->timecreated;
$newuser->mnethostid = $CFG->mnet_localhost_id;
$newuser->id = user_create_user($newuser, false, false);
// Save user profile data.
profile_save_data($newuser);
/*
$user = get_complete_user_data('id', $newuser->id);
if (!empty($CFG->{'auth_'.$newuser->auth.'_forcechangepassword'})) {
set_user_preference('auth_forcepasswordchange', 1, $user);
}
// Set the password.
update_internal_user_password($user, $password);
*/
// Trigger event.
\core\event\user_created::create_from_userid($newuser->id)->trigger();
return $newuser;
}
开发者ID:anawu2006,项目名称:PeerLearning,代码行数:54,代码来源:auth.php
示例12: update_user_record
/**
* Will update a local user record from an external source
*
* @uses $CFG
* @param string $username New user's username to add to record
* @return user A {@link $USER} object
*/
function update_user_record($username, $authplugin)
{
$username = trim(moodle_strtolower($username));
/// just in case check text case
$oldinfo = get_record('user', 'username', $username, '', '', '', '', 'username, auth');
$userauth = get_auth_plugin($oldinfo->auth);
if ($newinfo = $userauth->get_userinfo($username)) {
$newinfo = truncate_userinfo($newinfo);
foreach ($newinfo as $key => $value) {
$confkey = 'field_updatelocal_' . $key;
if (!empty($userauth->config->{$confkey}) and $userauth->config->{$confkey} === 'onlogin') {
$value = addslashes(stripslashes($value));
// Just in case
set_field('user', $key, $value, 'username', $username) or error_log("Error updating {$key} for {$username}");
}
}
}
return get_complete_user_data('username', $username);
}
开发者ID:BackupTheBerlios,项目名称:samouk-svn,代码行数:26,代码来源:moodlelib.php
示例13: create_users
/**
* Create one or more users
*
* @param array $users An array of users to create.
* @return array An array of arrays
*/
function create_users($users)
{
global $CFG, $DB;
require_once $CFG->dirroot . "/user/lib.php";
require_once $CFG->dirroot . "/user/profile/lib.php";
//required for customfields related function
//TODO: move the functions somewhere else as
//they are "user" related
$availableauths = get_plugin_list('auth');
$availablethemes = get_plugin_list('theme');
$availablelangs = get_string_manager()->get_list_of_translations();
$transaction = $DB->start_delegated_transaction();
$userids = array();
foreach ($users as $user) {
// Make sure that the username doesn't already exist
if ($DB->record_exists('user', array('username' => $user['username'], 'mnethostid' => $CFG->mnet_localhost_id))) {
// $userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error'=>'Username already exists: ' . $user['username']);
$user_rec = $DB->get_record('user', array('username' => $user['username']));
$user['id'] = $user_rec->id;
unset($user['password']);
unset($user['auth']);
user_update_user($user);
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => 'Updated');
continue;
}
// Make sure auth is valid
if (empty($availableauths[$user['auth']])) {
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => 'Invalid authentication type: ' . $user['auth']);
continue;
}
// Make sure lang is valid
if (empty($availablelangs[$user['lang']])) {
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => 'Invalid language code: ' . $user['lang']);
continue;
}
// Make sure lang is valid
if (!empty($user['theme']) && empty($availablethemes[$user['theme']])) {
//theme is VALUE_OPTIONAL,
// so no default value.
// We need to test if the client sent it
// => !empty($user['theme'])
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => 'Invalid theme: ' . $user['theme']);
continue;
}
// make sure there is no data loss during truncation
$truncated = truncate_userinfo($user);
foreach ($truncated as $key => $value) {
if ($truncated[$key] !== $user[$key]) {
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => 'Property: ' . $key . ' is too long: ' . $user[$key]);
continue;
}
}
$user['confirmed'] = true;
$user['mnethostid'] = $CFG->mnet_localhost_id;
$user['id'] = user_create_user($user);
// // custom fields
// if (!empty($user['customfields'])) {
// foreach ($user['customfields'] as $customfield) {
// $user["profile_field_" . $customfield['type']] = $customfield['value']; //profile_save_data() saves profile file
// //it's expecting a user with the correct id,
// //and custom field to be named profile_field_"shortname"
// }
// profile_save_data((object)$user);
// }
//
// //preferences
// if (!empty($user['preferences'])) {
// foreach ($user['preferences'] as $preference) {
// set_user_preference($preference['type'], $preference['value'], $user['id']);
// }
// }
$userids[] = array('id' => $user['id'], 'username' => $user['username'], 'error' => "");
}
$transaction->allow_commit();
return $userids;
}
开发者ID:MoodleMetaData,项目名称:MoodleMetaData,代码行数:82,代码来源:user_creation.php
示例14: local_ent_installer_get_userinfo_asobj
/**
* Reads user information from ldap and returns it in an object
*
* @param object $ldapauth the ldap authentication instance
* @param string $username username (with system magic quotes)
* @param array $options an array with CLI input options
* @return mixed object or false on error
*/
function local_ent_installer_get_userinfo_asobj($ldapauth, $username, $options = array())
{
$user_array = local_ent_installer_get_userinfo($ldapauth, $username, $options);
if ($user_array == false) {
return false;
//error or not found
}
$user_array = truncate_userinfo($user_array);
$user = new stdClass();
foreach ($user_array as $key => $value) {
$user->{$key} = $value;
}
return $user;
}
开发者ID:OctaveBabel,项目名称:moodle-itop,代码行数:22,代码来源:ldaplib.php
注:本文中的truncate_userinfo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论