<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use App\Utility\AdvancedUserInterface;
use Symfony\Component\Security\Core\User\EquatableInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
/**
* User
*
* @ORM\Table(name="user_acm", uniqueConstraints={@ORM\UniqueConstraint(name="UNIQ_USER1", columns={"username"})})
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
*/
class User implements AdvancedUserInterface, \Serializable, EquatableInterface, PasswordAuthenticatedUserInterface
{
/**
* @var string
*
* @ORM\Column(name="username", type="string", length=25, nullable=false)
*/
private $username;
/**
* @var string
*
* @ORM\Column(name="salt", type="string", length=32, nullable=true)
*/
private $salt;
/**
* @var string
*
* @ORM\Column(name="text1", type="string", length=255, nullable=false)
*/
private $password;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=60, nullable=false)
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="first_name", type="string", length=50, nullable=false)
*/
private $firstName;
/**
* @var string
*
* @ORM\Column(name="last_name", type="string", length=50, nullable=false)
*/
private $lastName;
/**
* @var string
*
* @ORM\Column(name="user_role", type="string", length=50, nullable=false)
*/
private $userRole;
/**
* @var boolean
*
* @ORM\Column(name="change_text1", type="boolean", nullable=false)
*/
private $changePassword;
/**
* @var boolean
*
* @ORM\Column(name="status", type="boolean", nullable=false)
*/
private $status;
/**
* @var boolean
*
* @ORM\Column(name="flag_token", type="boolean", nullable=false)
*/
private $flag_token;
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* Set username
*
* @param string $username
*
* @return User
*/
public function setUsername($username)
{
$this->username = $username;
return $this;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
/**
* Set salt
*
* @param string $salt
*
* @return User
*/
public function setSalt($salt)
{
$this->salt = $salt;
return $this;
}
/**
* Get salt
*
* @return string
*/
public function getSalt()
{
return $this->salt;
}
/**
* Set password
*
* @param string $password
*
* @return User
*/
public function setPassword($password)
{
$this->password = $password;
return $this;
}
/**
* Get password
*
* @return string
*/
public function getPassword() : ?string
{
return $this->password;
}
/**
* Set email
*
* @param string $email
*
* @return User
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set firstName
*
* @param string $firstName
*
* @return User
*/
public function setFirstName($firstName)
{
$this->firstName = $firstName;
return $this;
}
/**
* Get firstName
*
* @return string
*/
public function getFirstName()
{
return $this->firstName;
}
/**
* Set lastName
*
* @param string $lastName
*
* @return User
*/
public function setLastName($lastName)
{
$this->lastName = $lastName;
return $this;
}
/**
* Get lastName
*
* @return string
*/
public function getLastName()
{
return $this->lastName;
}
/**
* Set userRole
*
* @param string $userRole
*
* @return User
*/
public function setUserRole($userRole)
{
$this->userRole = $userRole;
return $this;
}
/**
* Get userRole
*
* @return string
*/
public function getUserRole()
{
return $this->userRole;
}
/**
* Set changePassword
*
* @param boolean $changePassword
*
* @return User
*/
public function setChangePassword($changePassword)
{
$this->changePassword = $changePassword;
return $this;
}
/**
* Get changePassword
*
* @return boolean
*/
public function getChangePassword()
{
return $this->changePassword;
}
/**
* Set status
*
* @param boolean $status
*
* @return User
*/
public function setStatus($status)
{
$this->status = $status;
return $this;
}
/**
* Get status
*
* @return boolean
*/
public function getStatus()
{
return $this->status;
}
/**
* Set flag_token
*
* @param boolean $flag_token
*
* @return User
*/
public function setFlagToken($flag_token)
{
$this->flag_token = $flag_token;
return $this;
}
/**
* Get flag_token
*
* @return boolean
*/
public function getFlagToken()
{
return $this->flag_token;
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
public function isAccountNonExpired()
{
return true;
}
public function isAccountNonLocked()
{
return ($this->status == 1);
}
public function isCredentialsNonExpired()
{
return true;
}
public function isEnabled()
{
return ($this->status == 1);
}
public function getRoles()
{
return array($this->userRole);
}
/** @see \Serializable::serialize() */
public function serialize()
{
return serialize(array(
$this->id,
$this->username,
$this->password,
// see section on salt below
// $this->salt,
));
}
/** @see \Serializable::unserialize() */
public function unserialize($serialized)
{
list (
$this->id,
$this->username,
$this->password,
// see section on salt below
// $this->salt
) = unserialize($serialized);
}
public function eraseCredentials()
{
}
public function isEqualTo(UserInterface $user)
{
if ($this->password !== $user->getPassword()) {
return false;
}
if ($this->salt != $user->getSalt()) {
return false;
}
if ($this->username !== $user->getUsername()) {
return false;
}
return true;
}
}