2012-04-24 9 views
1

私は現在、ユーザアクセスのためにZend_Authを使用しているアプリケーションを持っています。サイトには管理者セクションがあり、自分の資格情報を使用するときに自分のデータベースに管理者の役割を持つ1人のユーザーにアクセスを許可する必要があります。 Zend_Aclはこれを行う唯一の方法ですか?私は何をしたいのか、私の問題を解決するのにもっと簡単な解決策があるのか​​少し複雑に思えますか?ZendFrameworkアプリケーションの管理セクション

私はこれについて考えていましたが、ユーザー用と管理用の2つの認証コントローラを持つことが可能かどうか疑問に思っています。

ありがとうございました

答えて

2

私は最近このようなことをしました。ユーザー認証情報をチェックする管理モジュールのフロントコントローラープラグインを作成します。何かのように:

class Admin_Plugin_Auth extends Zend_Controller_Plugin_Abstract 
{  
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     if ($request->getModuleName() != 'admin'){ 
      return; 
     } 
     $auth = Zend_Auth::getInstance(); 
     if (!$auth->hasIdentity()){ 
      // send him to login 
     } 
     $user = $auth->getIdentity(); 
     if (!$user->isAdmin()){ // or however you check 
      // send him to a fail page 
     } 
    }  
} 
+0

"/ application"にAcl.phpという名前のファイルを作成すると、起動時にプラグインを登録して起動時に初期化されますか? – Rex89

+0

あなたはあなたがそれをどこに置くか、名前をつけるか、どのように登録するかについて選択することができます。個人的には、私のAdmin_Plugin_Authという管理モジュール(ファイル: 'application/modules/admin/plugins/Auth.php')に居住していました。モジュールBootstrapが 'Zend_Application_Module_Bootstrap'(これはフォルダ' application/modules/admin/plugins'をクラス接頭辞 'Admin_Plugin_'にマッピングするリソースローダーを登録しています)を拡張したことを確認しました。モジュールBootstrap(ファイル: 'application/modules/admin/Bootstrap.php')にプラグインを登録しました。 –

+0

いつか、この情報は私のアプリケーションには役に立ちませんでした。なぜなら、ちょうど..ありがとうとにかく – Rex89

0

私は1ユーザーにその設定が管理者であれば、私のデータベースに「is_admin」のフィールドを持つ方法で行くことにしました。私は、このコードを使用します。

public function init() 
{ 
    $this->auth=Zend_Auth::getInstance(); 
    if ($this->auth->getStorage()->read()->is_admin) { 
    $route = array('controller'=>'admin', 'action'=>'index'); 
    } else { 
     $route = array('controller'=>'index', 'action'=>'index'); 
    $this->_helper->redirector->gotoRoute($route); 
    } 
} 

彼らは管理者ではなく、彼らが管理している場合は、それらにアクセスすることができます場合、これは管理エリアからユーザーをリダイレクトします。.. ACLよりも、実装がはるかに簡単でシンプルな使用のために私のアプリケーション。

+0

あなたは答えとしてこれを受け入れるのですか? http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

関連する問題