The user roles */ #[ORM\Column] private array $roles = []; /** * @var string The hashed password */ #[ORM\Column] private ?string $password = null; #[ORM\Column(length: 255, nullable: true)] private ?string $activationHash = null; #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)] private ?\DateTimeInterface $dateActivationHash = null; public function getId(): ?int { return $this->id; } public function getUsername(): ?string { return $this->username; } public function setUsername(string $username): static { $this->username = $username; return $this; } /** * A visual identifier that represents this user. * * @see UserInterface */ public function getUserIdentifier(): string { return (string) $this->username; } /** * @see UserInterface * * @return list */ public function getRoles(): array { $roles = $this->roles; // guarantee every user at least has ROLE_USER $roles[] = 'ROLE_USER'; return array_unique($roles); } /** * @param list $roles */ public function setRoles(array $roles): static { $this->roles = $roles; return $this; } public function addRoles(string $role): void { if ($role === 'ROLE_USER') { return; } $roles = $this->getRoles(); $roles[] = $role; $this->roles = $roles; } public function removeRoles(string $roleRemove): void { if ($roleRemove === 'ROLE_USER') { return; } $roles = $this->getRoles(); foreach ($roles as $key => $role) { if ($role === $roleRemove) { unset($roles[$key]); break; } } $roles = array_values($roles); $this->setRoles($roles); } /** * @see PasswordAuthenticatedUserInterface */ public function getPassword(): string { return $this->password; } public function setPassword(string $password): static { $this->password = $password; return $this; } /** * @see UserInterface */ public function eraseCredentials(): void { // If you store any temporary, sensitive data on the user, clear it here // $this->plainPassword = null; } public function getEnumRoles(): array { $tmp=[]; foreach ($this->getRoles() as $role) { $tmp[]=UserPermission::from($role); } return $tmp; } public function isGranted(UserPermission $permission): bool { return in_array($permission, $this->getEnumRoles(), true); } public function getActivationHash(): ?string { return $this->activationHash; } public function setActivationHash(?string $activationHash): static { $this->activationHash = $activationHash; return $this; } public function getDateActivationHash(): ?\DateTimeInterface { return $this->dateActivationHash; } public function setDateActivationHash(?\DateTimeInterface $dateActivationHash): static { $this->dateActivationHash = $dateActivationHash; return $this; } }