Size: a a a

2020 October 21

D

Dmitry in symfony
хотя, конечно, все зависит от логики команды
источник

👤U

👤 User in symfony
Команда. Нет контроллера.
Есть 5 условных юзеров и надо поймать тех, у которых есть определенная роль.
источник

👤U

👤 User in symfony
А, in_array, ага. А если иерархия добавится. Вот тогда прогораю.
источник

D

Dmitry in symfony
может прокинуть тогда в команду симфониевский акцес менеджер ?
источник

D

Dmitry in symfony
либо же еще проще - прокиньте сразу вотер в свою команду
источник

👤U

👤 User in symfony
Да нет у меня вотеров пока. В этом-то и загвоздка. Есть юзеры, у них есть роли. Это все входные данные, на текущий момент.
источник

D

Dmitry in symfony
проще сделать вотер чем делать in_array
источник

D

Dmitry in symfony
AuthorizationCheckerInterface прокидываем в команду, куда нацеплены вотеры
они простейшие

и потом в команду if(!$this->authCheckerInterface->isGranted(CommandVoter::EXECUTE, $user)){throw exception | return | whatever}
источник

👤U

👤 User in symfony
источник

👤U

👤 User in symfony
if ($this->security->isGranted('ROLE_SUPER_ADMIN')) {
           return true;
       }

В
команде снова вернет ошибку, что токен не задан.
источник

D

Dmitry in symfony
это если идти по стандартному пути
источник

D

Dmitry in symfony
я же вам предоставил кастомный путь где юзер передается в вотер
источник

D

Dmitry in symfony
а там уж как хотите, так и проверяйте свои роли, хоть через in_array
источник

AD

Andrey Dembitskyi in symfony
👤 User
Да нет у меня вотеров пока. В этом-то и загвоздка. Есть юзеры, у них есть роли. Это все входные данные, на текущий момент.
Просто создай токен и отправь в access decision manager
источник

D

Dmitry in symfony
не нужно фейковый токен там
источник

D

Dmitry in symfony
DI все равно пхнет туда реализацию интерфейса TokenInterface
источник

D

Dmitry in symfony
$user = $token->getUser();

       if (!$user instanceof User) {
           // the user must be logged in; if not, deny access
           return false;
       }
источник

👤U

👤 User in symfony
Неужто такой редкий кейс. Проверить права в cli команде у целевых юзеров.
источник

D

Dmitry in symfony
:) так есть же решение, почему редкий то ?
источник

D

Dmitry in symfony
ну не хотите юзать симфони реализацию
сделайте свою

AuthCheckerInterface
{
 function isGranted($user): bool
}
источник