for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SumoCoders\FrameworkMultiUserBundle\Security;
use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
use SumoCoders\FrameworkMultiUserBundle\User\UserRepository;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
class ObjectUserProvider implements UserProviderInterface
{
/** @var UserRepository */
private $userRepository;
/**
* @param UserRepository $userRepository
*/
public function __construct(UserRepository $userRepository)
$this->userRepository = $userRepository;
}
* {@inheritDoc}
public function loadUserByUsername($username)
$user = $this->userRepository->findByUsername($username);
if ($user) {
return $user;
throw new UsernameNotFoundException(
sprintf('Username "%s" does not exist.', $username)
);
public function refreshUser(UserInterface $user)
if (!$this->supportsClass(get_class($user))) {
throw new UnsupportedUserException(
sprintf('Instances of "%s" are not supported.', get_class($user))
return $this->loadUserByUsername($user->getUsername());
public function supportsClass($class)
return $this->userRepository->supportsClass($class);