src/Entity/Admin.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\AdminRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use App\Entity\TimestampableTrait;
  8. /**
  9.  * @ORM\Entity(repositoryClass=AdminRepository::class)
  10.  */
  11. class Admin implements UserInterfacePasswordAuthenticatedUserInterface
  12. {
  13.     use TimestampableTrait;
  14.     /**
  15.      * @ORM\Id
  16.      * @ORM\GeneratedValue
  17.      * @ORM\Column(type="integer")
  18.      */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="string", length=180, unique=true)
  22.      */
  23.     private $email;
  24.     /**
  25.      * @ORM\Column(type="json")
  26.      */
  27.     private $roles = [];
  28.     /**
  29.      * @var string The hashed password
  30.      * @ORM\Column(type="string")
  31.      */
  32.     private $password;
  33.     /**
  34.      * @ORM\Column(type="string", length=60)
  35.      */
  36.     private $lastname;
  37.     /**
  38.      * @ORM\Column(type="string", length=60)
  39.      */
  40.     private $firstname;
  41.     public function __construct()
  42.     {
  43.         $this->lastname ucwords(strtolower($this->lastname));
  44.         $this->firstname ucwords(strtolower($this->firstname));
  45.         $this->email strtolower($this->email);
  46.     }
  47.     public function getId(): ?int
  48.     {
  49.         return $this->id;
  50.     }
  51.     public function getEmail(): ?string
  52.     {
  53.         return $this->email;
  54.     }
  55.     public function setEmail(string $email): self
  56.     {
  57.         $this->email $email;
  58.         return $this;
  59.     }
  60.     /**
  61.      * A visual identifier that represents this user.
  62.      *
  63.      * @see UserInterface
  64.      */
  65.     public function getUserIdentifier(): string
  66.     {
  67.         return (string) $this->email;
  68.     }
  69.     /**
  70.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  71.      */
  72.     public function getUsername(): string
  73.     {
  74.         return (string) $this->email;
  75.     }
  76.     /**
  77.      * @see UserInterface
  78.      */
  79.     public function getRoles(): array
  80.     {
  81.         $roles $this->roles;
  82.         // guarantee every user at least has ROLE_USER
  83.         $roles[] = 'ROLE_USER';
  84.         return array_unique($roles);
  85.     }
  86.     public function setRoles(array $roles): self
  87.     {
  88.         $this->roles $roles;
  89.         return $this;
  90.     }
  91.     /**
  92.      * @see PasswordAuthenticatedUserInterface
  93.      */
  94.     public function getPassword(): string
  95.     {
  96.         return $this->password;
  97.     }
  98.     public function setPassword(string $password): self
  99.     {
  100.         $this->password $password;
  101.         return $this;
  102.     }
  103.     /**
  104.      * Returning a salt is only needed, if you are not using a modern
  105.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  106.      *
  107.      * @see UserInterface
  108.      */
  109.     public function getSalt(): ?string
  110.     {
  111.         return null;
  112.     }
  113.     /**
  114.      * @see UserInterface
  115.      */
  116.     public function eraseCredentials()
  117.     {
  118.         // If you store any temporary, sensitive data on the user, clear it here
  119.         // $this->plainPassword = null;
  120.     }
  121.     public function getLastname(): ?string
  122.     {
  123.         return $this->lastname;
  124.     }
  125.     public function setLastname(string $lastname): self
  126.     {
  127.         $this->lastname $lastname;
  128.         return $this;
  129.     }
  130.     public function getFirstname(): ?string
  131.     {
  132.         return $this->firstname;
  133.     }
  134.     public function setFirstname(string $firstname): self
  135.     {
  136.         $this->firstname $firstname;
  137.         return $this;
  138.     }
  139. }