src/Entity/User.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  5. use Symfony\Component\Security\Core\User\UserInterface;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. /**
  8.  * User
  9.  *
  10.  * @ORM\Table(name="`user`")
  11.  * @ORM\Entity
  12.  * @UniqueEntity(fields={"email"}, message="There is already an account with this email")
  13.  */
  14. class User implements UserInterface
  15. {
  16.     const ROLE_ADMIN 'ROLE_ADMIN';
  17.     const ROLE_BO 'ROLE_BO';
  18.     const ROLE_ADMINISTRATIVE 'ROLE_ADMINISTRATIVE';
  19.     const ROLE_COIFFEUR 'ROLE_COIFFEUR';
  20.     const ROLE_TELECONSEILER 'ROLE_TELECONSEILER';
  21.     /**
  22.      * @var int
  23.      *
  24.      * @ORM\Column(name="id", type="integer", nullable=false)
  25.      * @ORM\Id
  26.      * @ORM\GeneratedValue(strategy="IDENTITY")
  27.      */
  28.     private $id;
  29.     /**
  30.      * @var string
  31.      *
  32.      * @ORM\Column(name="email", type="string", length=180, nullable=false)
  33.      */
  34.     private $email;
  35.     /**
  36.      * @var json
  37.      *
  38.      * @ORM\Column(name="roles", type="json", nullable=false)
  39.      */
  40.     private $roles;
  41.     /**
  42.      * @Assert\Length(max=4096)
  43.      */
  44.     private $plainPassword;
  45.     /**
  46.      * @ORM\OneToOne(targetEntity=Intervenant::class, inversedBy="user")
  47.      * @ORM\JoinColumn(name="intervenant_id", referencedColumnName="id", nullable=true)
  48.      */
  49.     protected $intervenant;
  50.     /**
  51.      * @var string
  52.      *
  53.      * @ORM\Column(name="password", type="string", length=255, nullable=false)
  54.      */
  55.     private $password;
  56.     public function __toString()
  57.     {
  58.         return (string)$this->getUsername();
  59.     }
  60.     public function getId(): ?int
  61.     {
  62.         return $this->id;
  63.     }
  64.     public function getEmail(): ?string
  65.     {
  66.         return $this->email;
  67.     }
  68.     public function setEmail(string $email): self
  69.     {
  70.         $this->email $email;
  71.         return $this;
  72.     }
  73.     public function getRoles(): ?array
  74.     {
  75.         return $this->roles;
  76.     }
  77.     public function setRoles(array $roles): self
  78.     {
  79.         $this->roles $roles;
  80.         return $this;
  81.     }
  82.     public function getPassword(): ?string
  83.     {
  84.         return $this->password;
  85.     }
  86.     public function setPassword(string $password): self
  87.     {
  88.         $this->password $password;
  89.         return $this;
  90.     }
  91.     /**
  92.      * @return mixed
  93.      */
  94.     public function getPlainPassword()
  95.     {
  96.         return $this->plainPassword;
  97.     }
  98.     /**
  99.      * @param mixed $plainPassword
  100.      */
  101.     public function setPlainPassword($plainPassword): void
  102.     {
  103.         $this->plainPassword $plainPassword;
  104.     }
  105.     /**
  106.      * A visual identifier that represents this user.
  107.      *
  108.      * @see UserInterface
  109.      */
  110.     public function getUsername(): string
  111.     {
  112.         return (string)$this->email;
  113.     }
  114.     public function getSalt()
  115.     {
  116.         // not needed when using the "bcrypt" algorithm in security.yaml
  117.     }
  118.     /**
  119.      * @see UserInterface
  120.      */
  121.     public function eraseCredentials()
  122.     {
  123.         // If you store any temporary, sensitive data on the user, clear it here
  124.         $this->plainPassword null;
  125.     }
  126.     public function hasRole(string $role): bool
  127.     {
  128.         return in_array($role$this->getRoles());
  129.     }
  130.     /**
  131.      * @return mixed
  132.      */
  133.     public function getIntervenant()
  134.     {
  135.         return $this->intervenant;
  136.     }
  137.     /**
  138.      * @param mixed $intervenant
  139.      */
  140.     public function setIntervenant($intervenant): void
  141.     {
  142.         $this->intervenant $intervenant;
  143.     }
  144. }