116 lines
2.7 KiB
PHP
116 lines
2.7 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the FOSUserBundle package.
|
|
*
|
|
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace FOS\UserBundle\Model;
|
|
|
|
use FOS\UserBundle\Util\CanonicalFieldsUpdater;
|
|
use FOS\UserBundle\Util\PasswordUpdaterInterface;
|
|
|
|
/**
|
|
* Abstract User Manager implementation which can be used as base class for your
|
|
* concrete manager.
|
|
*
|
|
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
|
|
*/
|
|
abstract class UserManager implements UserManagerInterface
|
|
{
|
|
private $passwordUpdater;
|
|
private $canonicalFieldsUpdater;
|
|
|
|
public function __construct(PasswordUpdaterInterface $passwordUpdater, CanonicalFieldsUpdater $canonicalFieldsUpdater)
|
|
{
|
|
$this->passwordUpdater = $passwordUpdater;
|
|
$this->canonicalFieldsUpdater = $canonicalFieldsUpdater;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function createUser()
|
|
{
|
|
$class = $this->getClass();
|
|
$user = new $class();
|
|
|
|
return $user;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function findUserByEmail($email)
|
|
{
|
|
return $this->findUserBy(array('emailCanonical' => $this->canonicalFieldsUpdater->canonicalizeEmail($email)));
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function findUserByUsername($username)
|
|
{
|
|
return $this->findUserBy(array('usernameCanonical' => $this->canonicalFieldsUpdater->canonicalizeUsername($username)));
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function findUserByUsernameOrEmail($usernameOrEmail)
|
|
{
|
|
if (preg_match('/^.+\@\S+\.\S+$/', $usernameOrEmail)) {
|
|
$user = $this->findUserByEmail($usernameOrEmail);
|
|
if (null !== $user) {
|
|
return $user;
|
|
}
|
|
}
|
|
|
|
return $this->findUserByUsername($usernameOrEmail);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function findUserByConfirmationToken($token)
|
|
{
|
|
return $this->findUserBy(array('confirmationToken' => $token));
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function updateCanonicalFields(UserInterface $user)
|
|
{
|
|
$this->canonicalFieldsUpdater->updateCanonicalFields($user);
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function updatePassword(UserInterface $user)
|
|
{
|
|
$this->passwordUpdater->hashPassword($user);
|
|
}
|
|
|
|
/**
|
|
* @return PasswordUpdaterInterface
|
|
*/
|
|
protected function getPasswordUpdater()
|
|
{
|
|
return $this->passwordUpdater;
|
|
}
|
|
|
|
/**
|
|
* @return CanonicalFieldsUpdater
|
|
*/
|
|
protected function getCanonicalFieldsUpdater()
|
|
{
|
|
return $this->canonicalFieldsUpdater;
|
|
}
|
|
}
|