Symfony 4: не может получить доступ как ROLE_ADMIN - PullRequest
0 голосов
/ 10 июня 2019

Значение столбца Мои роли: ["ROLE_ADMIN"]

Моя сущность / Пользователь:

/**
 * @ORM\Column(type="json", nullable=true)
 */
private $roles = [];

public function getRoles() : ?array { 
    $roles = $this->roles; 
    $roles[] = 'ROLE_USER';
    return array_unique($roles); 
}

$currentUser->getRoles(); дает мне это в var_dump:

array(2) { [0]=> string(10) "ROLE_ADMIN" [1]=> string(9) "ROLE_USER" }

My security.yaml:

access_control:
- { path: ^/admin, roles: ROLE_ADMIN }

Панель инструментов Profiler сообщает мне, что я вошел в систему.

Но все равно я вижу сообщение:

Symfony\Component\HttpKernel\Exception\
AccessDeniedHttpException

Но когда я меняю свой security.yaml на:

access_control:
- { path: ^/admin, roles: ROLE_USER }

Тогда исключение исчезает.

Я что-то пропустил?

1 Ответ

0 голосов
/ 11 июня 2019

Попробуйте выйти из системы и войти в систему, Symfony хранит роли в маркере запомнить меня, вы можете проверить свои назначенные роли в профилировщике, вкладка «Безопасность». Скорее всего, роль не в cookie-файле "Помни меня", поэтому она не дает тебе доступа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...