src/Entity/User.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Serializable;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use App\Repository\UserRepository;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  8. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  9. use Symfony\Component\Validator\Constraints as Assert// va nous permettre de sécuriser notre formulaire
  10. /**
  11.  * @ORM\Entity(repositoryClass=UserRepository::class)
  12.  * ORM\HasLifecycleCallbacks()
  13.  * @UniqueEntity(
  14.  *  fields={"email"}, 
  15.  *  message="Un autre utilisateur s'est déjà inscrit avec cette adresse email, merci de la modifier."
  16.  * )
  17.  */
  18. class User implements UserInterfacePasswordAuthenticatedUserInterface\Serializable
  19. {
  20.     /**
  21.      * @ORM\Id
  22.      * @ORM\GeneratedValue
  23.      * @ORM\Column(type="integer")
  24.      */
  25.     private $id;
  26.     /**
  27.      *      @Assert\Length(
  28.      *      min = 1,
  29.      *      max = 180,
  30.      *      minMessage = "Vous devez mettre au minimum {{ limit }} charactères.",
  31.      *      maxMessage = "Vous ne pouvez pas mettre plus de {{ limit }} charactères pour ce champs."
  32.      * )
  33.      * @ORM\Column(type="string", length=180, unique=true)
  34.      */
  35.     private $email;
  36.     /**
  37.      * @ORM\Column(type="json")
  38.      */
  39.     private $roles = [];
  40.     /**
  41.      * @var string The hashed password
  42.      * @ORM\Column(type="string")
  43.      */
  44.     private $password;
  45.     /**
  46.      *      @Assert\Length(
  47.      *      min = 1,
  48.      *      max = 255,
  49.      *      minMessage = "Vous devez mettre au minimum {{ limit }} charactères.",
  50.      *      maxMessage = "Vous ne pouvez pas mettre plus de {{ limit }} charactères pour ce champs."
  51.      * )
  52.      * @ORM\Column(type="string", length=255)
  53.      */
  54.     private $firstname;
  55.     /**
  56.      *      @Assert\Length(
  57.      *      min = 1,
  58.      *      max = 255,
  59.      *      minMessage = "Vous devez mettre au minimum {{ limit }} charactères.",
  60.      *      maxMessage = "Vous ne pouvez pas mettre plus de {{ limit }} charactères pour ce champs."
  61.      * )
  62.      * @ORM\Column(type="string", length=255)
  63.      */
  64.     private $lastname;
  65.     /**
  66.      * @ORM\Column(type="boolean")
  67.      */
  68.     private $isActive;
  69.     /**
  70.      * @ORM\Column(type="string", length=510)
  71.      */
  72.     private $fullname;
  73.     /**
  74.      * @Assert\EqualTo(propertyPath="password", message="Vous n'avez pas correctement confirmé votre mot de passe !")
  75.      */
  76.     public $passwordConfirm;
  77.     /**
  78.      * @ORM\OneToOne(targetEntity=Jobseeker::class, mappedBy="user", cascade={"persist", "remove"})
  79.      */
  80.     private $jobseeker;
  81.     /**
  82.      * @ORM\ManyToOne(targetEntity=Organization::class, inversedBy="users")
  83.      */
  84.     private $organization;
  85.     public $code;
  86.     public function getId(): ?int
  87.     {
  88.         return $this->id;
  89.     }
  90.     public function serialize()
  91. {
  92.     return serialize(array(
  93.         $this->id,
  94.         $this->email,
  95.         $this->password,
  96.         // see section on salt below
  97.         // $this->salt,
  98.     ));
  99. }
  100. public function unserialize($serialized)
  101. {
  102.     list (
  103.         $this->id,
  104.         $this->email,
  105.         $this->password,
  106.         // see section on salt below
  107.         // $this->salt
  108.     ) = unserialize($serialized);
  109. }
  110.     public function getEmail(): ?string
  111.     {
  112.         return $this->email;
  113.     }
  114.     public function setEmail(string $email): self
  115.     {
  116.         $this->email $email;
  117.         return $this;
  118.     }
  119.     /**
  120.      * A visual identifier that represents this user.
  121.      *
  122.      * @see UserInterface
  123.      */
  124.     public function getUserIdentifier(): string
  125.     {
  126.         return (string) $this->email;
  127.     }
  128.     /**
  129.      * @deprecated since Symfony 5.3, use getUserIdentifier instead
  130.      */
  131.     public function getUsername(): string
  132.     {
  133.         return (string) $this->email;
  134.     }
  135.     /**
  136.      * @see UserInterface
  137.      */
  138.     public function getRoles(): array
  139.     {
  140.         $roles $this->roles;
  141.         // guarantee every user at least has ROLE_USER
  142.         $roles[] = 'ROLE_USER';
  143.         return array_unique($roles);
  144.     }
  145.     public function setRoles(array $roles): self
  146.     {
  147.         $this->roles $roles;
  148.         return $this;
  149.     }
  150.     /**
  151.      * @see PasswordAuthenticatedUserInterface
  152.      */
  153.     public function getPassword(): string
  154.     {
  155.         return $this->password;
  156.     }
  157.     public function setPassword(string $password): self
  158.     {
  159.         $this->password $password;
  160.         return $this;
  161.     }
  162.     /**
  163.      * Returning a salt is only needed, if you are not using a modern
  164.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  165.      *
  166.      * @see UserInterface
  167.      */
  168.     public function getSalt(): ?string
  169.     {
  170.         return null;
  171.     }
  172.     /**
  173.      * @see UserInterface
  174.      */
  175.     public function eraseCredentials()
  176.     {
  177.         // If you store any temporary, sensitive data on the user, clear it here
  178.         // $this->plainPassword = null;
  179.     }
  180.     public function getFirstname(): ?string
  181.     {
  182.         return $this->firstname;
  183.     }
  184.     public function setFirstname(string $firstname): self
  185.     {
  186.         $this->firstname $firstname;
  187.         return $this;
  188.     }
  189.     public function getLastname(): ?string
  190.     {
  191.         return $this->lastname;
  192.     }
  193.     public function setLastname(string $lastname): self
  194.     {
  195.         $this->lastname $lastname;
  196.         return $this;
  197.     }
  198.     public function getIsActive(): ?bool
  199.     {
  200.         return $this->isActive;
  201.     }
  202.     public function setIsActive(bool $isActive): self
  203.     {
  204.         $this->isActive $isActive;
  205.         return $this;
  206.     }
  207.     public function getFullname(): ?string
  208.     {
  209.         return $this->fullname;
  210.     }
  211.     public function setFullname(string $fullname): self
  212.     {
  213.         $this->fullname $fullname;
  214.         return $this;
  215.     }
  216.     public function getPasswordConfirm(): ?string
  217.     {
  218.         return $this->passwordConfirm;
  219.     }
  220.     public function setPasswordConfirm(string $passwordConfirm): self
  221.     {
  222.         $this->passwordConfirm $passwordConfirm;
  223.         return $this;
  224.     }
  225.     public function getJobseeker(): ?Jobseeker
  226.     {
  227.         return $this->jobseeker;
  228.     }
  229.     public function setJobseeker(Jobseeker $jobseeker): self
  230.     {
  231.         // set the owning side of the relation if necessary
  232.         if ($jobseeker->getUser() !== $this) {
  233.             $jobseeker->setUser($this);
  234.         }
  235.         $this->jobseeker $jobseeker;
  236.         return $this;
  237.     }
  238.     public function isGranted($role)
  239.     {
  240.         return in_array($role$this->getRoles());
  241.     }
  242.     public function getOrganization(): ?Organization
  243.     {
  244.         return $this->organization;
  245.     }
  246.     public function setOrganization(?Organization $organization): self
  247.     {
  248.         $this->organization $organization;
  249.         return $this;
  250.     }
  251. }