2016-06-20 11 views
0

私はFOSUserを使用しています。ユーザーが既に接続されている場合、例外を返すか、単に登録へのアクセスをブロックしたいと思います。私が接続されると、URLで、私はまだ/ registerに行くことができます。Symfony 3 | FOSUser接続されている場合はブロックを登録します

これは私のACCESS_CONTROLです:

access_control: 
     - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 

私は登録コントローラのアクションをオーバーライドしてAccessDeniedExceptionを返すが、私は多分のsecurity.ymlとのより良い解決策があると確信しているだろうか?

答えて

0

最終的に答えが見つかりました。私は投票者を使ってユーザー権限をチェックしなければなりません。

これは、docです:http://symfony.com/doc/current/cookbook/security/voters.html

そしてここに偉大な例があります:http://henrik.bjrnskov.dk/symfony2-anonymous-users-access/

そして、これは私が持っているものである:あなたの答えのための

- { path: ^/register, role: IS_ANONYMOUS } 
0

あなたがこれを追加した場合:

- { path: ^/register, role: ROLE_ADMIN } 

その後、使用:

php bin/console fos:user:promote user_name ROLE_ADMIN 

、他のユーザーがアクセス拒否のメッセージが表示されます、ROLE_ADMINに "USER_NAME" を追加します。

+0

TYは。しかし、 - {path:^/register、role:ROLE_ADMIN}をセキュリティに追加すると、匿名ユーザーは登録にアクセスできなくなります。匿名でこのページにアクセスし、ログに記録されているときにこのページにアクセスしないようにします。 – Aximem

関連する問題