<?php declare(strict_types=1);
namespace PPAdmin\AdminSections\Webs;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web;
use PPAdmin\AdminSections\AdminSectionsList;
use PPAdmin\Security\AbstractAdminGridSectionVoter;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
class WebsVoter extends AbstractAdminGridSectionVoter
{
public static function getSectionIdentifier(): string
{
return AdminSectionsList::WEBS;
}
function isForSuperAdminOnly(): bool
{
return true;
}
/**
* @inheritDoc
*/
protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool
{
$admin = $token->getUser();
// only SUPER_ADMIN has access to webs management section
if (
!($admin instanceof Administrator) ||
!$admin->isSuperAdmin()
) {
return false;
}
return parent::voteOnAttribute($attribute, $subject, $token);
}
function canDeleteRecord(Administrator $admin, DefaultEntity $record): bool
{
return false;
}
function canCreateSectionRecords(Administrator $admin, Web $web): bool
{
return false;
}
}