src/Entity/User.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Security\Roles;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use EightMarq\CoreComponent\Entity\EntityTrait;
  6. use EightMarq\CoreComponent\Model\UserInterface;
  7. use FOS\UserBundle\Model\User as BaseUser;
  8. use Gedmo\Blameable\Traits\BlameableEntity;
  9. use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity;
  10. use Gedmo\Timestampable\Traits\TimestampableEntity;
  11. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  12. /**
  13.  * @ORM\Table(name="users")
  14.  * @UniqueEntity({"email"})
  15.  * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
  16.  */
  17. class User extends BaseUser implements UserInterface
  18. {
  19.     use TimestampableEntity;
  20.     use SoftDeleteableEntity;
  21.     use BlameableEntity;
  22.     use EntityTrait;
  23.     /**
  24.      * @var int
  25.      *
  26.      * @ORM\Id
  27.      * @ORM\Column(type="integer")
  28.      * @ORM\GeneratedValue(strategy="IDENTITY")
  29.      */
  30.     protected $id;
  31.     public function __construct()
  32.     {
  33.         parent::__construct();
  34.         foreach (Roles::READ_ROLES as $role) {
  35.             $this->addRole($role);
  36.         }
  37.     }
  38.     /**
  39.      * @param string|null $email
  40.      *
  41.      * @return User|BaseUser
  42.      */
  43.     public function setEmail($email)
  44.     {
  45.         $this->email $email;
  46.         $this->username $email;
  47.         $this->emailCanonical $email;
  48.         $this->usernameCanonical $email;
  49.         return $this;
  50.     }
  51.     /**
  52.      * @return array
  53.      */
  54.     public function getRoleTokens(): array
  55.     {
  56.         $roles = [];
  57.         foreach ($this->getRoles() as $role) {
  58.             $roles[] = Roles::getRoleTokensWithRoleIds()[$role];
  59.         }
  60.         return $roles;
  61.     }
  62. }