for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Copyright (c) 2017
*
* @package Majima
* @author David Neustadt <[email protected]>
* @copyright 2017 David Neustadt
* @license MIT
*/
namespace Majima\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\EquatableInterface;
* Class MajimaUser
* @package Majima\Security
class MajimaUser implements UserInterface, EquatableInterface
{
* @var string
private $username;
private $password;
private $salt;
* @var array
private $roles;
* MajimaUser constructor.
* @param $username
* @param $password
* @param $salt
* @param array $roles
public function __construct($username, $password, $salt, array $roles)
$this->username = $username;
$this->password = $password;
$this->salt = $salt;
$this->roles = $roles;
}
* @return array
public function getRoles()
return $this->roles;
* @return string
public function getPassword()
return $this->password;
public function getSalt()
return $this->salt;
public function getUsername()
return $this->username;
public function eraseCredentials()
* @param UserInterface $user
* @return bool
public function isEqualTo(UserInterface $user)
if (!$user instanceof MajimaUser) {
return false;
if ($this->password !== $user->getPassword()) {
if ($this->salt !== $user->getSalt()) {
if ($this->username !== $user->getUsername()) {
return true;