0

私はSymfony2に比較的慣れておらず、管理者専用のログイン領域が下にdomain.com/admin/home/あり(それ自体はAdminBundleと呼ばれる別のバンドルです)、管理者が製品を管理できるようにするアプリケーションに取り組んでいます。

ただし、同じアプリケーションには、ブログ投稿を管理するための管理領域を必要とするBlogBu​​ndleも含まれます。

これに取り組むための最良の方法は何ですか、複数の管理領域のベストプラクティスはありますか?

再利用性/移植性を向上させるために、ブログ管理セクションをBlogBu​​ndle内に保持することは理にかなっていますが、すべてのログイン設定はAdminBundleに含まれるため、間違っているようです。

4

1 に答える 1

1

これを行う1つの方法は、security.ymlファイルを使用して一連のルートを保護することです。例えば;

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

次に、アクションを作成するときに、admin以外のすべてのユーザーからアクションを保護するために、adminプレフィックスが付いたルートをアクションに与える必要があります。私の例ではルーティングにアノテーションを使用していますが、ymlでも同じことができます。

/**
 * Edit a Blog entity.
 *
 * @Route("/admin/blog/{id}/edit", name="blog_edit")
 * @Template()
 */
public function editAction()
{
...

または、クラスの前に付けることで、コントローラー内のすべてのアクションを保護できます。

/**
 * AdminBlog controller.
 *
 * @Route("/admin/blog")
 */
class AdminBlogController extends Controller
{
...

次に、ブログ投稿のエンドユーザーへの表示を処理する別のコントローラーを作成し、セキュリティで保護されていないルートを提供します。

別々のバンドルで他の領域を保護したい場合は、安全なコントローラー/安全でないコントローラー/methods.actionsを使用して同じ方法でそれを行うことができます

于 2013-01-11T14:25:40.883 に答える