[hack] 管理者モードチェック(1.3〜)
バージョン 1.3以降では、クッキーを使った管理者モードが追加されています。
管理者モードか一般モードかの判断の仕方
関数 &::is_signed() を用います。
if( &::is_signed() ){ ### 管理者モード ### }else{ ### 一般モード ### }
ただし、こう書くと、1.3以降専用になってしまうので、
if( defined &::is_signed ){ if( &::is_signed() ){ ### 管理者モード ### }else{ ### 一般モード ### } }else{ ### 1.2 までの場合 #### ninsho(); ### 前のページに password フォームが必要 ### }
などと、処理を分けた方がよいかもしれません。
管理者モードでなかった時に、ログイン画面に自動転送する方法
&::action_sign() 関数へ引数なしで goto します。
$::action_plugin{'アクションプラグインの名前'} = sub{ goto &::action_signin unless &::is_signed(); #### 以下に管理者モードで本来実行すべきコードを書く ### };
ログイン画面では、そのページへ渡されたパラメータを、 <input type="hidden" …> 化して、 ログイン後に引き継いでくれます。
こちらも 1.2 までで処理を分けるのであれば:
$::action_plugin{'アクションプラグインの名前'} = sub{ if( defined &::is_signed ){ goto &::action_signin unless &::is_signed(); }else{ &::ninsho(); ### 前のページに password フォームが必要 ### } #### 以下に管理者モードで本来実行すべきコードを書く ### };
と書いておくとよいでしょう。
|