src/Entity/User.php line 21

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\ORM\Mapping as ORM;
  7. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. use Symfony\Component\Serializer\Annotation\MaxDepth;
  10. use Symfony\Component\Serializer\Annotation\Ignore;
  11. use App\Traits\Timestampable;
  12. use App\Traits\Blameable;
  13. /**
  14.  * @ORM\Table(name="user")
  15.  * @ORM\Entity(repositoryClass=UserRepository::class)
  16.  */
  17. class User implements UserInterfacePasswordAuthenticatedUserInterface
  18. {
  19.     use Timestampable;
  20.     use Blameable;
  21.     /**
  22.      * @ORM\Id
  23.      * @ORM\GeneratedValue
  24.      * @ORM\Column(type="integer")
  25.      */
  26.     private $id;
  27.     /**
  28.      * @ORM\Column(type="integer")
  29.      */
  30.     private $statut;
  31.     /**
  32.      * @ORM\Column(type="string", length=180, unique=true)
  33.      */
  34.     private $email;
  35.     /**
  36.      * @ORM\Column(type="string", length=255)
  37.      */
  38.     private $prenom;
  39.     /**
  40.      * @ORM\Column(type="string", length=255)
  41.      */
  42.     private $nom;
  43.     /**
  44.      * @ORM\Column(type="string", length=255)
  45.      */
  46.     private $trigramme;
  47.     /**     
  48.      * @Ignore()
  49.      * @ORM\Column(type="text")
  50.      * @MaxDepth(1)
  51.      */
  52.     private $roles;
  53.     /**
  54.      * @var string The hashed password
  55.      * @Ignore()
  56.      * @ORM\Column(type="string")
  57.      * @MaxDepth(1)
  58.      */
  59.     private $password;
  60.     /**
  61.      * @Ignore()
  62.      * @ORM\Column(type="string", unique=true, nullable=true)
  63.      * @MaxDepth(1)
  64.      */
  65.     private $apiToken;
  66.     /**
  67.      * @ORM\Column(type="boolean", nullable=true)
  68.      */
  69.     private $externe;
  70.     // /**
  71.     //  * @Ignore()
  72.     //  * @ORM\OneToMany(targetEntity=FormSectionDroit::class, mappedBy="user")
  73.     //  * @MaxDepth(1)
  74.     //  */
  75.     // private $sectionDroits;
  76.     /**
  77.      * @Ignore()
  78.      * @ORM\OneToMany(targetEntity=FormSectionVisa::class, mappedBy="user")
  79.      */
  80.     private $sectionVisas;
  81.     /**
  82.      * @Ignore()
  83.      * @ORM\OneToMany(targetEntity=Favori::class, mappedBy="user")
  84.      * @ORM\OrderBy({"position" = "ASC"})
  85.      */
  86.     private $favoris;
  87.     /**
  88.      * @ORM\OneToMany(targetEntity=Onglet::class, mappedBy="user", orphanRemoval=true)
  89.      * @Ignore()
  90.      */
  91.     private $onglets;
  92.     /**
  93.      * @Ignore()
  94.      * @ORM\OneToMany(targetEntity=MenuInvisible::class, mappedBy="user", orphanRemoval=true)
  95.      */
  96.     private $menuInvisibles;
  97.     /**
  98.      * @ORM\Column(type="integer", nullable=true)
  99.      * @Ignore()
  100.      */
  101.     private $tabsAtLogin;
  102.     /**
  103.      * @ORM\OneToMany(targetEntity=OngletLogin::class, mappedBy="user")
  104.      * @Ignore()
  105.      */
  106.     private $ongletsAtLogin;
  107.     /**
  108.      * @ORM\Column(type="string", length=555, nullable=true)
  109.      * @Ignore()
  110.      */
  111.     private $avatar;
  112.     /**
  113.      * @Ignore()
  114.      * @ORM\OneToMany(targetEntity="App\Entity\Log", mappedBy="user_crea")
  115.      * @MaxDepth(1)
  116.      */
  117.     private $logs;
  118.     /**
  119.      * @Ignore()
  120.      * @ORM\OneToMany(targetEntity=WebsocketMessage::class, mappedBy="user", orphanRemoval=true)
  121.      * @MaxDepth(1)
  122.      */
  123.     private $websocketMessages;
  124.     /**
  125.      * @ORM\Column(type="string", length=255, options={"default" : "fr"})
  126.      */
  127.     private $langage 'fr';
  128.     /**
  129.      * @ORM\OneToMany(targetEntity=UtilisateurMine::class, mappedBy="user", orphanRemoval=true)
  130.      */
  131.     private $utilisateurMines;
  132.     /**
  133.      * @ORM\ManyToOne(targetEntity=User::class, inversedBy="responsableListUsers")
  134.      */
  135.     private $responsable;
  136.     /**
  137.      * @ORM\OneToMany(targetEntity=User::class, mappedBy="responsable")
  138.      */
  139.     private $responsableListUsers;
  140.     /**
  141.      * @ORM\Column(type="string", length=5000, nullable=true)
  142.      */
  143.     private $notes;
  144.     /**
  145.      * @ORM\OneToMany(targetEntity=DroitInvisible::class, mappedBy="user")
  146.      */
  147.     private $droitInvisibles;
  148.     /**
  149.      * @ORM\Column(type="string", length=255, nullable=true)
  150.      * @Ignore()
  151.      * @MaxDepth(1)
  152.      */
  153.     private $tokenRefresh;
  154.     /**
  155.      * @ORM\Column(type="datetime", nullable=true)
  156.      */
  157.     private $dateRefresh;
  158.     public function __construct()
  159.     {
  160.         
  161.         $this->sectionVisas     = new ArrayCollection();
  162.         $this->favoris          = new ArrayCollection();
  163.         $this->onglets          = new ArrayCollection();
  164.         $this->menuInvisibles   = new ArrayCollection();
  165.         $this->ongletsAtLogin   = new ArrayCollection();
  166.         $this->logs             = new ArrayCollection();
  167.         $this->websocketMessages = new ArrayCollection();
  168.         $this->utilisateurMines = new ArrayCollection();
  169.         $this->responsableListUsers = new ArrayCollection();
  170.         $this->droitInvisibles = new ArrayCollection();
  171.     }
  172.     public function getId(): ?int
  173.     {
  174.         return $this->id;
  175.     }
  176.     public function getStatut(): ?int
  177.     {
  178.         return $this->statut;
  179.     }
  180.     public function setStatut(string $statut): self
  181.     {
  182.         $this->statut $statut;
  183.         return $this;
  184.     }
  185.     public function getUsername(): ?string
  186.     {
  187.         return $this->email;
  188.     }
  189.     public function getEmail(): ?string
  190.     {
  191.         return $this->email;
  192.     }
  193.     public function setEmail(string $email): self
  194.     {
  195.         $this->email $email;
  196.         return $this;
  197.     }
  198.     public function getNom(): ?string
  199.     {
  200.         return $this->nom;
  201.     }
  202.     public function setNom(string $nom): self
  203.     {
  204.         $this->nom $nom;
  205.         return $this;
  206.     }
  207.     public function getPrenom(): ?string
  208.     {
  209.         return $this->prenom;
  210.     }
  211.     public function setPrenom(string $prenom): self
  212.     {
  213.         $this->prenom $prenom;
  214.         return $this;
  215.     }
  216.     public function getTrigramme(): ?string
  217.     {
  218.         return $this->trigramme;
  219.     }
  220.     public function setTrigramme(string $trigramme): self
  221.     {
  222.         $this->trigramme $trigramme;
  223.         return $this;
  224.     }
  225.     public function getApiToken(): ?string
  226.     {
  227.         return $this->apiToken;
  228.     }
  229.     public function setApiToken(string $apiToken): self
  230.     {
  231.         $this->apiToken $apiToken;
  232.         return $this;
  233.     }
  234.     /**
  235.      * A visual identifier that represents this user.
  236.      *
  237.      * @see UserInterface
  238.      */
  239.     public function getUserIdentifier(): string
  240.     {
  241.         return (string) $this->email;
  242.     }
  243.     /**
  244.      * @see UserInterface
  245.      */
  246.     public function getRoles(): array
  247.     {
  248.         $tabRoles json_decode($this->rolestrue);
  249.         $roles = !is_null($tabRoles) ? $tabRoles : [];
  250.         // guarantee every user at least has ROLE_USER
  251.         $roles[] = 'ROLE_USER';
  252.         return array_unique($roles);
  253.     }
  254.     public function setRoles(array $roles): self
  255.     {
  256.         $this->roles json_encode($roles);
  257.         return $this;
  258.     }
  259.     /**
  260.      * @see PasswordAuthenticatedUserInterface
  261.      */
  262.     public function getPassword(): string
  263.     {
  264.         return $this->password;
  265.     }
  266.     public function setPassword(string $password): self
  267.     {
  268.         $this->password $password;
  269.         return $this;
  270.     }
  271.     public function setExterne(bool $externe): self
  272.     {
  273.         $this->externe $externe;
  274.         return $this;
  275.     }
  276.     public function getExterne()
  277.     {
  278.         return $this->externe;
  279.     }
  280.     /**
  281.      * Returning a salt is only needed, if you are not using a modern
  282.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  283.      *
  284.      * @see UserInterface
  285.      */
  286.     public function getSalt(): ?string
  287.     {
  288.         return null;
  289.     }
  290.     /**
  291.      * @see UserInterface
  292.      */
  293.     public function eraseCredentials()
  294.     {
  295.         // If you store any temporary, sensitive data on the user, clear it here
  296.         // $this->plainPassword = null;
  297.     }
  298.     /**
  299.      * @return Collection|FormSectionVisa[]
  300.      */
  301.     public function getSectionVisas(): Collection
  302.     {
  303.         return $this->sectionVisas;
  304.     }
  305.     public function addSectionVisa(FormSectionVisa $sectionVisa): self
  306.     {
  307.         if (!$this->sectionVisas->contains($sectionVisa)) {
  308.             $this->sectionVisas[] = $sectionVisa;
  309.             $sectionVisa->setUser($this);
  310.         }
  311.         return $this;
  312.     }
  313.     public function removeSectionVisa(FormSectionVisa $sectionVisa): self
  314.     {
  315.         if ($this->sectionVisas->removeElement($sectionVisa)) {
  316.             // set the owning side to null (unless already changed)
  317.             if ($sectionVisa->getUser() === $this) {
  318.                 $sectionVisa->setUser(null);
  319.             }
  320.         }
  321.         return $this;
  322.     }
  323.     /**
  324.      * @return Collection|Favori[]
  325.      */
  326.     public function getFavoris(): Collection
  327.     {
  328.         return $this->favoris;
  329.     }
  330.     public function addFavori(Favori $favori): self
  331.     {
  332.         if (!$this->favoris->contains($favori)) {
  333.             $this->favoris[] = $favori;
  334.             $favori->setUser($this);
  335.         }
  336.         return $this;
  337.     }
  338.     public function removeFavori(Favori $favori): self
  339.     {
  340.         if ($this->favoris->removeElement($favori)) {
  341.             // set the owning side to null (unless already changed)
  342.             if ($favori->getUser() === $this) {
  343.                 $favori->setUser(null);
  344.             }
  345.         }
  346.         return $this;
  347.     }
  348.     /**
  349.      * @return Collection|Onglet[]
  350.      */
  351.     public function getOnglets(): Collection
  352.     {
  353.         return $this->onglets;
  354.     }
  355.     public function addOnglet(Onglet $onglet): self
  356.     {
  357.         if (!$this->onglets->contains($onglet)) {
  358.             $this->onglets[] = $onglet;
  359.             $onglet->setUser($this);
  360.         }
  361.         return $this;
  362.     }
  363.     public function removeOnglet(Onglet $onglet): self
  364.     {
  365.         if ($this->onglets->removeElement($onglet)) {
  366.             // set the owning side to null (unless already changed)
  367.             if ($onglet->getUser() === $this) {
  368.                 $onglet->setUser(null);
  369.             }
  370.         }
  371.         return $this;
  372.     }
  373.     /**
  374.      * @return Collection|MenuInvisible[]
  375.      */
  376.     public function getMenuInvisibles(): Collection
  377.     {
  378.         return $this->menuInvisibles;
  379.     }
  380.     public function addMenuInvisible(MenuInvisible $menuInvisible): self
  381.     {
  382.         if (!$this->menuInvisibles->contains($menuInvisible)) {
  383.             $this->menuInvisibles[] = $menuInvisible;
  384.             $menuInvisible->setUser($this);
  385.         }
  386.         return $this;
  387.     }
  388.     public function removeMenuInvisible(MenuInvisible $menuInvisible): self
  389.     {
  390.         if ($this->menuInvisibles->removeElement($menuInvisible)) {
  391.             // set the owning side to null (unless already changed)
  392.             if ($menuInvisible->getUser() === $this) {
  393.                 $menuInvisible->setUser(null);
  394.             }
  395.         }
  396.         return $this;
  397.     }
  398.     public function getTabsAtLogin(): ?int
  399.     {
  400.         return $this->tabsAtLogin;
  401.     }
  402.     public function setTabsAtLogin(?int $tabsAtLogin): self
  403.     {
  404.         $this->tabsAtLogin $tabsAtLogin;
  405.         return $this;
  406.     }
  407.     /**
  408.      * @return Collection|OngletLogin[]
  409.      */
  410.     public function getOngletsAtLogin(): Collection
  411.     {
  412.         return $this->ongletsAtLogin;
  413.     }
  414.     public function addOngletsAtLogin(OngletLogin $ongletsAtLogin): self
  415.     {
  416.         if (!$this->ongletsAtLogin->contains($ongletsAtLogin)) {
  417.             $this->ongletsAtLogin[] = $ongletsAtLogin;
  418.             $ongletsAtLogin->setUser($this);
  419.         }
  420.         return $this;
  421.     }
  422.     public function removeOngletsAtLogin(OngletLogin $ongletsAtLogin): self
  423.     {
  424.         if ($this->ongletsAtLogin->removeElement($ongletsAtLogin)) {
  425.             // set the owning side to null (unless already changed)
  426.             if ($ongletsAtLogin->getUser() === $this) {
  427.                 $ongletsAtLogin->setUser(null);
  428.             }
  429.         }
  430.         return $this;
  431.     }
  432.     /**
  433.     * @return string
  434.     */
  435.     public function getAvatar(): ?string
  436.     {
  437.         return $this->avatar;
  438.     }
  439.     /**
  440.     * @param string $avatar Chemin de l'avatar
  441.     * @return User
  442.     */
  443.     public function setAvatar(?string $avatar): self
  444.     {
  445.         $this->avatar $avatar;
  446.         return $this;
  447.     }
  448.     /**
  449.      * @return Collection|Log[]
  450.      */
  451.     public function getLogs(): Collection
  452.     {
  453.         return $this->logs;
  454.     }
  455.     public function addLog(Log $log): self
  456.     {
  457.         if (!$this->logs->contains($log)) {
  458.             $this->logs[] = $log;
  459.             $log->setUserCrea($this);
  460.         }
  461.         return $this;
  462.     }
  463.     public function removeLog(Log $log): self
  464.     {
  465.         if ($this->logs->contains($log)) {
  466.             $this->logs->removeElement($log);
  467.             // set the owning side to null (unless already changed)
  468.             if ($log->getUserCrea() === $this) {
  469.                 $log->setUserCrea(null);
  470.             }
  471.         }
  472.         return $this;
  473.     }
  474.     /**
  475.      * @return Collection|WebsocketMessage[]
  476.      */
  477.     public function getWebsocketMessages(): Collection
  478.     {
  479.         return $this->websocketMessages;
  480.     }
  481.     public function addWebsocketMessage(WebsocketMessage $websocketMessage): self
  482.     {
  483.         if (!$this->websocketMessages->contains($websocketMessage)) {
  484.             $this->websocketMessages[] = $websocketMessage;
  485.             $websocketMessage->setUser($this);
  486.         }
  487.         return $this;
  488.     }
  489.     public function removeWebsocketMessage(WebsocketMessage $websocketMessage): self
  490.     {
  491.         if ($this->websocketMessages->removeElement($websocketMessage)) {
  492.             // set the owning side to null (unless already changed)
  493.             if ($websocketMessage->getUser() === $this) {
  494.                 $websocketMessage->setUser(null);
  495.             }
  496.         }
  497.         return $this;
  498.     }
  499.     public function getLangage(): ?string
  500.     {
  501.         return $this->langage;
  502.     }
  503.     public function setLangage(string $langage): self
  504.     {
  505.         $this->langage $langage;
  506.         return $this;
  507.     }
  508.     /**
  509.      * @return Collection|UtilisateurMine[]
  510.      */
  511.     public function getUtilisateurMines(): Collection
  512.     {
  513.         return $this->utilisateurMines;
  514.     }
  515.     public function setUtilisateurMines($utilisateurMines)
  516.     {
  517.         $this->utilisateurMines $utilisateurMines;
  518.         return $this;
  519.     }
  520.     public function addUtilisateurMine(UtilisateurMine $utilisateurMine): self
  521.     {
  522.         if (!$this->utilisateurMines->contains($utilisateurMine)) {
  523.             $this->utilisateurMines[] = $utilisateurMine;
  524.             $utilisateurMine->setUser($this);
  525.         }
  526.         return $this;
  527.     }
  528.     public function removeUtilisateurMine(UtilisateurMine $utilisateurMine): self
  529.     {
  530.         if ($this->utilisateurMines->removeElement($utilisateurMine)) {
  531.             // set the owning side to null (unless already changed)
  532.             if ($utilisateurMine->getUser() === $this) {
  533.                 $utilisateurMine->setUser(null);
  534.             }
  535.         }
  536.         return $this;
  537.     }
  538.     public function getResponsable(): ?self
  539.     {
  540.         return $this->responsable;
  541.     }
  542.     public function setResponsable(?self $responsable): self
  543.     {
  544.         $this->responsable $responsable;
  545.         return $this;
  546.     }
  547.     /**
  548.      * @return Collection|self[]
  549.      */
  550.     public function getResponsableListUsers(): Collection
  551.     {
  552.         return $this->responsableListUsers;
  553.     }
  554.     public function addResponsableListUser(self $responsableListUser): self
  555.     {
  556.         if (!$this->responsableListUsers->contains($responsableListUser)) {
  557.             $this->responsableListUsers[] = $responsableListUser;
  558.             $responsableListUser->setResponsable($this);
  559.         }
  560.         return $this;
  561.     }
  562.     public function removeResponsableListUser(self $responsableListUser): self
  563.     {
  564.         if ($this->responsableListUsers->removeElement($responsableListUser)) {
  565.             // set the owning side to null (unless already changed)
  566.             if ($responsableListUser->getResponsable() === $this) {
  567.                 $responsableListUser->setResponsable(null);
  568.             }
  569.         }
  570.         return $this;
  571.     }
  572.     public function getNotes(): ?string
  573.     {
  574.         return $this->notes;
  575.     }
  576.     public function setNotes(?string $notes): self
  577.     {
  578.         $this->notes $notes;
  579.         return $this;
  580.     }
  581.     /**
  582.      * @return Collection<int, DroitInvisible>
  583.      */
  584.     public function getDroitInvisibles(): Collection
  585.     {
  586.         return $this->droitInvisibles;
  587.     }
  588.     public function addDroitInvisible(DroitInvisible $droitInvisible): self
  589.     {
  590.         if (!$this->droitInvisibles->contains($droitInvisible)) {
  591.             $this->droitInvisibles[] = $droitInvisible;
  592.             $droitInvisible->setUser($this);
  593.         }
  594.         return $this;
  595.     }
  596.     public function removeDroitInvisible(DroitInvisible $droitInvisible): self
  597.     {
  598.         if ($this->droitInvisibles->removeElement($droitInvisible)) {
  599.             // set the owning side to null (unless already changed)
  600.             if ($droitInvisible->getUser() === $this) {
  601.                 $droitInvisible->setUser(null);
  602.             }
  603.         }
  604.         return $this;
  605.     }
  606.     /**
  607.      * Get token refresh
  608.      *
  609.      * @return  string
  610.      */ 
  611.     public function getTokenRefresh()
  612.     {
  613.         return $this->tokenRefresh;
  614.     }
  615.     /**
  616.      * Set token refresh
  617.      *
  618.      * @param  string  $tokenRefresh  token refresh
  619.      *
  620.      * @return  self
  621.      */ 
  622.     public function setTokenRefresh(string $tokenRefresh)
  623.     {
  624.         $this->tokenRefresh $tokenRefresh;
  625.         return $this;
  626.     }
  627.     /**
  628.      * Get the value of dateRefresh
  629.      */ 
  630.     public function getDateRefresh()
  631.     {
  632.         return $this->dateRefresh;
  633.     }
  634.     /**
  635.      * Set the value of dateRefresh
  636.      *
  637.      * @return  self
  638.      */ 
  639.     public function setDateRefresh($dateRefresh)
  640.     {
  641.         $this->dateRefresh $dateRefresh;
  642.         return $this;
  643.     }
  644. }