src/Modules/User/Entity/User.php line 19
<?phpnamespace App\Modules\User\Entity;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Doctrine\DBAL\Types\Types;use Gedmo\Mapping\Annotation as Gedmo;use Symfony\Component\Security\Core\User\UserInterface;use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;use App\Admin\Modules\User\Entity\UserAdmin;use App\Admin\Modules\Contract\Entity\ContractClient;/*** @ORM\Table(name="user", indexes={@ORM\Index(name="username", columns={"username"}), @ORM\Index(name="email", columns={"email"}), @ORM\Index(name="first_name", columns={"first_name"}), @ORM\Index(name="last_name", columns={"last_name"}), @ORM\Index(name="type", columns={"type"}), @ORM\Index(name="system_id", columns={"system_id"}), @ORM\Index(name="is_active", columns={"is_active"}), @ORM\Index(name="added_at", columns={"added_at"})})* @ORM\Entity*/class User implements UserInterface, PasswordAuthenticatedUserInterface, \Serializable{const TYPE_APP_ADMIN = 1;const TYPE_SUPER_ADMIN = 2;const TYPE_ADMIN = 3;const TYPE_CLIENT = 4;const TYPE_HR_SPECIALIST = 5;const TYPE_ACCOUNTANT = 6;/*** @ORM\Column(type="integer")* @ORM\Id* @ORM\GeneratedValue(strategy="AUTO")*/private $id;/*** @ORM\Column(name="username", type="string", length=255)*/private $username;/*** @ORM\Column(name="password", type="string", length=64)*/private $password;/*** @ORM\Column(name="email", type="string", length=255, nullable=true)*/private $email;/*** @ORM\Column(name="first_name", type="string", length=255, nullable=true)*/private $firstName;/*** @ORM\Column(name="last_name", type="string", length=255, nullable=true)*/private $lastName;/*** @ORM\Column(name="screen_locker_pin", type="string", length=25, nullable=true)*/private $screenLockerPin;/*** @ORM\Column(name="selected_lang", type="string", length=2, nullable=true)*/private $selectedLang;/*** @var int** @ORM\Column(name="type", type="smallint", nullable=false)*/private $type;/*** @ORM\Column(name="system_id", type="string", length=255, nullable=true)*/private $systemId;/*** @ORM\Column(name="is_active", type="boolean")*/private $isActive;/*** @var \DateTime** @ORM\Column(name="added_at", type="datetime", nullable=false)* @Gedmo\Timestampable(on="create")*/private $addedAt;/*** @var \App\Admin\Modules\User\Entity\UserAdmin** @ORM\OneToMany(targetEntity="App\Admin\Modules\User\Entity\UserAdmin", mappedBy="user", cascade={"persist"}, orphanRemoval=true)*/private $admin;/*** @var \App\Admin\Modules\Contract\Entity\ContractClient** @ORM\OneToMany(targetEntity="App\Admin\Modules\Contract\Entity\ContractClient", mappedBy="user", cascade={"persist"})*/private $client;public function __construct(){$this->isActive = false;// may not be needed, see section on salt below// $this->salt = md5(uniqid('', true));$this->admin = new ArrayCollection();$this->client = new ArrayCollection();}/** @see \Serializable::serialize() */public function serialize(){return serialize(array($this->id,$this->username,$this->password,// see section on salt below// $this->salt,));}/** @see \Serializable::unserialize() */public function unserialize($serialized){list ($this->id,$this->username,$this->password,// see section on salt below// $this->salt) = unserialize($serialized, array('allowed_classes' => false));}private function _getFromCollection($propertyName){if ($this->$propertyName && count($this->$propertyName))return $this->$propertyName->first();elsereturn null;}private function _addToCollection($propertyName, $value){if (!$this->$propertyName)$this->$propertyName = new ArrayCollection();elseif (count($this->$propertyName))$this->$propertyName->removeElement($this->$propertyName->first());$value->setUser($this);$this->$propertyName[] = $value;return $this;}public function getName(): string{return $this->firstName . ' ' . $this->lastName;}public function getAdmin(): ?UserAdmin{return $this->_getFromCollection('admin');}public function setAdmin(?UserAdmin $admin): self{return $this->_addToCollection('admin', $admin);}public function getClient(): ?ContractClient{return $this->_getFromCollection('client');}public function setClient(?ContractClient $client): self{return $this->_addToCollection('client', $client);}public function getUserIdentifier(): string{return $this->username;}public function getId(): ?int{return $this->id;}public function getEmail(): ?string{return $this->email;}public function setEmail(?string $email): self{$this->email = $email;return $this;}public function getIsActive(): ?bool{return $this->isActive;}public function setIsActive(bool $isActive): self{$this->isActive = $isActive;return $this;}public function setUsername(string $username): self{$this->username = $username;return $this;}public function getUsername(){return $this->username;}public function getSalt(){// you *may* need a real salt depending on your encoder// see section on salt belowreturn null;}public function getPassword(): ?string{return $this->password;}public function setPassword(string $password): self{$this->password = $password;return $this;}public function getRoles(): array{switch($this->type){case self::TYPE_APP_ADMIN:return ['ROLE_APP_ADMIN'];case self::TYPE_SUPER_ADMIN:return ['ROLE_SUPER_ADMIN'];case self::TYPE_ADMIN:return ['ROLE_ADMIN'];case self::TYPE_HR_SPECIALIST:return ['ROLE_HR_SPECIALIST'];case self::TYPE_ACCOUNTANT:return ['ROLE_ACCOUNTANT'];case self::TYPE_CLIENT:return ['ROLE_CLIENT'];default:throw new \Exception('Unknown user.');}}public function eraseCredentials(){}public function getType(): ?int{return $this->type;}public function setType(int $type): self{$this->type = $type;return $this;}public function getSelectedLang(): ?string{return $this->selectedLang;}public function setSelectedLang(?string $selectedLang): self{$this->selectedLang = $selectedLang;return $this;}public function isIsActive(): ?bool{return $this->isActive;}public function getAddedAt(): ?\DateTimeInterface{return $this->addedAt;}public function setAddedAt(\DateTimeInterface $addedAt): self{$this->addedAt = $addedAt;return $this;}public function getSystemId(): ?string{return $this->systemId;}public function setSystemId(?string $systemId): self{$this->systemId = $systemId;return $this;}public function getScreenLockerPin(): ?string{return $this->screenLockerPin;}public function setScreenLockerPin(?string $screenLockerPin): self{$this->screenLockerPin = $screenLockerPin;return $this;}public function getFirstName(): ?string{return $this->firstName;}public function setFirstName(?string $firstName): self{$this->firstName = $firstName;return $this;}public function getLastName(): ?string{return $this->lastName;}public function setLastName(?string $lastName): self{$this->lastName = $lastName;return $this;}}