<?php
namespace App\Entity\OAuth2\Admin;
use App\Entity\OAuth2\AbstractToken;
use App\Service\OAuth2\AdminClientRepository;
use Doctrine\ORM\Mapping as ORM;
use League\OAuth2\Server\Entities\ClientEntityInterface;
use Platform\SecurityBundle\Entity\Identity\Account;
/**
* @ORM\Entity(
* repositoryClass = "App\Doctrine\Repository\OAuth2\Admin\AdminTokenRepository",
* )
*/
abstract class AbstractAdminToken extends AbstractToken
{
public const DISCR = 'admin';
/**
* @var Account|null
*
* @ORM\ManyToOne(
* targetEntity = Account::class,
* inversedBy = "tokens",
* )
* @ORM\JoinColumn(
* name = "account",
* referencedColumnName = "id",
* nullable = true,
* onDelete = "CASCADE",
* )
*/
protected ?Account $account = null;
/**
* @return Account|null
*/
public function getAccount(): ?Account
{
return $this->account;
}
/**
* @param Account|null $account
* @return $this
*/
public function setAccount(?Account $account): self
{
$this->account = $account;
return $this;
}
/**
* {@inheritdoc}
*/
public function getClient(): ClientEntityInterface
{
return AdminClientRepository::getInstance()->getClientEntity(
$this->client
);
}
}