Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Entity;
- use App\Repository\UserRepository;
- use Doctrine\Common\Collections\ArrayCollection;
- use Doctrine\Common\Collections\Collection;
- use Doctrine\ORM\Mapping as ORM;
- use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
- use Symfony\Component\Security\Core\User\UserInterface;
- #[ORM\Entity(repositoryClass: UserRepository::class)]
- #[ORM\Table(name: '`user`')]
- #[ORM\UniqueConstraint(name: 'UNIQ_IDENTIFIER_EMAIL', fields: ['email'])]
- class User implements UserInterface, PasswordAuthenticatedUserInterface
- {
- #[ORM\Id]
- #[ORM\GeneratedValue]
- #[ORM\Column]
- private ?int $id = null;
- #[ORM\Column(length: 180)]
- private ?string $email = null;
- /**
- * @var list<string> The user roles
- */
- #[ORM\Column]
- private array $roles = [];
- /**
- * @var string The hashed password
- */
- #[ORM\Column]
- private ?string $password = null;
- /**
- * @var Collection<int, Group>
- */
- #[ORM\ManyToMany(targetEntity: Group::class, mappedBy: 'users')]
- private Collection $groups;
- public function __construct()
- {
- $this->groups = new ArrayCollection();
- }
- public function getId(): ?int
- {
- return $this->id;
- }
- public function getEmail(): ?string
- {
- return $this->email;
- }
- public function setEmail(string $email): static
- {
- $this->email = $email;
- return $this;
- }
- /**
- * A visual identifier that represents this user.
- *
- * @see UserInterface
- */
- public function getUserIdentifier(): string
- {
- return (string) $this->email;
- }
- /**
- * @see UserInterface
- *
- * @return list<string>
- */
- public function getRoles(): array
- {
- $roles = $this->roles;
- // guarantee every user at least has ROLE_USER
- $roles[] = 'ROLE_USER';
- return array_unique($roles);
- }
- /**
- * @param list<string> $roles
- */
- public function setRoles(array $roles): static
- {
- $this->roles = $roles;
- return $this;
- }
- /**
- * @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;
- }
- /**
- * @return Collection<int, Group>
- */
- public function getGroups(): Collection
- {
- return $this->groups;
- }
- public function addGroup(Group $group): static
- {
- if (!$this->groups->contains($group)) {
- $this->groups->add($group);
- $group->addUser($this);
- }
- return $this;
- }
- public function removeGroup(Group $group): static
- {
- if ($this->groups->removeElement($group)) {
- $group->removeUser($this);
- }
- return $this;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement