ayumiさんの指摘でイベント通知を見直しているのですが、ここに、いくつもの整合性チェック漏れがあって、かなり困った状況になっています。
(1) カーネル側のチェック漏れ
admin_only なイベントも、管理者以外が登録できる
(単にフォームに表示されていないだけ)
(2) 閲覧権限のチェックをイベント通知に渡し忘れているモジュールが多い
user_listの指定無しに一括でtriggerEvent()してしまうと、閲覧権限がチェックされない
(こちらは、モジュール側で細かく制御するしかない)
この両者があるおかげで、newbbなどではプライベートフォーラムが意味をなさないものになっています。一般ユーザが投稿文付のイベント通知を登録すれば、プライベートフォーラムの投稿も、本文付で通知されてしまうからです。
これはほぼ「穴」と言える状況でしょう。
とりあえず、xhnewbbでも最低限(2)の面倒をみてやらなければならないとは思いますが、カーネル側のバグ(1)についてはどうしたものか、頭を悩ませています。モジュール内のnotification_update.phpで自前チェックを足す、というのも手ではありますが…
admin_only なイベント通知に重要な意味を持たせているモジュール作者は、再度確認した方が良さそうです。
XOOPSの権限チェックは、しっかりしてそうに見えて結構いい加減ですよね。
理由は、
1・ページコントローラのために実装はモジュール側で100%必要
2・しかし、コアが与えてくれるgpermはいまいち使いにくい
1は、各モジュールの作者の力量と理解度によるんですが、XOOPS側で簡単に使えるクラスを作っておいてくれないかなぁと。
xoops_grouppermissionはいまいちなんですよね・・・。