src/Entity/User.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Scheb\TwoFactorBundle\Model\Email\TwoFactorInterface;
  9. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  10. use Symfony\Component\Security\Core\User\UserInterface;
  11. use Sonata\UserBundle\Entity\BaseUser;
  12. /**
  13.  * @ORM\Entity(repositoryClass=UserRepository::class)
  14.  * @ORM\Table(name="`user`")
  15.  */
  16. class User extends BaseUser implements UserInterfacePasswordAuthenticatedUserInterfaceTwoFactorInterface
  17. {
  18.     /**
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue
  21.      * @ORM\Column(type="integer")
  22.      */
  23.     protected $id;
  24.     /**
  25.      * @var string
  26.      *
  27.      * @ORM\Column(name="firstname", type="string", length=255, nullable=true)
  28.      */
  29.     private $firstname;
  30.     /**
  31.      * @var string
  32.      *
  33.      * @ORM\Column(name="lastname", type="string", length=255, nullable=true)
  34.      */
  35.     private $lastname;
  36.     /**
  37.      * @var string
  38.      *
  39.      * @ORM\Column(name="locale", type="string", length=255, nullable=true, options={"default" : "fr"})
  40.      */
  41.     private $locale "fr";
  42.     /**
  43.      * @ORM\Column(type="string", nullable=true)
  44.      */
  45.     private $authCode;
  46.     /**
  47.      *
  48.      * @var Company $company
  49.      * @ORM\ManyToOne(targetEntity="Company", inversedBy="users")
  50.      * @ORM\JoinColumn(name="company_id", referencedColumnName="id")
  51.      */
  52.     private $company;
  53.     /**
  54.      * @ORM\ManyToMany(targetEntity="Campaign", inversedBy="admins", cascade={"persist"})
  55.      * @ORM\JoinTable(name="campaign_admin")
  56.      */
  57.     private $adminCampaigns;
  58.     /**
  59.      * @ORM\OneToMany(targetEntity="Participation", mappedBy="participant")
  60.      */
  61.     private $participations;
  62.     /**
  63.      * @ORM\OneToMany(targetEntity="RememberMeToken", mappedBy="user")
  64.      */
  65.     private $rememberMeTokens;
  66.     /**
  67.      * @var \DateTime
  68.      *
  69.      * @ORM\Column(name="deleted_at", type="datetime", nullable=true)
  70.      */
  71.     private $deletedAt;
  72.     /**
  73.      * @var boolean
  74.      * @ORM\Column(name="archived", type="boolean", options={"default" : false})
  75.      */
  76.     private $archived false;
  77.     public function __construct()
  78.     {
  79.         $this->adminCampaigns = new ArrayCollection();
  80.         $this->participations = new ArrayCollection();
  81.         $this->rememberMeTokens = new ArrayCollection();
  82.     }
  83.     public function isEmailAuthEnabled(): bool
  84.     {
  85.         return true// This can be a persisted field to switch email code authentication on/off
  86.     }
  87.     public function getEmailAuthRecipient(): string
  88.     {
  89.         return $this->email;
  90.     }
  91.     public function getEmailAuthCode(): string
  92.     {
  93.         if (null === $this->authCode) {
  94.             throw new \LogicException('The email authentication code was not set');
  95.         }
  96.         return $this->authCode;
  97.     }
  98.     public function setEmailAuthCode(string $authCode): void
  99.     {
  100.         $this->authCode $authCode;
  101.     }
  102.     public function getId(): ?int
  103.     {
  104.         return $this->id;
  105.     }
  106.     public function getFirstname(): ?string
  107.     {
  108.         return $this->firstname;
  109.     }
  110.     public function setFirstname(?string $firstname): self
  111.     {
  112.         $this->firstname $firstname;
  113.         return $this;
  114.     }
  115.     public function getLastname(): ?string
  116.     {
  117.         return $this->lastname;
  118.     }
  119.     public function setLastname(?string $lastname): self
  120.     {
  121.         $this->lastname $lastname;
  122.         return $this;
  123.     }
  124.     public function getFullname(): ?string
  125.     {
  126.         return $this->firstname." ".$this->lastname;
  127.     }
  128.     public function getLocale(): ?string
  129.     {
  130.         return $this->locale;
  131.     }
  132.     public function setLocale(?string $locale): self
  133.     {
  134.         $this->locale $locale;
  135.         return $this;
  136.     }
  137.     public function getAuthCode(): ?string
  138.     {
  139.         return $this->authCode;
  140.     }
  141.     public function setAuthCode(?string $authCode): self
  142.     {
  143.         $this->authCode $authCode;
  144.         return $this;
  145.     }
  146.     public function getCompany(): ?Company
  147.     {
  148.         return $this->company;
  149.     }
  150.     public function setCompany(?Company $company): self
  151.     {
  152.         $this->company $company;
  153.         return $this;
  154.     }
  155.     /**
  156.      * @return Collection<int, Campaign>
  157.      */
  158.     public function getAdminCampaigns(): Collection
  159.     {
  160.         return $this->adminCampaigns;
  161.     }
  162.     public function addAdminCampaign(Campaign $campaign): self
  163.     {
  164.         if (!$this->adminCampaigns->contains($campaign)) {
  165.             $this->adminCampaigns->add($campaign);
  166.         }
  167.         return $this;
  168.     }
  169.     public function removeAdminCampaign(Campaign $campaign): self
  170.     {
  171.         $this->adminCampaigns->removeElement($campaign);
  172.         return $this;
  173.     }
  174.     /**
  175.      * @return Collection<int, Participation>
  176.      */
  177.     public function getParticipations(): Collection
  178.     {
  179.         return $this->participations;
  180.     }
  181.     public function addParticipation(Participation $participation): self
  182.     {
  183.         if (!$this->participations->contains($participation)) {
  184.             $this->participations[] = $participation;
  185.             $participation->setParticipant($this);
  186.         }
  187.         return $this;
  188.     }
  189.     public function removeParticipation(Participation $participation): self
  190.     {
  191.         if ($this->participations->removeElement($participation)) {
  192.             // set the owning side to null (unless already changed)
  193.             if ($participation->getParticipant() === $this) {
  194.                 $participation->setParticipant(null);
  195.             }
  196.         }
  197.         return $this;
  198.     }
  199.     public function getDeletedAt(): ?\DateTimeInterface
  200.     {
  201.         return $this->deletedAt;
  202.     }
  203.     public function setDeletedAt(?\DateTimeInterface $deletedAt): self
  204.     {
  205.         $this->deletedAt $deletedAt;
  206.         return $this;
  207.     }
  208.     public function getArchived(): ?bool
  209.     {
  210.         return $this->archived;
  211.     }
  212.     public function setArchived(bool $archived): self
  213.     {
  214.         $this->archived $archived;
  215.         return $this;
  216.     }
  217.     public function isArchived(): ?bool
  218.     {
  219.         return $this->archived;
  220.     }
  221.     /**
  222.      * @return Collection<int, RememberMeToken>
  223.      */
  224.     public function getRememberMeTokens(): Collection
  225.     {
  226.         return $this->rememberMeTokens;
  227.     }
  228.     public function addRememberMeToken(RememberMeToken $rememberMeToken): self
  229.     {
  230.         if (!$this->rememberMeTokens->contains($rememberMeToken)) {
  231.             $this->rememberMeTokens[] = $rememberMeToken;
  232.             $rememberMeToken->setUser($this);
  233.         }
  234.         return $this;
  235.     }
  236.     public function removeRememberMeToken(RememberMeToken $rememberMeToken): self
  237.     {
  238.         if ($this->rememberMeTokens->removeElement($rememberMeToken)) {
  239.             // set the owning side to null (unless already changed)
  240.             if ($rememberMeToken->getUser() === $this) {
  241.                 $rememberMeToken->setUser(null);
  242.             }
  243.         }
  244.         return $this;
  245.     }
  246.     function __toString()
  247.     {
  248.         return "".$this->getId()."-".$this->getEmail();
  249.     }
  250. }