src/AppBundle/SfExtend/AdminVoter.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace AppBundle\SfExtend;

use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
use Biz\User\CurrentUser;

class AdminVoter implements VoterInterface
{
    const ADMIN = 'ROLE_ADMIN';
    const BACKEND = 'ROLE_BACKEND';

    public function supportsAttribute($attribute)
    {
        return $attribute === self::ADMIN || $attribute === self::BACKEND;
    }

    public function supportsClass($class)
    {
        // TODO: Implement supportsClass() method.
    }

    public function vote(TokenInterface $token, $object, array $attributes)
    {
        foreach ($attributes as $attribute) {
            if (!$this->supportsAttribute($attribute)) {
                return self::ACCESS_ABSTAIN;
            }
        }

        $user = $token->getUser();

        if (empty($user) || !$user instanceof CurrentUser) {
            return self::ACCESS_DENIED;
        }

        if ($token->getUser()->isAdmin()) {
            return self::ACCESS_GRANTED;
        } else {
            return self::ACCESS_DENIED;
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。