Home » めもらんだむ » XOOPS » Cube2.1情報 » XOOPS Cube 2.1でProtectorモジュール

XOOPS Cube 2.1でProtectorモジュール

実はXOOPS Cube2.1に変えてから、GIJOEさんProtectorモジュールを設定するのをしばらくの間忘れていました。 ^^;
で、遅ればせながらインストールしました。

もちろん、XOOPS 2.0.xと同様に、mainfile.phpの書換えを行う事で正しく動かす事が出来ます。しかし、今回はコアを全くハック無しというのを前提に考えているので、mainfile.phpさえも変えたくない。

という事で、XC2.1のpreloadを使って、Protectorモジュールを動かす事にしました。

本来Protectorモジュールでは、mainfile.php内で、common.phpをrequireしている前後で、
precheck.inc.php とpostcheck.inc.php を includeする事が前提になっています、
これをpreloadで行うのであれば、単純にpreFilter()とpreBlockFilter()にてそれぞれをincludeすればよいのではと考えていました。

が・・・・、
少々考えが甘すぎました。Protectorモジュールのpostcheckでは、$xoopsUser情報が取得できないといけないようで、preBlockFilter()段階はまだ、その時点に至っていないので、これだと、アクセスの度に不正ログインをトライしているようにとられてしまいました。

ということで、現在とりあえず動いているpreloadは、以下の通りです


<?php
class ProtectorGIJ extends XCube_ActionFilter
{
    function 
preFilter()
    {
      include( 
XOOPS_ROOT_PATH '/modules/protector/include/precheck.inc.php' ) ;
    }
 
    function 
preBlockFilter()
    {
        
$root=&XCube_Root::getSingleton();
        
// ToDo: Use More Appropriate Event
        
$root->mEventManager->setAnchorDelegate("Site.Login",new XCube_InstanceDelegate($this,'postCheck'));
    }
 
    function &
postCheck(&$controller,&$eventArgs)
    {
        
// ToDo: I don't like set $xoopsUsers GLOBAL Here. But Protector needs it.
                
if($eventArgs->getXoopsUser()) {
                        
$GLOBALS['xoopsUser'] =& $eventArgs->getXoopsUser();
        }
        include( 
XOOPS_ROOT_PATH '/modules/protector/include/postcheck.inc.php' ) ;       
        return 
$eventArgs;
    }
}
?>

というファイルを、/preload フォルダーに、ProtectorGIJ.class.php という名前で保存すればOKです。

結局、precheckの読込実行は、preFilter() 部分でOKですが、postcheckの読込実行は、"Site.Login"イベント発生時にそのイベントハンドラの一番最後で行う事にしました。

これ、とりあえず窮余の一策的な解法でしかありません。
やはり、XOOPS2.0.xでいうcommon.phpの実行終わりに相当する、$xoopsController->executeCommon(); の終了時にraiseEventを追加した方が良いかもしれませんね。

preload + delegateベースでの機能追加を行っていくためには、適切なところにraiseEventが仕掛けてある事が前提になります。なのでこのようなケーススタディーをどんどん進めていって、適切にraiseEventを追加していきたいと思っています。


コメント

このコメントのRSS

