本文整理汇总了PHP中CB\Database\Table\UserTable::load方法的典型用法代码示例。如果您正苦于以下问题:PHP UserTable::load方法的具体用法?PHP UserTable::load怎么用?PHP UserTable::load使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CB\Database\Table\UserTable
的用法示例。
在下文中一共展示了UserTable::load方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveInviteEdit
/**
* save invite
*
* @param int $id
* @param UserTable $user
*/
private function saveInviteEdit( $id, $user )
{
global $_CB_framework, $_CB_database, $_PLUGINS;
$row = new InviteTable();
$row->load( (int) $id );
$isModerator = CBGroupJive::isModerator( $user->get( 'id' ) );
$groupId = $this->input( 'group', null, GetterInterface::INT );
if ( $groupId === null ) {
$group = $row->group();
} else {
$group = CBGroupJive::getGroup( $groupId );
}
$returnUrl = $_CB_framework->pluginClassUrl( $this->element, false, array( 'action' => 'groups', 'func' => 'show', 'id' => (int) $group->get( 'id' ) ) );
if ( ! CBGroupJive::canAccessGroup( $group, $user ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'Group does not exist.' ), 'error' );
} elseif ( $row->get( 'id' ) && ( $user->get( 'id' ) != $row->get( 'user_id' ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to edit this invite.' ), 'error' );
} elseif ( ! $isModerator ) {
if ( ( $group->get( 'published' ) == -1 ) || ( ( ! $this->params->get( 'groups_invites_display', 1 ) ) && ( $group->get( 'type' ) != 3 ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have access to invites in this group.' ), 'error' );
} elseif ( ( ! $row->get( 'id' ) ) && ( ! CBGroupJive::canCreateGroupContent( $user, $group, 'invites' ) ) ) {
cbRedirect( $returnUrl, CBTxt::T( 'You do not have sufficient permissions to create an invite in this group.' ), 'error' );
}
}
$skipCaptcha = false;
$row->set( 'message', $this->input( 'post/message', $row->get( 'message' ), GetterInterface::STRING ) );
if ( ! $row->get( 'id' ) ) {
$row->set( 'user_id', (int) $row->get( 'user_id', $user->get( 'id' ) ) );
$row->set( 'group', (int) $group->get( 'id' ) );
$to = $this->input( 'post/to', null, GetterInterface::STRING );
$selected = (int) $this->input( 'post/selected', 0, GetterInterface::INT );
if ( $selected ) {
$token = $this->input( 'post/token', null, GetterInterface::STRING );
if ( $token ) {
if ( $token == md5( $row->get( 'user_id' ) . $to . $row->get( 'group' ) . $row->get( 'message' ) . $_CB_framework->getCfg( 'secret' ) ) ) {
$skipCaptcha = true;
$row->set( 'user', (int) $selected );
}
} elseif ( $this->params->get( 'groups_invites_list', 0 ) ) {
$connections = array();
$cbConnection = new cbConnection( (int) $user->get( 'id' ) );
foreach( $cbConnection->getConnectedToMe( (int) $user->get( 'id' ) ) as $connection ) {
$connections[] = (int) $connection->id;
}
if ( in_array( $selected, $connections ) ) {
$row->set( 'user', (int) $selected );
}
}
} else {
$inviteByLimit = explode( '|*|', $this->params->get( 'groups_invites_by', '1|*|2|*|3|*|4' ) );
if ( ! $inviteByLimit ) {
$inviteByLimit = array( 1, 2, 3, 4 );
}
$recipient = new UserTable();
if ( in_array( 1, $inviteByLimit ) && $recipient->load( (int) $to ) ) {
$row->set( 'user', (int) $recipient->get( 'id' ) );
} elseif ( in_array( 4, $inviteByLimit ) && cbIsValidEmail( $to ) ) {
if ( $recipient->load( array( 'email' => $to ) ) ) {
$row->set( 'user', (int) $recipient->get( 'id' ) );
} else {
$row->set( 'email', $to );
}
} elseif ( in_array( 2, $inviteByLimit ) && $recipient->load( array( 'username' => $to ) ) ) {
$row->set( 'user', (int) $recipient->get( 'id' ) );
} elseif ( in_array( 3, $inviteByLimit ) ) {
$query = 'SELECT cb.' . $_CB_database->NameQuote( 'id' )
. "\n FROM " . $_CB_database->NameQuote( '#__comprofiler' ) . " AS cb"
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__users' ) . " AS j"
. ' ON j.' . $_CB_database->NameQuote( 'id' ) . ' = cb.' . $_CB_database->NameQuote( 'id' )
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__groupjive_users' ) . " AS u"
. ' ON u.' . $_CB_database->NameQuote( 'user_id' ) . ' = cb.' . $_CB_database->NameQuote( 'id' )
. ' AND u.' . $_CB_database->NameQuote( 'group' ) . ' = ' . (int) $group->get( 'id' )
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__groupjive_invites' ) . " AS i"
. ' ON i.' . $_CB_database->NameQuote( 'group' ) . ' = ' . (int) $group->get( 'id' )
. ' AND i.' . $_CB_database->NameQuote( 'user' ) . ' = cb.' . $_CB_database->NameQuote( 'id' )
. "\n WHERE j." . $_CB_database->NameQuote( 'name' ) . " LIKE " . $_CB_database->Quote( '%' . $_CB_database->getEscaped( $to, true ) . '%', false )
//.........这里部分代码省略.........
示例2: cbDeleteUser
/**
* Deletes a user without any check or warning, and related reports, sessions
*
* @deprecated 2.0 Use UserTable()->load( $condition or $id )->delete( null, $cbUserOnly )
*
* @param int $id User id
* @param string $condition ONLY allowed string: "return (\$user->block == 1);" (CBSubs 3.0.0) php condition string on $user e.g. "return (\$user->block == 1);"
* @param boolean $inComprofilerOnly deletes user only in CB, not in Mambo/Joomla
* @return null|boolean|string '' if user deleted and found ok, NULL if user not found, FALSE if condition was not met, STRING error in case of error raised by plugin
*/
function cbDeleteUser($id, $condition = null, $inComprofilerOnly = false)
{
if (!$id) {
return null;
}
$user = new UserTable();
if ($inComprofilerOnly) {
$user->load(array('user_id' => (int) $id));
} else {
$user->load((int) $id);
}
if (!$user->id) {
return null;
}
if ($condition == null || eval($condition)) {
if (!$user->delete((int) $id, $inComprofilerOnly)) {
return $user->getError();
}
return '';
}
return false;
}
示例3: _notifyConnectionChange
/**
* Notifies connection changes
*
* @param int $userId
* @param int $connectionId
* @param string $msg
* @param string $subject
* @param string $messageHTML
* @param string $messageText
* @param string $userMessage
* @return boolean
*/
protected function _notifyConnectionChange( $userId, $connectionId, $msg, $subject, $messageHTML, $messageText, $userMessage = null )
{
global $_CB_framework, $ueConfig;
$rowFrom = new UserTable();
$rowFrom->load( (int) $userId );
$fromName = getNameFormat( $rowFrom->name, $rowFrom->username, $ueConfig['name_format'] );
$fromURL = 'index.php?option=com_comprofiler&view=userprofile&user=' . $userId . '&tab=1' . getCBprofileItemid(true);
$fromURL = cbSef( $fromURL );
if ( strncasecmp( 'http', $fromURL, 4 ) != 0 ) {
$fromURL = $_CB_framework->getCfg( 'live_site' ) . '/' . $fromURL;
}
$subject = sprintf( $subject, $fromName );
if ( $userMessage != null ) {
$messageHTML .= sprintf( str_replace( "\n", "\n<br />", CBTxt::T( 'UE_CONNECTIONMSGPREFIX', " %s included the following personal message:\n\n%s" ) ),
htmlspecialchars( $fromName ),
'<strong>' . htmlspecialchars( $userMessage ) . '</strong>' );
$messageText .= sprintf( str_replace( "\n", "\r\n", CBTxt::T( 'UE_CONNECTIONMSGPREFIX', " %s included the following personal message:\n\n%s" ) ),
$fromName,
$userMessage );
}
$notificationMsgHTML = sprintf( $messageHTML, '<strong><a href="' . $fromURL . '">' . htmlspecialchars( $fromName ) . '</a></strong>' );
$notificationMsgText = sprintf( $messageText, $fromName );
$manageURL = 'index.php?option=com_comprofiler&view=manageconnections' . getCBprofileItemid( true );
$manageURL = cbSef( $manageURL );
if ( strncasecmp( 'http', $manageURL, 4 ) != 0 ) {
$manageURL = $_CB_framework->getCfg( 'live_site' ) . '/' . $manageURL;
}
$notificationMsgHTML = $notificationMsgHTML
. "\n<br /><br /><a href=\"" . $manageURL . '">'
. CBTxt::T( 'UE_MANAGECONNECTIONS_LINK UE_MANAGECONNECTIONS', 'Manage Connections' )
. "</a>\n";
$notificationMsgText = $notificationMsgText
. "\r\n\r\n\r\n" . $fromName . ' '
. CBTxt::T( 'CONNECTION_PROFILE UE_PROFILE', 'Profile' )
. ': '
. cbUnHtmlspecialchars( $fromURL );
$notificationMsgText = $notificationMsgText
. "\r\n\r\n"
. CBTxt::T( 'UE_MANAGECONNECTIONS_URL_LABEL UE_MANAGECONNECTIONS', 'Manage Connections' )
. ': '
. cbUnHtmlspecialchars( $manageURL )
. "\r\n";
$notificationMsgHTML = '<div style="padding: 4px; margin: 4px 3px 6px 0px; background: #C44; font-weight: bold;" class="cbNotice">'
. CBTxt::T( 'UE_SENDPMSNOTICE', 'NOTE: This is a message generated automatically by the Connections system. It has the connecting user\'s address, so you can conveniently reply if you wish to.' )
. "</div>\n\n"
. $notificationMsgHTML;
$cbNotification = new cbNotification();
$cbNotification->sendFromUser( $connectionId, $userId, $subject, $notificationMsgHTML, $notificationMsgText );
$this->_setUserMSG( $msg );
return true;
}
示例4: load
/**
* Loads from database a new user of $cbUserId
*
* @param int $cbUserId User id
* @return boolean True: loaded ok, False:load failed
*/
function load($cbUserId)
{
$this->_cbuser = new UserTable($this->_db);
return $this->_cbuser->load($cbUserId);
}
示例5: get_users_permission
/**
* @deprecated 2.0 No use anymore for such functionality, since we have Permissions for that and we should not be depending on groups
*
* @param array $user_ids
* @param string $action
* @param boolean $allow_myself
* @return null|string
*/
public function get_users_permission($user_ids, $action, $allow_myself = false)
{
global $_CB_framework, $_PLUGINS;
$msg = null;
if (is_array($user_ids) && count($user_ids)) {
$obj = new UserTable($this->_db);
foreach ($user_ids as $user_id) {
if ($user_id != 0) {
if ($obj->load((int) $user_id)) {
/** @noinspection PhpDeprecationInspection */
$groups = $this->get_object_groups($user_id);
if (isset($groups[0])) {
$this_group = strtolower(Application::CmsPermissions()->getGroupName($groups[0]));
} else {
$this_group = 'Registered';
}
} else {
$msg .= 'User not found. ';
$this_group = null;
}
} else {
$this_group = 'Registered';
}
if ($user_id == $_CB_framework->myId()) {
if (!$allow_myself) {
$msg .= "You cannot {$action} Yourself! ";
}
} else {
if (!Application::MyUser()->isSuperAdmin()) {
/** @noinspection PhpDeprecationInspection */
$userGroups = $this->get_object_groups($user_id);
/** @noinspection PhpDeprecationInspection */
$myGroups = $this->get_object_groups($_CB_framework->myId());
$iAmAdmin = Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.manage', 'com_users') && Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.edit', 'com_users');
$exactGids = !$iAmAdmin;
/** @noinspection PhpDeprecationInspection */
$myGidsTree = $this->get_groups_below_me($_CB_framework->myId(), true, $exactGids);
$isHeSAdmin = Application::User((int) $user_id)->isSuperAdmin();
if (array_values($userGroups) == array_values($myGroups) && !$iAmAdmin || $user_id && $userGroups && !array_intersect($userGroups, $myGidsTree) || $isHeSAdmin) {
$msg .= "You cannot {$action} a `{$this_group}`. Only higher-level users have this power. ";
}
}
}
}
} else {
if ($user_ids == $_CB_framework->myId()) {
if (!$allow_myself) {
$msg .= "You cannot {$action} Yourself! ";
}
} else {
if (!Application::MyUser()->isSuperAdmin()) {
/** @noinspection PhpDeprecationInspection */
$userGroups = $this->get_object_groups($user_ids);
/** @noinspection PhpDeprecationInspection */
$myGroups = $this->get_object_groups($_CB_framework->myId());
$iAmAdmin = Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.manage', 'com_users') && Application::MyUser()->isAuthorizedToPerformActionOnAsset('core.edit', 'com_users');
$exactGids = !$iAmAdmin;
/** @noinspection PhpDeprecationInspection */
$myGidsTree = $this->get_groups_below_me($_CB_framework->myId(), true, $exactGids);
$isHeSAdmin = Application::User((int) $user_ids)->isSuperAdmin();
if (array_values($userGroups) == array_values($myGroups) && !$iAmAdmin || $user_ids && $userGroups && !array_intersect($userGroups, $myGidsTree) || $isHeSAdmin) {
$msg .= "You cannot {$action} a user. Only higher-level users have this power. ";
}
}
}
}
if ($_PLUGINS) {
$_PLUGINS->trigger('onUsersPermission', array($user_ids, $action, $allow_myself, &$msg));
}
return $msg;
}
示例6: profiles
/**
* Replaces @MENTION with profile urls
*
* @return string
*/
public function profiles()
{
global $_CB_database, $_CB_framework;
/** @var UserTable[] $users */
static $users = array();
foreach ( $this->words as $k => $word ) {
if ( preg_match( $this->regexp['profile'], $word, $match ) ) {
$cleanWord = Get::clean( $match[1], GetterInterface::STRING );
if ( ! isset( $users[$cleanWord] ) ) {
$user = new UserTable();
if ( is_numeric( $match[1] ) ) {
$user->load( (int) $match[1] );
}
if ( ! $user->get( 'id' ) ) {
$wordNext2 = ( isset( $this->words[$k+1] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+1] ) ) ? $cleanWord . ' ' . Get::clean( $this->words[$k+1], GetterInterface::STRING ) : null );
$wordNext3 = ( $wordNext2 && isset( $this->words[$k+2] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+2] ) ) ? $wordNext2 . ' ' . Get::clean( $this->words[$k+2], GetterInterface::STRING ) : null );
$wordNext4 = ( $wordNext3 && isset( $this->words[$k+3] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+3] ) ) ? $wordNext3 . ' ' . Get::clean( $this->words[$k+3], GetterInterface::STRING ) : null );
$wordNext5 = ( $wordNext4 && isset( $this->words[$k+4] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+4] ) ) ? $wordNext4 . ' ' . Get::clean( $this->words[$k+4], GetterInterface::STRING ) : null );
$wordNext6 = ( $wordNext5 && isset( $this->words[$k+5] ) && ( ! preg_match( $this->regexp['profile'], $this->words[$k+5] ) ) ? $wordNext5 . ' ' . Get::clean( $this->words[$k+5], GetterInterface::STRING ) : null );
$query = 'SELECT c.*, u.*'
. "\n FROM " . $_CB_database->NameQuote( '#__users' ) . " AS u"
. "\n LEFT JOIN " . $_CB_database->NameQuote( '#__comprofiler' ) . " AS c"
. ' ON c.' . $_CB_database->NameQuote( 'id' ) . ' = u.' . $_CB_database->NameQuote( 'id' )
. "\n WHERE ( u." . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $cleanWord ) // Match username exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $cleanWord ); // Match name exactly
if ( $wordNext2 ) { // 2 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext2 ) // Match username +1 word exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext2 ); // Match name +1 word exactly
}
if ( $wordNext3 ) { // 3 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext3 ) // Match username +2 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext3 ); // Match name +2 words exactly
}
if ( $wordNext4 ) { // 4 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext4 ) // Match username +3 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext4 ); // Match name +3 words exactly
}
if ( $wordNext5 ) { // 5 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext5 ) // Match username +4 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext5 ); // Match name +4 words exactly
}
if ( $wordNext6 ) { // 6 Words
$query .= ' OR u.' . $_CB_database->NameQuote( 'username' ) . ' = ' . $_CB_database->Quote( $wordNext6 ) // Match username +5 words exactly
. ' OR u.' . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $wordNext6 ); // Match name +5 words exactly
}
$query .= ' )'
. "\n ORDER BY u." . $_CB_database->NameQuote( 'username' ) . ", u." . $_CB_database->NameQuote( 'name' );
$_CB_database->setQuery( $query );
$_CB_database->loadObject( $user );
}
$users[$cleanWord] = $user;
}
$user = $users[$cleanWord];
if ( $user->get( 'id' ) ) {
$this->parsed = preg_replace( '/@' . (int) $user->get( 'id' ) . '\b|@' . preg_quote( $user->get( 'name' ), '/' ) . '\b|@' . preg_quote( $user->get( 'username' ), '/' ) . '\b|' . preg_quote( $word, '/' ) . '\b/i', '<a href="' . $_CB_framework->userProfileUrl( (int) $user->get( 'id' ) ) . '" rel="nofollow">@' . htmlspecialchars( getNameFormat( $user->get( 'name' ), $user->get( 'username' ), Application::Config()->get( 'name_format' ) ) ) . '</a>', $this->parsed );
}
}
}
return $this->parsed;
}
示例7: updatePaymentStatus
//.........这里部分代码省略.........
}
break;
case 'RegistrationCancelled':
case 'Reversed':
case 'Refunded':
case 'Unsubscribed':
if ($unifiedStatus == 'RegistrationCancelled') {
if (!($previousUnifiedStatus == 'NotInitiated' || $previousUnifiedStatus === 'Pending' && $paymentBasket->payment_method === 'offline')) {
return;
}
}
for ($i = 0, $n = count($subscriptions); $i < $n; $i++) {
$reason = $subscriptions[$i]->_reason;
if ($reason != 'R' || in_array($unifiedStatus, array('Reversed', 'Refunded'))) {
// Expired and Cancelled as well as Partially-Refunded are not reverted ! //TBD: really revert on refund everything ? a plan param would be nice here
if (!in_array($previousUnifiedStatus, array('Pending', 'In-Progress', 'Denied', 'Reversed', 'Refunded')) && in_array($subscriptions[$i]->status, array('A', 'R', 'I')) && !$subscriptions[$i]->hasPendingPayment($paymentBasket->id)) {
// not a cancelled or denied renewal:
$subscriptions[$i]->revert($user, $unifiedStatus);
}
}
}
if ($unifiedStatus == 'RegistrationCancelled') {
$paymentBasket->historySetMessage('Payment basket deleted because the subscriptions and payment got cancelled');
$paymentBasket->delete();
// deletes also payment_Items
}
$paidUserExtension = cbpaidUserExtension::getInstance($paymentBasket->user_id);
$subscriptionsAnyAtAll = $paidUserExtension->getUserSubscriptions('');
$params = cbpaidApp::settingsParams();
$createAlsoFreeSubscriptions = $params->get('createAlsoFreeSubscriptions', 0);
if (count($subscriptionsAnyAtAll) == 0 && !$createAlsoFreeSubscriptions) {
$user = new UserTable();
$id = (int) cbGetParam($_GET, 'user');
$user->load((int) $id);
if ($user->id && $user->block == 1) {
$user->delete(null);
}
}
break;
case 'Denied':
case 'Pending':
if ($unifiedStatus == 'Denied') {
// In fact when denied, it's the case as if the user attempted payment but failed it: He should be able to re-try: So just store the payment as denied for the records.
if ($eventType == 'subscr_failed' || $eventType == 'subscr_cancel' && $autorecurring_type != 2) {
// special case of a failed attempt:
// or this is the final failed attempt of a basket with notifications:
break;
}
}
if ($previousUnifiedStatus == 'Completed') {
return;
// do not change a Completed payment as it cannot become Pending again. If we get "Pending" after "Completed", it is a messages chronological order mistake.
}
break;
case 'In-Progress':
case 'Partially-Refunded':
default:
break;
}
if ($eventType == 'subscr_cancel') {
if (!in_array($unifiedStatus, array('Denied', 'Reversed', 'Refunded', 'Unsubscribed'))) {
for ($i = 0, $n = count($subscriptions); $i < $n; $i++) {
$subscriptions[$i]->autorecurring_cancelled($user, $unifiedStatus, $eventType);
}
}
}
示例8: login
/**
* Logins on host CMS using any allowed authentication methods
*
* @param string $username The username
* @param string|boolean $password Well, The password OR strictly boolean false for login without password
* @param boolean $rememberMe If login should be remembered in a cookie to be sent back to user's browser
* @param boolean $message If an alert message should be prepared on successful login
* @param string $return IN & OUT: IN: return URL NOT SEFED for normal login completition (unless an event says different), OUT: redirection url (no htmlspecialchars) NOT SEFED
* @param array $messagesToUser OUT: messages to display to user (html)
* @param array $alertMessages OUT: messages to alert to user (text)
* @param int $loginType 0: username, 1: email, 2: username or email, 3: username, email or CMS authentication
* @param string $secretKey secretKey used for two step authentication
* @return string Error message if error
*/
public function login($username, $password, $rememberMe, $message, &$return, &$messagesToUser, &$alertMessages, $loginType = 0, $secretKey = null)
{
global $_CB_framework, $ueConfig, $_PLUGINS;
$returnURL = null;
$loggedIn = false;
if (!$username || !$password && $password !== false) {
$resultError = CBTxt::T('LOGIN_INCOMPLETE', 'Please complete the username and password fields.');
} else {
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger('onBeforeLogin', array(&$username, &$password, &$secretKey));
$resultError = null;
$showSysMessage = true;
$stopLogin = false;
$firstLogin = false;
$row = new UserTable();
if ($_PLUGINS->is_errors()) {
$resultError = $_PLUGINS->getErrorMSG();
} else {
$foundUser = false;
// Try login by CB authentication trigger:
$_PLUGINS->trigger('onLoginAuthentication', array(&$username, &$password, &$row, $loginType, &$foundUser, &$stopLogin, &$resultError, &$messagesToUser, &$alertMessages, &$return, &$secretKey));
if (!$foundUser) {
if ($loginType != 2) {
// login by username:
$foundUser = $row->loadByUsername($username) && ($password === false || $row->verifyPassword($password));
}
if (!$foundUser && $loginType >= 1) {
// login by email:
$foundUser = $row->loadByEmail($username) && ($password === false || $row->verifyPassword($password));
if ($foundUser) {
$username = $row->username;
}
}
if (!$foundUser && $loginType > 2) {
// If no result, try login by CMS authentication:
if ($_CB_framework->login($username, $password, $rememberMe, null, $secretKey)) {
$foundUser = $row->load((int) $_CB_framework->myId());
// core user might not have username set, so we use id (bug #3303 fix)
$this->cbSplitSingleName($row);
$row->confirmed = 1;
$row->approved = 1;
$row->store();
// synchronizes with comprofiler table
$loggedIn = true;
}
}
}
if ($foundUser) {
$returnPluginsOverrides = null;
$pluginResults = $_PLUGINS->trigger('onDuringLogin', array(&$row, 1, &$returnPluginsOverrides));
if ($returnPluginsOverrides) {
$return = $returnPluginsOverrides;
}
if (is_array($pluginResults) && count($pluginResults)) {
foreach ($pluginResults as $res) {
if (is_array($res)) {
if (isset($res['messagesToUser'])) {
$messagesToUser[] = $res['messagesToUser'];
}
if (isset($res['alertMessage'])) {
$alertMessages[] = $res['alertMessage'];
}
if (isset($res['showSysMessage'])) {
$showSysMessage = $showSysMessage && $res['showSysMessage'];
}
if (isset($res['stopLogin'])) {
$stopLogin = $stopLogin || $res['stopLogin'];
}
}
}
}
if ($_PLUGINS->is_errors()) {
$resultError = $_PLUGINS->getErrorMSG();
} elseif ($stopLogin) {
// login stopped: don't even check for errors...
} elseif ($row->approved == 2) {
$resultError = CBTxt::T('LOGIN_REJECTED', 'Your sign up request was rejected!');
} elseif ($row->confirmed != 1) {
if ($row->cbactivation == '') {
$row->store();
// just in case the activation code was missing
}
$cbNotification = new cbNotification();
$cbNotification->sendFromSystem($row->id, CBTxt::T(stripslashes($ueConfig['reg_pend_appr_sub'])), CBTxt::T(stripslashes($ueConfig['reg_pend_appr_msg'])), true, isset($ueConfig['reg_email_html']) ? (int) $ueConfig['reg_email_html'] : 0);
$resultError = CBTxt::T('LOGIN_NOT_CONFIRMED', 'Your sign up process is not yet complete! Please check again your email for further instructions that have just been resent. If you don\'t find the email, check your spam-box. Make sure that your email account options are not set to immediately delete spam. If that was the case, just try logging in again to receive a new instructions email.');
} elseif ($row->approved == 0) {
//.........这里部分代码省略.........
示例9: userSave
function userSave($option, $uid)
{
global $_CB_framework, $_POST, $_PLUGINS;
// simple spoof check security
cbSpoofCheck('userEdit');
// check rights to access:
if ($uid == null) {
$msg = CBTxt::Th('UE_USER_PROFILE_NOT', 'Your profile could not be updated.');
} else {
$msg = cbCheckIfUserCanPerformUserTask($uid, 'allowModeratorsUserEdit');
}
$_PLUGINS->loadPluginGroup('user');
$_PLUGINS->trigger('onBeforeUserProfileSaveRequest', array($uid, &$msg, 1));
if ($msg) {
$_CB_framework->enqueueMessage($msg, 'error');
return;
}
// Get current user state:
$userComplete = new UserTable();
if (!$userComplete->load((int) $uid)) {
$_CB_framework->enqueueMessage(CBTxt::Th('UE_USER_PROFILE_NOT', 'Your profile could not be updated.'), 'error');
return;
}
// Update lastupdatedate of profile by user:
if ($_CB_framework->myId() == $uid) {
$userComplete->lastupdatedate = $_CB_framework->dateDbOfNow();
}
// Store new user state:
$saveResult = $userComplete->saveSafely($_POST, $_CB_framework->getUi(), 'edit');
if (!$saveResult) {
$regErrorMSG = $userComplete->getError();
$_PLUGINS->trigger('onAfterUserProfileSaveFailed', array(&$userComplete, &$regErrorMSG, 1));
HTML_comprofiler::userEdit($userComplete, $option, CBTxt::T('UE_UPDATE', 'Update'), $regErrorMSG);
return;
}
$_PLUGINS->trigger('onAfterUserProfileSaved', array(&$userComplete, 1));
cbRedirectToProfile($uid, CBTxt::Th('USER_DETAILS_SAVE', 'Your settings have been saved.'));
}