2009年4月14日火曜日

 

【symfony】ユーザ認証プラグインsfGuardAuthのカスタマイズ

リンク先に有りますが、「modules/sfGuardAuth/」ディレクトリを作り「templates/」ディレクトリ内に「signinSuccess.php」「secureSuccess.php」を作るとこちらが呼ばれます。actionはデフォルトのものが呼ばれるので作らなくても問題ありません。

/* テンプレートのカスタマイズ */
modules/
∟sfGuardAuth/
   ∟templates/
      ∟signinSuccess.php
      ∟secureSuccess.php 
※「action/」はなくても良い

アクションのカスタマイズをする場合、sfGuardPluginのアクションを継承します。
アクション・クラスのファイルを作ると「template/」ディレクトリのテンプレートが読み込まれます。ファイルがない場合はログインフォームは表示されません。

/* アクションのカスタマイズ */

<?php
  require_once(sfConfig::get('sf_plugins_dir').'/sfGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php'); 
  class sfGuardAuthActions extends BasesfGuardAuthActions   {

    public function executeSignin(sfWebRequest $request)
    {
      parent::executeSignin($request);
    }
    public function executeSignout(sfWebRequest $request)
    {
      parent::executeSignout($request);
    }
    public function executeSecure()
    {
      parent::executeSecure();
    }
    public function executePassword()
    {
      parent::executePassword();
    }
  }

親クラスのある「sfGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php」には「executeSignin()」「executeSignout()」「executeSecure()」「executePassword()」が定義されてます。「BasesfGuardAuthActions」クラスは「sfActions」クラスを継承してます。
ログイン認証の為に「$request」を渡します。
ログイン前後の処理を追加したりして、後は親クラスのメソッドに任せます。これでテンプレートファイルはデフォルトが読み込まれます。アクションも全て記述しなくて済みます。

関連

ユーザ認証プラグイン sfGuardPlugin - さぼてん:2009年4月8日
sfGuard plugin - symfony-doc-ja
既存のテーブルを利用する認証システムplugin - symfonyはじめました

ラベル:


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google