2016-05-06 7 views
1

私はここでちょっと立ち往生していると思います。私はUserエンティティとGroupエンティティを持つDoctrine ORMを使用しています。ユーザーの種類別のログインフォーム

エンティティには、ユーザがメディックグループ、患者グループまたは企業グループのいずれに属するかを定義する「所属」フィールドがあります。サイトには2つのページがあります:ページ1とページ2と呼ばせてください。私は誰も(患者、医師、企業)がページ1にログインできるようにしたいが、ページ2の医師と企業だけにログインさせたい。 PAGE2のフォームからログインするpacientsを制限する

、 私は新しいログインコントローラを作成し、他のloginAction()方法とcheckAction()メソッドをオーバーライドしようとしたが、問題は、私はフォーム要素を取り込むことができないということのようです。また、ファイアウォールに新しいエントリを作成しようとしましたが、コントローラで既に行われているので、特定のセットのページを1つのクラスに制限する必要はないので、どのような助けとなるのか分かりません。

これを行うにはカスタムバリデーターを記述する必要がありますか?もしそうなら、私はどのようなユーザーのタイプを確認できますか?

他のアイデアを歓迎します。

答えて

0

チェックこれは、多分便利:

  1. app/config/security.yml
  2. その後Userエンティティに、いくつかの役割を定義します。

    security: 
    
        role_hierarchy: 
         ROLE_ADMIN:   [ROLE_FIRMS,ROLE_MEDICS] //define in User Entity 
    

    access_control:

    - { path: ^/someRoute/page$,  roles: ROLE_ADMIN } 
    
  3. 他のものは使用した認証システムに依存します。

これは完全に制御ユーザーのための便利なバンドルです:FOSUserBundle