私はコントローラ内で完全に動作している投票者を持っていますが、サービス内で使用しようとすると、 "return false"文がありますが、常にtrueを返します。投票者がsymfony 3.3.4で働いていない
唯一の違いは私がそれを呼び出す方法です。
私はそれをこのように使うコントローラーに:
$this->denyAccessUnlessGranted('ver', $menu);
をし、サービスに私はこのようにそれを呼び出す:
サービスで$this->authorizationChecker->isGranted('ver', $menu);
私はAuthorizationCheckerを注入し、それが動作しますが、他の有権者を実行しているようです(私には1つしかありません)。
は、私は、この持っている "のsecurity.yml" では:
access_decision_manager:
strategy: unanimous
投票コード:
protected function voteOnAttribute($attribute, $subject, TokenInterface $token){
$usuario = $token->getUser();
if (!$usuario instanceof Usuarios) {
return false;
}
/** @var Menu $menu */
$menu = $subject;
switch ($attribute) {
case self::VER:
return false;
case self::EDITAR:
return false;
case self::IMPRIMIR:
return false;
}
throw new \LogicException('This code should not be reached!');
}
を誰もが、私を助けてくださいことはできますか?
このリリースで問題が発生しました。3.3.5にアップグレードしようとしましたか? – COil
私はちょうどアップグレードする(新しいバージョンがあったか分からない)問題は持続する:( – Angainor
あなたの有権者が実際に呼ばれていないと推測しているが、なぜ私は見ることができない。あなたの有権者が適切にタグ付けされていると仮定してください。 – Cerad