<?php/** * Created by simpson <simpsonwork@gmail.com> * Date: 2019-04-26 * Time: 11:14 */namespace App\Entity\Management;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Security\Core\User\UserInterface;#[ORM\Table(name: 'staff_accounts')]#[ORM\Entity]class StaffAccount implements UserInterface{ const ROLE_MINIMUM = 'ROLE_ADMIN'; const ROLE_ACCESS_ALL = 'ROLE_ADMIN_ACCESS_ALL'; const ROLE_ACCESS_ACCOUNTS = 'ROLE_ADMIN_ACCESS_ACCOUNTS'; const ROLE_ACCESS_PROFILES = 'ROLE_ADMIN_ACCESS_PROFILES'; const ROLE_ACCESS_SALES = 'ROLE_ADMIN_ACCESS_SALES'; const ROLE_ACCESS_SEO = 'ROLE_ADMIN_ACCESS_SEO'; const ROLE_ACCESS_LOCATION = 'ROLE_ADMIN_ACCESS_LOCATION'; const ROLE_ACCESS_DELETED = 'ROLE_ADMIN_ACCESS_DELETED'; const ROLE_ACCESS_OTHER = 'ROLE_ADMIN_ACCESS_OTHER'; const ROLE_ACCESS_WALKER = 'ROLE_ACCESS_WALKER'; #[ORM\Id] #[ORM\Column(name: 'id', type: 'integer')] #[ORM\GeneratedValue(strategy: 'AUTO')] protected int $id; #[ORM\Column(name: 'email', type: 'string', length: 64, unique: true)] protected string $email; #[ORM\Column(name: 'encrypted_password', type: 'string', length: 64)] protected string $encryptedPassword; #[ORM\Column(name: 'permissions', type: 'simple_array')] protected array $permissions; public function __construct(string $email, string $encryptedPassword, array $permissions = []) { $this->email = $email; $this->encryptedPassword = $encryptedPassword; $this->permissions = $permissions; } /** * @inheritDoc */ public function getRoles() { $permissions = $this->permissions; $permissions[] = self::ROLE_MINIMUM; return array_unique($permissions); } public function getId(): int { return $this->id; } public function getEmail(): string { return $this->email; } /** * @inheritDoc */ public function getPassword() { return $this->encryptedPassword; } /** * @inheritDoc */ public function getSalt() { return null; } /** * @inheritDoc */ public function getUsername() { return $this->email; } /** * @inheritDoc */ public function eraseCredentials() { }}