2011-07-05 9 views
2

私はCakePHPで認証システムを開発しています。私は2種類のユーザーを持っています。申請者と雇用主。私はそれらのそれぞれのユーザーテーブルとコントローラ、モデルとビューを持っている:CakePHPユーザーレベル?

controllers: 
    users_controller.php 
    applicants_controller.php 
    employers_controller.php 

models: 
    user.php 
    applicant.php 
    employer.php 

views: 
    applicants: 
     register.ctp 
    employers: 
     register.ctp 

このように、私は申請コントローラ、モデルを使用してビューを登録申請者を登録したいとき。雇用主も同じです。しかし、私は自分自身を繰り返す。これを実装する最良の方法は何ですか? ACLを使うべきですか?

おかげ

答えて

2

これらはあなたの唯一の違いであれば、私はちょうど1ユーザーのテーブルに行くとだけ応じてフラグを設定します。

applicantemployeeという2つのテーブルフィールドが必要です。 tinyint(1)を使うだけで、Cakeはそれをブール値として使うことができます。

あなたのAppControllerでは、これらの2つの値を確認して(AuthComponentで認証した後)、アクションを許可または拒否できます。

+0

ありがとうございました。それは良いヒントですが、将来私のアプリケーションがOpenIDのような複数のログインプロトコルをサポートしなければならない場合はどうなりますか?これが私がテーブルを分割したい理由の1つですが、これまでの実装では十分ではありません。 DRY原則に違反しないために私は何をすべきですか? – ivantxo

+0

複数のログインプロトコルのテーブルを分割したい理由がわかりません。しかし、現在の実装を維持したい場合は、コンポーネント(コントローラ用のコード共有)とビヘイビア(モデル用のコード共有)に関するマニュアルをお読みください。それは正しい軌道に乗るはずです。 – Tim

関連する問題