src/Application/Project/SecurityAdminBundle/Entity/UserAdmin.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Application\Project\SecurityAdminBundle\Entity;
  3. use App\Application\Project\ContentBundle\Entity\BaseAdminUser;
  4. use App\Application\Project\SecurityAdminBundle\Repository\UserAdminRepository;
  5. use App\Entity\SonataMediaMedia;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\Security\Core\User\UserInterface;
  9. #[ORM\Table(name'security_admin_user')]
  10. #[ORM\Entity(repositoryClassUserAdminRepository::class)]
  11. class UserAdmin extends BaseAdminUser
  12. {
  13.     #[ORM\Id]
  14.     #[ORM\GeneratedValue]
  15.     #[ORM\Column]
  16.     private ?int $id null;
  17.     #[ORM\Column(length180uniquefalsenullablefalse)]
  18.     private ?string $name;
  19.     #[ORM\ManyToMany(targetEntityGroupAdmin::class)]
  20.     #[ORM\JoinTable(name"security_admin_user_group")]
  21.     #[ORM\JoinColumn(name"user_id"referencedColumnName"id")]
  22.     #[ORM\InverseJoinColumn(name"group_id"referencedColumnName"id")]
  23.     private $groups;
  24.     #[ORM\ManyToOne(targetEntitySonataMediaMedia::class, cascade: ['persist'])]
  25.     private mixed $logo;
  26.     #[ORM\Column(name'admin_roles'uniquefalse)]
  27.     private array $adminRoles = [];
  28.     public function __toString(): string
  29.     {
  30.         return $this->name;
  31.     }
  32.     public function __construct()
  33.     {
  34.         $this->groups = new ArrayCollection();
  35.     }
  36.     public function getId(): ?int
  37.     {
  38.         return $this->id;
  39.     }
  40.     public function setId(?int $id): void
  41.     {
  42.         $this->id $id;
  43.     }
  44.     public function getName(): ?string
  45.     {
  46.         return $this->name;
  47.     }
  48.     public function setName(?string $name): void
  49.     {
  50.         $this->name $name;
  51.     }
  52.     public function getGroups()
  53.     {
  54.         return $this->groups;
  55.     }
  56.     public function setGroups($groups): void
  57.     {
  58.         $this->groups $groups;
  59.     }
  60.     public function getRoles(): array
  61.     {
  62.         /**  Roles de todos os grupos que o usuário participa */
  63.         $groupRoles = [];
  64.         foreach ($this->getGroups() as $group)
  65.             $groupRoles array_merge$groupRoles$group->getRoles() );
  66.         /** Merge de todas as roles do usuário */
  67.         $roles array_merge$this->roles$this->adminRoles$groupRoles);
  68.         /** Limpa roles repedidas e retorna todas as roles do usuário */
  69.         return array_unique(array_values(array_filter($roles)));
  70.     }
  71.     public function getAdminRoles(): array
  72.     {
  73.         return $this->adminRoles;
  74.     }
  75.     public function setAdminRoles(array $adminRoles): void
  76.     {
  77.         $this->adminRoles $adminRoles;
  78.     }
  79.     public function getLogo(): mixed
  80.     {
  81.         return $this->logo;
  82.     }
  83.     public function setLogo(mixed $logo): void
  84.     {
  85.         $this->logo $logo;
  86.     }
  87. }