[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 フォームが必要 ###
}
#### 以下に管理者モードで本来実行すべきコードを書く ###
};
と書いておくとよいでしょう。
|
