CakePHPを用いて、中規模なシステムを構築しようかと思っています。
要件は、
パブリック・会員専用(管理者、準管理者、会員)とわかれています。
デザインもそれぞれ別で、4種類です。
様々なデータに、アクセスする際、
参照・追加・編集・削除などが、
できることとできないことが
4種類の権限ごとに、さらに、権限ごとに組み合わせはバラバラで、
多様です。
管理者は、管理者が指定した会員としてなりすましログインも可能です。
しかも、その際は、ID/Passwordの入力は無しで、ログインできます。
さて、質問です。
①どういった、構造にしたほうが良いと思いますか?
ex)権限ごとにprojectを作成して、分けた方が良い?
②認証は、AuthComponentを使ってカスタマイズした方が良い?
それとも、作った方が良い?
①
・権限ごとに別々に作成
・主要なモジュールは共通化する
②
どちらでもOK
成りすましログインだが、
実際には、成りすましログインでなくて
管理者としてログインしたままで、単にほかのユーザーのデータも編集できるだけ
というか、そういう概念で作成したほうがよい。
この考えかただと、AuthComponentをカスタマイズする方向で問題ない。
権限の振り分けが単純な包含関係にない場合は、ACLの導入によりこれを解決する方法があります。
ACLは敷居が高いので、工数が跳ね上がる可能性がありますが、ACLプラグイン( http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=2360&foru... )の導入により軽減することが可能でしょう。
ACLはRBACにのっとったものであり、柔軟な権限振り分けを行うことができます。また、標準でAuthComponentがサポートしています。
>管理者は、管理者が指定した会員としてなりすましログインも可能です。
>しかも、その際は、ID/Passwordの入力は無しで、ログインできます。
AuthComponent::login($user_id)で、パスワードなどを必要とすることなくログインが可能です。
ありがとうございます。
ACLについて、ちょっと調べてみます。
ありがとうございます。
権限ごとに別々にprojectを作成した方が良いのかなと感覚で感じながら、
同じようなmodelやcontrollerが沢山できるかなと思いましたので、質問しました。
modelなどを、module化するという方法で良いのでしょうか??
また、その、共通のmoduleは、どこのDirectoryに入れるべきでしょう?
でも、そもそも、散らばると大変になるので、projectは、同一案件内で
乱立させない方が良いような気もしてきました。
もう少し、アドバイスいただけると幸いです。