src/Entity/User.php line 16

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\UserInterface;
  8. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  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 UserInterface
  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 $username;
  25.     /**
  26.      * @ORM\Column(type="string", length=180, unique=true)
  27.      */
  28.     private $email;
  29.     /**
  30.      * @ORM\Column(type="json")
  31.      */
  32.     private $roles = [];
  33.     /**
  34.      * @var string The hashed password
  35.      * @ORM\Column(type="string")
  36.      */
  37.     private $password;
  38.     /**
  39.      * @ORM\Column(type="boolean")
  40.      */
  41.     private $isActive;
  42.     /**
  43.      * @ORM\Column(type="datetime", nullable=true)
  44.      */
  45.     private $lastLogin;
  46.     /**
  47.      * @ORM\Column(type="string", length=255, nullable=true)
  48.      */
  49.     private $confirmToken;
  50.     /**
  51.      * @ORM\ManyToOne(targetEntity=User::class)
  52.      */
  53.     private $created_by;
  54.     /**
  55.      * @ORM\Column(type="datetime")
  56.      */
  57.     private $created_at;
  58.     /**
  59.      * @ORM\Column(type="integer")
  60.      */
  61.     private $status;
  62.     /** 
  63.      * @ORM\ManyToMany(targetEntity="App\Entity\UserGroup", inversedBy="users")
  64.      */
  65.     private $userGroup;
  66.     /**
  67.      * @ORM\Column(type="string", length=255, nullable=true)
  68.      */
  69.     private $photo;
  70.     /**
  71.      * @ORM\Column(type="integer", nullable=true)
  72.      */
  73.     private $phone;
  74.     /**
  75.      * @ORM\Column(type="string", length=255)
  76.      */
  77.     private $position;
  78.     /**
  79.      * @ORM\Column(type="string", length=255)
  80.      */
  81.     private $full_name;
  82.     /**
  83.      * @ORM\ManyToOne(targetEntity=OrganizationUnit::class, inversedBy="users")
  84.      * @ORM\JoinColumn(nullable=false)
  85.      */
  86.     private $unit;
  87.     /**
  88.      * @ORM\Column(type="string", unique=true, nullable=true)
  89.      */
  90.     private $apiToken;
  91.     public function __construct()
  92.     {
  93.     }
  94.     public function getId(): ?int
  95.     {
  96.         return $this->id;
  97.     }
  98.     public function getUsername(): ?string
  99.     {
  100.         return $this->username;
  101.     }
  102.     public function setUsername(string $username): self
  103.     {
  104.         $this->username $username;
  105.         return $this;
  106.     }
  107.     public function getEmail(): ?string
  108.     {
  109.         return $this->email;
  110.     }
  111.     public function setEmail(string $email): self
  112.     {
  113.         $this->email $email;
  114.         return $this;
  115.     }
  116.     /**
  117.      * A visual identifier that represents this user.
  118.      *
  119.      * @see UserInterface
  120.      */
  121.     public function getUserIdentifier(): string
  122.     {
  123.         return (string) $this->username;
  124.     }
  125.     /**
  126.      * @see UserInterface
  127.      */
  128.     public function getRoles(): array
  129.     {
  130.         $roles $this->roles;
  131.         // guarantee every user at least has ROLE_USER
  132.         $roles[] = 'ROLE_USER';
  133.         return array_unique($roles);
  134.     }
  135.     public function setRoles(array $roles): self
  136.     {
  137.         $this->roles $roles;
  138.         return $this;
  139.     }
  140.     /**
  141.      * @see PasswordAuthenticatedUserInterface
  142.      */
  143.     public function getPassword(): string
  144.     {
  145.         return (string) $this->password;
  146.     }
  147.     public function setPassword(string $password): self
  148.     {
  149.         $this->password $password;
  150.         return $this;
  151.     }
  152.     /**
  153.      * Returning a salt is only needed, if you are not using a modern
  154.      * hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.
  155.      *
  156.      * @see UserInterface
  157.      */
  158.     public function getSalt()
  159.     {
  160.         // not needed when using the "bcrypt" algorithm in security.yaml
  161.     }
  162.     /**
  163.      * @see UserInterface
  164.      */
  165.     public function eraseCredentials()
  166.     {
  167.         // If you store any temporary, sensitive data on the user, clear it here
  168.         // $this->plainPassword = null;
  169.     }
  170.     public function __toString()
  171.     {
  172.         return $this->full_name;
  173.     }
  174.     public function getIsActive(): ?bool
  175.     {
  176.         return $this->isActive;
  177.     }
  178.     public function setIsActive(bool $isActive): self
  179.     {
  180.         $this->isActive $isActive;
  181.         return $this;
  182.     }
  183.     public function getLastLogin(): ?\DateTimeInterface
  184.     {
  185.         return $this->lastLogin;
  186.     }
  187.     public function setLastLogin(?\DateTimeInterface $lastLogin): self
  188.     {
  189.         $this->lastLogin $lastLogin;
  190.         return $this;
  191.     }
  192.     public function getConfirmToken(): ?string
  193.     {
  194.         return $this->confirmToken;
  195.     }
  196.     public function setConfirmToken(?string $confirmToken): self
  197.     {
  198.         $this->confirmToken $confirmToken;
  199.         return $this;
  200.     }
  201.     public function getCreatedBy(): ?self
  202.     {
  203.         return $this->created_by;
  204.     }
  205.     public function setCreatedBy(?self $created_by): self
  206.     {
  207.         $this->created_by $created_by;
  208.         return $this;
  209.     }
  210.     public function getCreatedAt(): ?\DateTimeInterface
  211.     {
  212.         return $this->created_at;
  213.     }
  214.     public function setCreatedAt(\DateTimeInterface $created_at): self
  215.     {
  216.         $this->created_at $created_at;
  217.         return $this;
  218.     }
  219.     public function getStatus(): ?int
  220.     {
  221.         return $this->status;
  222.     }
  223.     public function setStatus(int $status): self
  224.     {
  225.         $this->status $status;
  226.         return $this;
  227.     }
  228.     /** 
  229.      * @return Collection|UserGroup[] 
  230.      */ 
  231.     public function getUserGroup(): Collection
  232.     {
  233.         return $this->userGroup;
  234.     }
  235.     public function addUserGroup(UserGroup $userGroup): self
  236.     {
  237.         if (!$this->userGroup->contains($userGroup)) {
  238.             $this->userGroup[] = $userGroup;
  239.         }
  240.         return $this;
  241.     }
  242.     public function removeUserGroup(UserGroup $userGroup): self
  243.     {
  244.         if ($this->userGroup->contains($userGroup)) {
  245.             $this->userGroup->removeElement($userGroup);
  246.         }
  247.         return $this;
  248.     }
  249.     public function getPhoto(): ?string
  250.     {
  251.         return $this->photo;
  252.     }
  253.     public function setPhoto(?string $photo): self
  254.     {
  255.         $this->photo $photo;
  256.         return $this;
  257.     }
  258.     public function getPhone(): ?int
  259.     {
  260.         return $this->phone;
  261.     }
  262.     public function setPhone(int $phone): self
  263.     {
  264.         $this->phone $phone;
  265.         return $this;
  266.     }
  267.     public function getPosition(): ?string
  268.     {
  269.         return $this->position;
  270.     }
  271.     public function setPosition(string $position): self
  272.     {
  273.         $this->position $position;
  274.         return $this;
  275.     }
  276.     public function getFullName(): ?string
  277.     {
  278.         return $this->full_name;
  279.     }
  280.     public function setFullName(string $full_name): self
  281.     {
  282.         $this->full_name $full_name;
  283.         return $this;
  284.     }
  285.     public function getUnit(): ?OrganizationUnit
  286.     {
  287.         return $this->unit;
  288.     }
  289.     public function setUnit(?OrganizationUnit $unit): self
  290.     {
  291.         $this->unit $unit;
  292.         return $this;
  293.     }
  294.     public function getApiToken(): ?string
  295.     {
  296.         return $this->apiToken;
  297.     }
  298.     public function setApiToken(?string $apiToken): self
  299.     {
  300.         $this->apiToken $apiToken;
  301.         return $this;
  302.     }
  303.     public function getAllFields()
  304.     {
  305.         return get_object_vars($this);
  306.     }
  307. }