<?php declare(strict_types=1);
namespace PPAdmin\AdminSections\Users;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Web;
use PPAdmin\AdminSections\AdminSectionsList;
use PPAdmin\Security\AbstractAdminGridSectionVoter;
class UsersVoter extends AbstractAdminGridSectionVoter
{
const SECTION_PERMISSION_VIEW_EMAILS = '.view-emails'; // can view full e-mail
public static function getSectionIdentifier(): string
{
return AdminSectionsList::USERS;
}
protected function voteOnSectionPermission(Administrator $admin, string $section_permission, $subject = null): bool
{
return match($section_permission) {
self::SECTION_PERMISSION_VIEW_EMAILS => $this->canViewEmails($admin),
default => parent::voteOnSectionPermission($admin, $section_permission, $subject)
};
}
function canViewEmails(Administrator $admin): bool
{
return $admin->isSuperAdmin() || $admin->hasPermission(self::getPermission(self::SECTION_PERMISSION_VIEW_DETAIL));
}
function canCreateSectionRecords(Administrator $admin, Web $web): bool
{
return false;
}
}