Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/User/UserInfo.php
Строк: 748
<?php

namespace ConcreteCoreUser;

use 
ConcreteCoreApplicationApplication;
use 
ConcreteCoreDatabaseConnectionConnection;
use 
ConcreteCoreDatabaseDatabaseManager;
use 
ConcreteCoreFileStorageLocationStorageLocation;
use 
ConcreteCoreFoundationObject;
use 
ConcreteCoreUrlUrlInterface;
use 
ConcreteCoreUserEventAddUser;
use 
ConcreteCoreUserPrivateMessageLimit;
use 
ConcreteCoreUserPrivateMessageMailbox as UserPrivateMessageMailbox;
use 
ImagineImageImageInterface;
use 
ConcreteFlysystemAdapterInterface;
use 
ConcreteCoreMailImporterMailImporter;
use 
View;
use 
Config;
use 
Events;
use 
User as ConcreteUser;
use 
UserAttributeKey;
use 
ConcreteCoreAttributeValueUserValue as UserAttributeValue;
use 
Group;
use 
HautelookPhpassPasswordHash;
use 
Session;
use 
Core;
use 
Database;
use 
ConcreteCoreUserAvatarAvatarServiceInterface;

class 
UserInfo extends Object implements ConcreteCorePermissionObjectInterface
{

    protected 
$avatarService;
    protected 
$application;
    protected 
$connection;

    public function 
__construct(Connection $connectionApplication $applicationAvatarServiceInterface $avatarService)
    {
        
$this->avatarService $avatarService;
        
$this->application $application;
        
$this->connection $connection;
    }
    
/**
     * @return string
     */
    
public function __toString()
    {
        return 
'UserInfo: ' $this->getUserID();
    }

    
/**
     * @return int
     */
    
public function getPermissionObjectIdentifier()
    {
        return 
$this->uID;
    }

    
/**
     * @return string
     */
    
public function getPermissionResponseClassName()
    {
        return 
'\Concrete\Core\Permission\Response\UserInfoResponse';
    }

    
/**
     * @return string|false
     */
    
public function getPermissionAssignmentClassName()
    {
        return 
false;
    }

    
/**
     * @return string|false
     */
    
public function getPermissionObjectKeyCategoryHandle()
    {
        return 
false;
    }

    
/**
     * @return Group[]
     */
    
public function getUserBadges()
    {
        
$db $this->connection;
        
$groups = array();
        
$r $db->Execute('select g.gID from Groups g inner join UserGroups ug on g.gID = ug.gID where g.gIsBadge = 1 and ug.uID = ? order by ugEntered desc', array($this->getUserID()));
        while (
$row $r->FetchRow()) {
            
$groups[] = Group::getByID($row['gID']);
        }

        return 
$groups;
    }


    
/**
     * Deletes a user.
     */
    
public function delete()
    {
        
// we will NOT let you delete the admin user
        
if ($this->uID == USER_SUPER_ID) {
            return 
false;
        }

        
// run any internal event we have for user deletion

        
$ue = new ConcreteCoreUserEventDeleteUser($this);
        
$ue Events::dispatch('on_user_delete'$ue);
        if (!
$ue->proceed()) {
            return 
false;
        }

        
$db $this->connection;

        
$r $db->Execute('select avID, akID from UserAttributeValues where uID = ?', array($this->uID));
        while (
$row $r->FetchRow()) {
            
$uak UserAttributeKey::getByID($row['akID']);
            
$av $this->getAttributeValueObject($uak);
            if (
is_object($av)) {
                
$av->delete();
            }
        }

        
$r $db->query("DELETE FROM OauthUserMap WHERE user_id = ?", array(intval($this->uID)));
        
        
$r $db->query("DELETE FROM UserSearchIndexAttributes WHERE uID = ?", array(intval($this->uID)));

        
$r $db->query("DELETE FROM UserGroups WHERE uID = ?", array(intval($this->uID)));
        
$r $db->query("DELETE FROM Users WHERE uID = ?", array(intval($this->uID)));
        
$r $db->query("DELETE FROM UserValidationHashes WHERE uID = ?", array(intval($this->uID)));

        
$r $db->query("DELETE FROM Piles WHERE uID = ?", array(intval($this->uID)));

        
$r $db->query("UPDATE Blocks set uID=? WHERE uID = ?", array(intval(USER_SUPER_ID), intval($this->uID)));
        
$r $db->query("UPDATE Pages set uID=? WHERE uID = ?", array(intval(USER_SUPER_ID), intval($this->uID)));
    }

    
/**
     * @param ConcreteCoreUserPrivateMessagePrivateMessage $msg
     *
     * @return bool
     */
    
public function canReadPrivateMessage($msg)
    {
        return 
$msg->getMessageUserID() == $this->getUserID();
    }

    
/**
     * @param ImageInterface $image
     */
    
public function updateUserAvatar(ImageInterface $image)
    {
        
$fsl StorageLocation::getDefault()->getFileSystemObject();
        
$image $image->get('jpg');
        
$file REL_DIR_FILES_AVATARS '/' $this->getUserID() . '.jpg';
        if (
$fsl->has($file)) {
            
$fsl->delete($file);
        }

        
$fsl->write(
            
$file,
            
$image,
            array(
                
'visibility' => AdapterInterface::VISIBILITY_PUBLIC,
                
'mimetype' => 'image/jpeg',
            )
        );

        
$db $this->connection;
        
$db->query("update Users set uHasAvatar = 1 where uID = ?", array($this->getUserID()));

        
// run any internal event we have for user update
        
$ui self::getByID($this->uID);
        
$ue = new ConcreteCoreUserEventUserInfo($ui);
        
Events::dispatch('on_user_update'$ue);
    }

    
/**
     * @param UserInfo $recipient
     * @param string $subject
     * @param string $text
     * @param ConcreteCoreUserPrivateMessagePrivateMessage $inReplyTo
     *
     * @return ConcreteCoreErrorError|false|null
     */
    
public function sendPrivateMessage($recipient$subject$text$inReplyTo false)
    {
        if (
Limit::isOverLimit($this->getUserID())) {
            return 
Limit::getErrorObject();
        }
        
$antispam Core::make('helper/validation/antispam');
        
$messageText t('Subject: %s'$subject);
        
$messageText .= "n";
        
$messageText .= t('Message: %s'$text);

        
$additionalArgs = array('user' => $this);
        if (!
$antispam->check($messageText'private_message'$additionalArgs)) {
            return 
false;
        }

        
$subject = ($subject == '') ? t('(No Subject)') : $subject;
        
$db $this->connection;
        
$dt Core::make('helper/date');
        
$msgDateCreated $dt->getOverridableNow();
        
$v = array($this->getUserID(), $msgDateCreated$subject$text$recipient->getUserID());
        
$db->Execute('insert into UserPrivateMessages (uAuthorID, msgDateCreated, msgSubject, msgBody, uToID) values (?, ?, ?, ?, ?)'$v);

        
$msgID $db->Insert_ID();

        if (
$msgID 0) {
            
// we add the private message to the sent box of the sender, and the inbox of the recipient
            
$v = array($msgID$this->getUserID(), $this->getUserID(), UserPrivateMessageMailbox::MBTYPE_SENT01);
            
$db->Execute('insert into UserPrivateMessagesTo (msgID, uID, uAuthorID, msgMailboxID, msgIsNew, msgIsUnread) values (?, ?, ?, ?, ?, ?)'$v);
            
$v = array($msgID$recipient->getUserID(), $this->getUserID(), UserPrivateMessageMailbox::MBTYPE_INBOX11);
            
$db->Execute('insert into UserPrivateMessagesTo (msgID, uID, uAuthorID, msgMailboxID, msgIsNew, msgIsUnread) values (?, ?, ?, ?, ?, ?)'$v);
        }

        
// If the message is in reply to another message, we make a note of that here
        
if (is_object($inReplyTo)) {
            
$db->Execute('update UserPrivateMessagesTo set msgIsReplied = 1 where uID = ? and msgID = ?', array($this->getUserID(), $inReplyTo->getMessageID()));
        }

        
// send the email notification
        
if ($recipient->getAttribute('profile_private_messages_notification_enabled')) {
            
$mh Core::make('mail');
            
$mh->addParameter('msgSubject'$subject);
            
$mh->addParameter('msgBody'$text);
            
$mh->addParameter('msgAuthor'$this->getUserName());
            
$mh->addParameter('msgDateCreated'$msgDateCreated);
            
$mh->addParameter('profileURL'$this->getUserPublicProfileUrl());
            
$mh->addParameter('profilePreferencesURL'View::url('/account/profile/edit'));
            
$mh->to($recipient->getUserEmail());
            
$mh->addParameter('siteName'Config::get('concrete.site'));

            
$mi MailImporter::getByHandle("private_message");
            if (
is_object($mi) && $mi->isMailImporterEnabled()) {
                
$mh->load('private_message_response_enabled');
                
// we store information ABOUT the message here. The mail handler has to know how to handle this.
                
$data = new stdClass();
                
$data->msgID $msgID;
                
$data->toUID $recipient->getUserID();
                
$data->fromUID $this->getUserID();
                
$mh->enableMailResponseProcessing($mi$data);
            } else {
                
$mh->load('private_message');
            }
            
$mh->sendMail();
        }
    }

    
/**
     * Gets the User object of the current UserInfo object ($this).
     *
     * @return User
     */
    
public function getUserObject()
    {
        
// returns a full user object - groups and everything - for this userinfo object
        
$nu ConcreteUser::getByUserID($this->uID);

        return 
$nu;
    }

    
/**
     * @param array $data
     *
     * @return bool|null
     */
    
public function update($data)
    {
        
$db $this->connection;
        if (
$this->uID) {
            
$ux $this->getUserObject();
            
$uName $this->getUserName();
            
$uEmail $this->getUserEmail();
            
$uHasAvatar $this->hasAvatar();
            
$uTimezone $this->getUserTimezone();
            
$uDefaultLanguage $ux->getUserDefaultLanguage();
            if (isset(
$data['uName'])) {
                
$uName $data['uName'];
            }
            
$emailChanged false;
            if (isset(
$data['uEmail'])) {
                if (
$uEmail != $data['uEmail']) {
                    
$emailChanged true;
                }
                
$uEmail $data['uEmail'];
            }
            if (isset(
$data['uHasAvatar'])) {
                
$uHasAvatar $data['uHasAvatar'];
            }
            if (isset(
$data['uTimezone'])) {
                
$uTimezone $data['uTimezone'];
            }
            if (isset(
$data['uDefaultLanguage']) && $data['uDefaultLanguage'] != '') {
                
$uDefaultLanguage $data['uDefaultLanguage'];
            }

            
$testChange false;

            if (isset(
$data['uPassword']) && $data['uPassword'] != null) {
                if (
$data['uPassword'] == $data['uPasswordConfirm']) {
                    
$dh Core::make('helper/date');
                    
$dateTime $dh->getOverridableNow();
                    
$v = array($uName$uEmail$this->getUserObject()->getUserPasswordHasher()->HashPassword($data['uPassword']), $uHasAvatar 0$uTimezone$uDefaultLanguage$dateTime$this->uID);
                    
$r $db->prepare("update Users set uName = ?, uEmail = ?, uPassword = ?, uHasAvatar = ?, uTimezone = ?, uDefaultLanguage = ?, uLastPasswordChange = ? where uID = ?");
                    
$res $db->execute($r$v);

                    
$testChange true;

                    
$currentUser = new User();
                    
$session Core::make('session');
                    if (
$currentUser->isLoggedIn() && $currentUser->getUserID() == $session->get('uID')) {
                        
$session->set('uLastPasswordChange'$dateTime);
                    }
                }
            } else {
                
$v = array($uName$uEmail$uHasAvatar 0$uTimezone$uDefaultLanguage$this->uID);
                
$r $db->prepare("update Users set uName = ?, uEmail = ?, uHasAvatar = ?, uTimezone = ?, uDefaultLanguage = ? where uID = ?");
                
$res $db->execute($r$v);
            }

            if (
$emailChanged) {
                
$db->query("DELETE FROM UserValidationHashes WHERE uID = ?", array(intval($this->uID)));
            }

            
// now we check to see if the user is updated his or her own logged in record
            
$session Core::make('session');
            if (
$session->has('uID') && ($session->get('uID') == $this->uID)) {
                
$session->set('uName'$uName);
                
$session->set('uTimezone'$uTimezone);
                
$session->set('uDefaultLanguage'$uDefaultLanguage);
            }

            
// run any internal event we have for user update
            
$ui self::getByID($this->uID);
            
$ue = new ConcreteCoreUserEventUserInfo($ui);
            
Events::dispatch('on_user_update'$ue);

            if (
$testChange) {
                
$ue = new ConcreteCoreUserEventUserInfoWithPassword($ui);
                
Events::dispatch('on_user_change_password'$ue);
            }

            return 
$res;
        }
    }

    
/**
     * @param int[] $groupArray
     */
    
public function updateGroups($groupArray)
    {
        
$db $this->connection;
        
$q "select gID from UserGroups where uID = '{$this->uID}'";
        
$r $db->query($q);
        if (
$r) {
            
$existingGIDArray = array();
            while (
$row $r->fetchRow()) {
                
$existingGIDArray[] = $row['gID'];
            }
        }

        if (
is_array($groupArray)) {
            foreach (
$groupArray as $gID) {
                
$key array_search($gID$existingGIDArray);
                if (
$key !== false) {
                    
// we remove this item from the existing GID array
                    
unset($existingGIDArray[$key]);
                } else {
                    
// this item is new, so we add it.
                    
$_ux $this->getUserObject();
                    
$g Group::getByID($gID);
                    
$_ux->enterGroup($g);
                }
            }
        }

        
// now we go through the existing GID Array, and remove everything, since whatever is left is not wanted.

        // Fire on_user_exit_group event for each group exited
        
foreach ($existingGIDArray as $gID) {
            
$group Group::getByID($gID);
            if (
$group) {
                
$ue = new ConcreteCoreUserEventUserGroup($this->getUserObject());
                
$ue->setGroupObject($group);
                
Events::dispatch('on_user_exit_group'$ue);
            }
        }

        
// Remove from db
        
if (count($existingGIDArray) > 0) {
            
$inStr implode(','$existingGIDArray);
            
$q2 "delete from UserGroups where uID = '{$this->uID}' and gID in ({$inStr})";
            
$db->query($q2);
            
// fire the user group removal event for each of the groups we've deleted
            
foreach ($existingGIDArray as $gID) {
                
$ue = new ConcreteCoreUserEventUserGroup($this->getUserObject());
                
$ue->setGroupObject(Group::getByID($gID));
                
Events::dispatch('on_user_exit_group'$ue);
            }
        }
    }

    
/**
     * @return string
     */
    
public function setupValidation()
    {
        
$db $this->connection;
        
$hash $db->GetOne("select uHash from UserValidationHashes where uID = ? order by uDateGenerated desc", array($this->uID));
        if (
$hash) {
            return 
$hash;
        } else {
            
$h Core::make('helper/validation/identifier');
            
$hash $h->generate('UserValidationHashes''uHash');
            
$db->Execute("insert into UserValidationHashes (uID, uHash, uDateGenerated) values (?, ?, ?)", array($this->uID$hashtime()));

            return 
$hash;
        }
    }

    
/**
     * @return true
     */
    
public function markValidated()
    {
        
$db $this->connection;
        
$v = array($this->uID);
        
$db->query("update Users set uIsValidated = 1, uIsFullRecord = 1 where uID = ?"$v);
        
$db->query("update UserValidationHashes set uDateRedeemed = " time() . " where uID = ?"$v);

        
$ue = new ConcreteCoreUserEventUserInfo($this);
        
Events::dispatch('on_user_validate'$ue);

        return 
true;
    }

    
/**
     * @param string $newPassword
     *
     * @return bool
     */
    
public function changePassword($newPassword)
    {
        
$db $this->connection;
        if (
$this->uID) {
            
$dh Core::make('helper/date');
            
$dateTime $dh->getOverridableNow();
            
$v = array(
                
$this->getUserObject()->getUserPasswordHasher()->HashPassword($newPassword),
                
$dateTime,
                
$this->uID,
            );
            
$q "update Users set uPassword = ?, uLastPasswordChange = ?  where uID = ?";
            
$r $db->prepare($q);
            
$res $db->execute($r$v);

            
$ue = new ConcreteCoreUserEventUserInfoWithPassword($this);
            
$ue->setUserPassword($newPassword);

            
$currentUser = new User();
            
$session Core::make('session');
            if (
$currentUser->isLoggedIn() && $currentUser->getUserID() == $session->get('uID')) {
                
$session->set('uLastPasswordChange'$dateTime);
            }

            
Events::dispatch('on_user_change_password'$ue);

            return 
$res;
        }
    }

    
/**
     */
    
public function activate()
    {
        
$db $this->connection;
        
$q "update Users set uIsActive = 1 where uID = '{$this->uID}'";
        
$db->query($q);
        
$ue = new ConcreteCoreUserEventUserInfo($this);
        
Events::dispatch('on_user_activate'$ue);
    }

    
/**
     */
    
public function deactivate()
    {
        
$db $this->connection;
        
$q "update Users set uIsActive = 0 where uID = '{$this->uID}'";
        
$db->query($q);
        
$ue = new ConcreteCoreUserEventUserInfo($this);
        
Events::dispatch('on_user_deactivate'$ue);
    }

    
/**
     * @return string
     */
    
public function resetUserPassword()
    {
        
// resets user's password, and returns the value of the reset password
        
if ($this->uID 0) {
            
$newPassword '';
            
$chars "abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
            for (
$i 0$i 7$i++) {
                
$newPassword .= substr($charsrand() % strlen($chars), 1);
            }
            
$this->changePassword($newPassword);

            return 
$newPassword;
        }
    }

    public function 
getUserAvatar()
    {
        return 
$this->avatarService->getAvatar($this);
    }

    
/**
     * @return null|ConcreteCoreUrlUrlInterface
     */
    
public function getUserPublicProfileUrl()
    {
        if (!
$this->application['config']->get('concrete.user.profiles_enabled')) {
            return 
null;
        }
        
$url $this->application->make('url/manager');
        return 
$url->resolve(array(
            
'/members/profile',
            
'view',
            
$this->getUserID()
            )
        );
    }

    
/**
     * @return bool
     */
    
public function hasAvatar()
    {
        return 
$this->avatarService->userHasAvatar($this);
    }

    
/**
     * @return int
     */
    
public function getLastLogin()
    {
        return 
$this->uLastLogin;
    }

    
/**
     * @return string|null
     */
    
public function getLastIPAddress()
    {
        
$ip = new ConcreteCoreUtilityIPAddress($this->uLastIPtrue);

        return 
$ip->getIp($ip::FORMAT_IP_STRING);
    }

    
/**
     * @return int
     */
    
public function getPreviousLogin()
    {
        return 
$this->uPreviousLogin;
    }

    
/**
     * @return bool
     */
    
public function isActive()
    {
        return 
$this->uIsActive;
    }

    
/**
     * @return bool
     */
    
public function isValidated()
    {
        return 
$this->uIsValidated;
    }

    
/**
     * @return bool
     */
    
public function isFullRecord()
    {
        return 
$this->uIsFullRecord;
    }

    
/**
     * @return int
     */
    
public function getNumLogins()
    {
        return 
$this->uNumLogins;
    }

    
/**
     * @return int
     */
    
public function getUserID()
    {
        return 
$this->uID;
    }

    
/**
     * @return string
     */
    
public function getUserName()
    {
        return 
$this->uName;
    }

    
/**
     * @return string
     */
    
public function getUserDisplayName()
    {
        return 
$this->getUserName();
    }

    
/**
     * @return string
     */
    
public function getUserPassword()
    {
        return 
$this->uPassword;
    }

    
/**
     * @return string
     */
    
public function getUserEmail()
    {
        return 
$this->uEmail;
    }

    
/**
     * Returns the user's timezone.
     *
     * @return string
     */
    
public function getUserTimezone()
    {
        return 
$this->uTimezone;
    }

    
/**
     * @return string
     */
    
public function getUserDefaultLanguage()
    {
        return 
$this->uDefaultLanguage;
    }

    
/**
     * Gets the date a user was added to the system.
     *
     * @return string date formated like: 2009-01-01 00:00:00
     */
    
public function getUserDateAdded()
    {
        return 
$this->uDateAdded;
    }

    
/**
     * Gets the date a user was last active on the site.
     *
     * @return string date formated like: 2009-01-01 00:00:00
     */
    
public function getLastOnline()
    {
        return 
$this->uLastOnline;
    }

    
/**
     * @param UserAttributeKey[] $attributes
     */
    
public function saveUserAttributesForm($attributes)
    {
        foreach (
$attributes as $uak) {
            
$uak->saveAttributeForm($this);
        }

        
$ue = new ConcreteCoreUserEventUserInfoWithAttributes($this);
        
$ue->setAttributes($attributes);
        
Events::dispatch('on_user_attributes_saved'$ue);
    }


    
/**
     * Sets the attribute of a user info object to the specified value, and saves it in the database.
     *
     * @param UserAttributeKey|string $ak
     * @param mixed $value
     */
    
public function setAttribute($ak$value)
    {
        if (!
is_object($ak)) {
            
$ak UserAttributeKey::getByHandle($ak);
        }
        
$ak->setAttribute($this$value);
        
$this->reindex();
    }

    
/**
     * @param UserAttributeKey|string $ak
     */
    
public function clearAttribute($ak)
    {
        if (!
is_object($ak)) {
            
$ak UserAttributeKey::getByHandle($ak);
        }
        
$cav $this->getAttributeValueObject($ak);
        if (
is_object($cav)) {
            
$cav->delete();
        }
        
$this->reindex();
    }

    
/**
     * Reindex the attributes on this file.
     */
    
public function reindex()
    {
        
$attribs UserAttributeKey::getAttributes(
            
$this->getUserID(),
            
'getSearchIndexValue'
        
);
        
$db $this->connection;

        
$db->Execute('delete from UserSearchIndexAttributes where uID = ?', array($this->getUserID()));
        
$searchableAttributes = array('uID' => $this->getUserID());

        
$key = new UserAttributeKey();
        
$key->reindex('UserSearchIndexAttributes'$searchableAttributes$attribs);
    }

    
/**
     * Gets the value of the attribute for the user.
     *
     * @param UserAttributeKey|string $ak
     * @param string|false $displayMode
     *
     * @return mixed|null
     */
    
public function getAttribute($ak$displayMode false)
    {
        if (!
is_object($ak)) {
            
$ak UserAttributeKey::getByHandle($ak);
        }
        if (
is_object($ak)) {
            
$av $this->getAttributeValueObject($ak);
            if (
is_object($av)) {
                if (
func_num_args() > 2) {
                    
$args func_get_args();
                    
array_shift($args);

                    return 
call_user_func_array(array($av'getValue'), $args);
                } else {
                    return 
$av->getValue($displayMode);
                }
            }
        }
    }

    
/**
     * @param UserAttributeKey|string $ak
     */
    
public function getAttributeField($ak)
    {
        if (!
is_object($ak)) {
            
$ak UserAttributeKey::getByHandle($ak);
        }
        
$value $this->getAttributeValueObject($ak);
        
$ak->render('form'$value);
    }

    
/**
     * @param UserAttributeKey|string $ak
     * @param bool $createIfNotFound
     *
     * @return ConcreteCoreAttributeValueUserValue|false
     */
    
public function getAttributeValueObject($ak$createIfNotFound false)
    {
        
$db $this->connection;
        
$av false;
        if (!
is_object($ak)) {
            
$ak UserAttributeKey::getByHandle($ak);
        }
        
$v = array($this->getUserID(), $ak->getAttributeKeyID());
        
$avID $db->GetOne("select avID from UserAttributeValues where uID = ? and akID = ?"$v);
        if (
$avID 0) {
            
$av UserAttributeValue::getByID($avID);
            if (
is_object($av)) {
                
$av->setUser($this);
                
$av->setAttributeKey($ak);
            }
        }

        if (
$createIfNotFound) {
            
$cnt 0;

            
// Is this avID in use ?
            
if (is_object($av)) {
                
$cnt $db->GetOne("select count(avID) from UserAttributeValues where avID = ?"$av->getAttributeValueID());
            }

            if ((!
is_object($av)) || ($cnt 1)) {
                
$newAV $ak->addAttributeValue();
                
$av UserAttributeValue::getByID($newAV->getAttributeValueID());
                
$av->setUser($this);
            }
        }

        return 
$av;
    }

    
/**
     * Magic method for user attributes. This is db expensive but pretty damn cool
     * so if the attrib handle is "my_attribute", then get the attribute with $ui->getUserMyAttribute(), or "uFirstName" become $ui->getUserUfirstname();.
     * @return mixed|null
     */
    
public function __call($nm$a)
    {
        if (
substr($nm07) == 'getUser') {
            
$nm preg_replace('/(?!^)[[:upper:]]/''_'$nm);
            
$nm strtolower($nm);
            
$nm str_replace('get_user_'''$nm);

            return 
$this->getAttribute($nm);
        }
    }


    
/**
     * @deprecated
     */
    
public static function add($data)
    {
        return 
Core::make('user.registration')->create($data);
    }

    
/**
     * @deprecated
     */
    
public static function addSuperUser($uPasswordEncrypted$uEmail)
    {
        return 
Core::make('user.registration')->createSuperUser($uPasswordEncrypted$uEmail);
    }

    
/**
     * @deprecated
     */
    
public static function register($data)
    {
        return 
Core::make('user.registration')->createFromPublicRegistration($data);
    }

    
/**
     * @deprecated
     */
    
public static function getByID($uID)
    {
        return 
Core::make('ConcreteCoreUserUserInfoFactory')->getByID($uID);
    }

    
/**
     * @deprecated
     */
    
public static function getByUserName($uName)
    {
        return 
Core::make('ConcreteCoreUserUserInfoFactory')->getByName($uName);
    }

    
/**
     * @deprecated
     */
    
public static function getByEmail($uEmail)
    {
        return 
Core::make('ConcreteCoreUserUserInfoFactory')->getByEmail($uEmail);
    }

    
/**
     * @deprecated
     */
    
public static function getByValidationHash($uHash$unredeemedHashesOnly true)
    {
        return 
Core::make('ConcreteCoreUserUserInfoFactory')->getByValidationHash($uHash$unredeemedHashesOnly);
    }

}
Онлайн: 2
Реклама