こんばんは、K’z Style代表・宮崎です。
お客様からの要望で、MODX Evolution(以下、単にMODXとします)を利用するユーザの権限に制限をかけることにしました。
通常コンテンツを更新するユーザには、関係ない箇所を不用意に触らせないようにするために、操作できることを制限してしまおうということです。
これによって管理ページも不要な操作アイコンが消えてスッキリします。
MODXにはユーザの各種権限を管理する「ロール」という機能を持っているので、今回はこちらを利用します。
コンテンツの編集はできないといけませんので、リソースの作成・更新関係は全て可能にします。
テンプレートやチャンク、スニペットの編集もできたほうが良いので有効にします。
プラグインやモジュールの編集、その他管理系の操作は、不用意に実行されると困るので操作できないようにしておきます。
通常使用するユーザを作成し、先程作成したロールを割り当てます。
作成したユーザで試しにMODXにログインし、既存のページ(リソース)を編集してみて問題ないことを確認しました。
ところが、新規にページ(リソース)を作成しようとしたところ、保存時に
権限がありません
とのメッセージが表示され、リソースの保存ができません。
ロールの設定ではリソースに関するものは全て有効にしています。何も問題ないはずです。
また、不思議なことに、階層以下にページ(リソース)は作成できるのです。
これは潜在的なバグか?と思い、MODXのソースコードを調べてみました。
で、わかったことは
トップ階層にリソースを作成するには特別な権限が必要
ということのようです。
(ルートの権限か、ロールを更新する権限が必要なようです。)
というわけで、今回は通常使用するユーザのロールに「ロールを更新」する権限のみ付与することにしました。
「ロールを更新」する権限を与えても「ロールを作成」する権限を与えなければ管理画面にロール管理メニューは出てこないので、不用意にロールを操作する心配はなさそうです。
これでトップレベルにもページ(リソース)を作成することができました。
今回の対応が正しいものかどうかはわかりませんが、とりあえず運用できるようにはなりました。
なぜトップレベルにリソースを作成するのに特別な権限が必要なのかは謎のままです…
最後までおつきあいいただき、ありがとうございます。
コメント