私はSymfony2を使用しており、ユーザーとロールはすでにDBに保存されています。以下のようなものを設定するとsecurity.yml
、うまく機能します。
access_control:
- { path: ^/admin, role: ROLE_ADMIN}
- { path: ^/users, role: ROLE_MANAGER}
ただし、このaccess_control情報をデータベースに保存して、システムのユーザーが管理インターフェイスを使用してアクセス許可自体を変更できるようにします。
ACLとFOSUserBundleを調べましたが、これに対する解決策が見つかりませんでした。次のような方法で権限を確認できることがわかりましたがif ($user->hasRole($role))
、すべてのコントローラーでこれを行う必要があります。
動的な「access_control」機能を定義する方法はありますか?たぶん、trueまたはfalseを返す可能性のあるクラスにaccess_controlをリダイレクトするようなものです。解決策はありますか?