web関連tips備忘録さんのブログ管理権限の与奪権の改善という記事を見つけたのでメモ。
Nucleus CMSの現行Ver.には、ブログ管理者が複数いる場合に最高管理者からそのブログの管理者権限を剥奪することができる不具合?があることが判明しました。
「まやろぐ」のようにひとりで管理・運営を行うブログでは問題ないですが、複数人で運営し、なおかつブログの管理者権限を最高管理者が他の者にも貸与している場合には上記問題が発生します。
修正用ファイルと修正方法が上記サイトに書いてあるのですが、現在のNucleus CMS Ver.3.3では致命的なエラーが出てしまい使えないため、私なりの修正方法を以下に書いておきます。
改善方法
(自己責任で行ってください。)
上記URLにて公開されている「customADMIN.zip」をダウンロード・解凍後、中身の「customADMIN.php」をテキストエディタで開き、175,177行目にある
class customBATCH extends BATCH {
}
を以下のようにコメントアウトする。
//class customBATCH extends BATCH {
//}
これをしておかないと「PHP Fatal error : Class ‘BATCH’ not found」というエラーが発生し、ログイン画面が全く表示されなくなります。
(NP_znCustomADMINと名前がかぶるため別のファイル名で保存した方がわかりやすいかもしれません。)
コメントアウト後保存したら「/NucleusCMS設置ディレクトリ/nucleus/lib/」に設置。
(「/NucleusCMS設置ディレクトリ/nucleus/」ではありません)
「/NucleusCMS設置ディレクトリ/nucleus/」にある「index.php」をテキストエディタで開き、75行目付近にある
$admin = new ADMIN();
を以下のように変更して上書き保存する。
//$admin = new ADMIN();
include("./libs/customADMIN.php");
$admin = new customADMIN();
(ファイル名を変更した場合は「customADMIN.php」をそのファイル名に置き換えてください。)
これで最高管理者からブログ管理者権限を剥奪できなくなります。
NP_CustomADMINとの併用もできるようです。
本当は BATCH クラスを用意した方がいいのかもだけど…手元の環境では動作に支障はないようなので私は省きました。