従来のmyblocksadmin,mytplsadminは、システムモジュールを前提とした作りであったが故に、チェック機構も「システム管理者権限」を利用していました。
- myblocksadmin XOOPS_SYSTEM_BLOCK (システム管理者権限-ブロック管理)
- mytplssadmin XOOPS_SYSTEM_TPLSET(システム管理者権限-テンプレート)
しかし、XoopsCubeで予定されているシステムモジュール換装を考えた場合、それはあまりうまくありません。実際、'system_admin' の各定数は、システムモジュール内で定義されていますし、本来はシステムモジュールでしか意味のないものです。
あちこちで書いていますが、現在XOOPS2.0.xで大きな意味で「コア」と呼ばれるものには以下の3つの要素が含まれます。
- コア
- システムモジュール
- ルートコントローラ
これらは本来独立しているべきものであり、単独モジュールでありライブラリであるaltsysがコアに依存するならともかく、システムモジュールに依存するのでは、本来の目的である「独立性」を損ねてしまうでしょう。
altsysは、それ自身がシステムモジュールのようなものですから、このモジュールの管理者権限が、事実上のシステム管理者権限だと見なすことで、この問題を解決できます。
つまり、altsysについては、各モジュールからライブラリとして呼び出すとしても、altsysのモジュール管理者権限でのチェックが入ることに注意してください。逆に、システム管理者権限チェックは入らないので、そちらでのコントロールはできません。
この唯一の例外は、altsysの要素でありライブラリ専用のmypreferencesです。これについては、対象モジュールの管理者権限がチェックされます。