src/Entity/User.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  7. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. /**
  10.  * @ORM\Entity(repositoryClass=UserRepository::class)
  11.  * @UniqueEntity(fields={"email"}, message="There is already an account with this email")
  12.  */
  13. class User implements UserInterfacePasswordAuthenticatedUserInterface
  14. {
  15.     /**
  16.      * @ORM\Id
  17.      * @ORM\GeneratedValue
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\Column(type="string", length=180, unique=true)
  23.      */
  24.     private $email;
  25.     /**
  26.      * @ORM\Column(type="json")
  27.      */
  28.     private $roles = [];
  29.     /**
  30.      * @Assert\NotBlank()
  31.      * @Assert\Length(max=4096)
  32.      */
  33.     private $plainPassword;
  34.     /**
  35.      * The below length depends on the "algorithm" you use for encoding
  36.      * the password, but this works well with bcrypt.
  37.      ** @var string The hashed password
  38.      * @ORM\Column(type="string", length=255)
  39.      */
  40.     private $password;
  41.     /**
  42.      * @ORM\OneToOne(targetEntity=Compte::class, inversedBy="user", cascade={"persist", "remove"})
  43.      * @ORM\JoinColumn(nullable=true)
  44.      */
  45.     private $compte;
  46.     /**
  47.      * @ORM\OneToOne(targetEntity=Client::class, inversedBy="user", cascade={"persist", "remove"})
  48.      * @ORM\JoinColumn(nullable=true)
  49.      */
  50.     private $client;
  51.     /**
  52.      * @ORM\Column(type="boolean", options={"default":"1"})
  53.      */
  54.     private $isFirstConnexion true;    
  55.     public function __construct()
  56.     {
  57.         $this->roles = array('ROLE_USER');
  58.     }
  59.     public function getId(): ?int
  60.     {
  61.         return $this->id;
  62.     }
  63.     public function getEmail(): ?string
  64.     {
  65.         return $this->email;
  66.     }
  67.     public function setEmail(string $email): self
  68.     {
  69.         $this->email $email;
  70.         return $this;
  71.     }
  72.     /**
  73.      * A visual identifier that represents this user.
  74.      *
  75.      * @see UserInterface
  76.      */
  77.     public function getUserIdentifier(): string
  78.     {
  79.         return (string) $this->email;
  80.     }
  81.     /**
  82.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  83.      */
  84.     public function getUsername(): string
  85.     {
  86.         return (string) $this->email;
  87.     }
  88.     /**
  89.      * @see UserInterface
  90.      */
  91.     public function getRoles(): array
  92.     {
  93.         $roles $this->roles;
  94.         // guarantee every user at least has ROLE_USER
  95.         $roles[] = 'ROLE_USER';
  96.         return array_unique($roles);
  97.     }
  98.     public function setRoles(array $roles): self
  99.     {
  100.         $this->roles $roles;
  101.         return $this;
  102.     }
  103.     public function getPlainPassword()
  104.     {
  105.         return $this->plainPassword;
  106.     }
  107.     public function setPlainPassword($password)
  108.     {
  109.         $this->plainPassword $password;
  110.     }
  111.     /**
  112.      * @see PasswordAuthenticatedUserInterface
  113.      */
  114.     public function getPassword(): string
  115.     {
  116.         return $this->password;
  117.     }
  118.     public function setPassword(string $password): self
  119.     {
  120.         $this->password $password;
  121.         return $this;
  122.     }
  123.     /**
  124.      * Returning a salt is only needed, if you are not using a modern
  125.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  126.      *
  127.      * @see UserInterface
  128.      */
  129.     public function getSalt(): ?string
  130.     {
  131.         return null;
  132.     }
  133.     /**
  134.      * @see UserInterface
  135.      */
  136.     public function eraseCredentials()
  137.     {
  138.         // If you store any temporary, sensitive data on the user, clear it here
  139.         // $this->plainPassword = null;
  140.     }
  141.     public function getCompte(): ?Compte
  142.     {
  143.         return $this->compte;
  144.     }
  145.     public function setCompte(Compte $compte): self
  146.     {
  147.         $this->compte $compte;
  148.         return $this;
  149.     }
  150.     public function getClient(): ?Client
  151.     {
  152.         return $this->client;
  153.     }
  154.     public function setClient(Client $client): self
  155.     {
  156.         $this->client $client;
  157.         return $this;
  158.     }
  159.     public function isIsFirstConnexion(): ?bool
  160.     {
  161.         return $this->isFirstConnexion;
  162.     }
  163.     public function setIsFirstConnexion(bool $isFirstConnexion): self
  164.     {
  165.         $this->isFirstConnexion $isFirstConnexion;
  166.         return $this;
  167.     }    
  168. }