TrackBack URL : http://www.nobunobu.com/blog/2006/05/24/xoops-cube-21protector/trackback/

  1. > が・・・・、
    > 少々考えが甘すぎました。Protectorモジュールのpostcheckでは、
    > $xoopsUser情報が取得できないといけないようで

    Oh! My God!! orz

    ActionFilter にコールバックメソッドを追加するより、(そう多くのデリゲートが登録されないのであれば)イベント追加のほうがよさそうですね。

    Comment by minahito — 2006年5月25日(木曜日) @ 15時11分24秒

  2. good

    Comment by sad — 2008年10月22日(水曜日) @ 02時17分13秒

  3. good

    Comment by settor — 2008年10月22日(水曜日) @ 02時38分33秒

  4. good

    Comment by boy — 2008年10月22日(水曜日) @ 02時59分36秒

  5. good

    Comment by coder — 2008年10月22日(水曜日) @ 03時20分53秒

  6. good

    Comment by red — 2008年10月22日(水曜日) @ 03時41分39秒

  7. good

    Comment by wolf — 2008年10月22日(水曜日) @ 04時02分01秒

  8. good

    Comment by boy — 2008年10月22日(水曜日) @ 04時23分31秒

  9. good

    Comment by ganjaboy — 2008年10月22日(水曜日) @ 04時44分48秒

  10. good

    Comment by crazy — 2008年10月22日(水曜日) @ 05時06分20秒

  11. good

    Comment by mark — 2008年10月22日(水曜日) @ 05時26分26秒

  12. good

    Comment by stinky — 2008年10月22日(水曜日) @ 05時46分45秒

  13. good

    Comment by wolf — 2008年10月22日(水曜日) @ 06時28分07秒

  14. good

    Comment by alex — 2008年10月22日(水曜日) @ 06時48分25秒

  15. good

    Comment by wolf — 2008年10月22日(水曜日) @ 07時08分55秒

  16. good

    Comment by hiswife — 2008年10月22日(水曜日) @ 07時29分04秒

  17. good

    Comment by maxx — 2008年10月22日(水曜日) @ 07時49分28秒

  18. good

    Comment by merlin — 2008年10月22日(水曜日) @ 08時09分23秒

  19. good

    Comment by faggot — 2008年10月22日(水曜日) @ 08時29分52秒

  20. good

    Comment by wolf — 2008年10月22日(水曜日) @ 08時50分10秒

  21. good

    Comment by barbara — 2008年10月22日(水曜日) @ 09時30分49秒

  22. good

    Comment by miss — 2008年10月22日(水曜日) @ 09時51分08秒

  23. good

    Comment by pol — 2008年10月22日(水曜日) @ 10時11分32秒

  24. good

    Comment by boy — 2008年10月22日(水曜日) @ 10時31分34秒

  25. good

    Comment by mark — 2008年10月22日(水曜日) @ 11時11分47秒

  26. good

    Comment by badgirl — 2008年10月22日(水曜日) @ 11時31分49秒

  27. good

    Comment by boy — 2008年10月22日(水曜日) @ 11時52分00秒

  28. good

    Comment by gangster — 2008年10月22日(水曜日) @ 12時12分35秒

  29. good

    Comment by faggot — 2008年10月22日(水曜日) @ 12時32分11秒

  30. good

    Comment by wolf — 2008年10月22日(水曜日) @ 12時52分08秒

  31. good

    Comment by loy — 2008年10月22日(水曜日) @ 13時12分20秒

  32. good

    Comment by crazy — 2008年10月22日(水曜日) @ 13時32分26秒

  33. good

    Comment by daddy — 2008年10月22日(水曜日) @ 13時52分32秒

  34. good

    Comment by hiswife — 2008年10月22日(水曜日) @ 14時12分34秒

  35. good

    Comment by ganjaboy — 2008年10月22日(水曜日) @ 14時32分11秒

  36. good

    Comment by sad — 2008年10月22日(水曜日) @ 14時52分01秒

  37. good

    Comment by crazy — 2008年10月22日(水曜日) @ 15時12分37秒

  38. good

    Comment by driver — 2008年10月22日(水曜日) @ 15時32分29秒

  39. good

    Comment by stinky — 2008年10月22日(水曜日) @ 15時53分01秒

  40. good

    Comment by badgirl — 2008年10月22日(水曜日) @ 16時13分36秒

  41. good

    Comment by boy — 2008年10月22日(水曜日) @ 16時34分22秒

  42. good

    Comment by driver — 2008年10月22日(水曜日) @ 16時55分34秒

  43. good

    Comment by arnold — 2008年10月22日(水曜日) @ 17時15分54秒

  44. good

    Comment by ganry — 2008年10月22日(水曜日) @ 17時57分21秒

  45. good

    Comment by bob — 2008年10月22日(水曜日) @ 18時17分51秒

  46. good

    Comment by sad — 2008年10月22日(水曜日) @ 18時38分23秒

  47. good

    Comment by bob — 2008年10月22日(水曜日) @ 19時20分02秒

  48. good

    Comment by alex — 2008年10月22日(水曜日) @ 19時40分44秒

  49. good

    Comment by bob — 2008年10月22日(水曜日) @ 20時01分19秒

  50. good

    Comment by ganry — 2008年10月22日(水曜日) @ 20時21分33秒

  51. good

    Comment by roy — 2008年10月22日(水曜日) @ 20時42分15秒

コメントの投稿

改行や段落は自動です
URLとメールアドレスは自動的にリンクされますので、<a>タグは不要です。
以下のHTMLタグが使用可能です。
<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <br> <code> <em> <i> <pre> <strike> <strong>



80 queries. 0.223 sec.
Powered by WordPress Module based on WordPress ME & WordPress

flagflag

XOOPS初心者サーチ


Add to Google

Xoops Cube Project

XOOPS Cube Project Site

XC Developers Ring

http://img.simpleapi.net/small/http://www.peak.ne.jp/xoops/ SIZE:128x128(7.6KB)

PEAK XOOPSサポート&実験室 by GIJOE