src/Core/Framework/Api/Context/AdminApiSource.php line 8

  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Api\Context;
  3. use Shopware\Core\Framework\Log\Package;
  4. #[Package('core')]
  5. class AdminApiSource implements ContextSource
  6. {
  7.     public string $type 'admin-api';
  8.     private bool $isAdmin;
  9.     private array $permissions = [];
  10.     public function __construct(private readonly ?string $userId, private readonly ?string $integrationId null)
  11.     {
  12.         $this->isAdmin false;
  13.     }
  14.     public function getUserId(): ?string
  15.     {
  16.         return $this->userId;
  17.     }
  18.     public function getIntegrationId(): ?string
  19.     {
  20.         return $this->integrationId;
  21.     }
  22.     public function setIsAdmin(bool $isAdmin): void
  23.     {
  24.         $this->isAdmin $isAdmin;
  25.     }
  26.     public function setPermissions(array $permissions): void
  27.     {
  28.         $this->permissions $permissions;
  29.     }
  30.     public function isAllowed(string $privilege): bool
  31.     {
  32.         if ($this->isAdmin) {
  33.             return true;
  34.         }
  35.         return \in_array($privilege$this->permissionstrue);
  36.     }
  37.     public function isAdmin(): bool
  38.     {
  39.         return $this->isAdmin;
  40.     }
  41. }