MODXで新規作成したユーザでページの作成ができない [解決]

CMSの話題
レベル: ★★☆☆☆

こんばんは、K’z Style代表・宮崎です。

お客様からの要望で、MODX Evolution(以下、単にMODXとします)を利用するユーザの権限に制限をかけることにしました。
通常コンテンツを更新するユーザには、関係ない箇所を不用意に触らせないようにするために、操作できることを制限してしまおうということです。
これによって管理ページも不要な操作アイコンが消えてスッキリします。

MODXにはユーザの各種権限を管理する「ロール」という機能を持っているので、今回はこちらを利用します。
コンテンツの編集はできないといけませんので、リソースの作成・更新関係は全て可能にします。
テンプレートやチャンク、スニペットの編集もできたほうが良いので有効にします。
プラグインやモジュールの編集、その他管理系の操作は、不用意に実行されると困るので操作できないようにしておきます。

通常使用するユーザを作成し、先程作成したロールを割り当てます。

作成したユーザで試しにMODXにログインし、既存のページ(リソース)を編集してみて問題ないことを確認しました。

ところが、新規にページ(リソース)を作成しようとしたところ、保存時に

権限がありません

とのメッセージが表示され、リソースの保存ができません
ロールの設定ではリソースに関するものは全て有効にしています。何も問題ないはずです。

また、不思議なことに、階層以下にページ(リソース)は作成できるのです。

MODXはページ(リソース)を階層構造で管理することができます。

これは潜在的なバグか?と思い、MODXのソースコードを調べてみました。
で、わかったことは

トップ階層にリソースを作成するには特別な権限が必要

ということのようです。
(ルートの権限か、ロールを更新する権限が必要なようです。)

というわけで、今回は通常使用するユーザのロールに「ロールを更新」する権限のみ付与することにしました。
「ロールを更新」する権限を与えても「ロールを作成」する権限を与えなければ管理画面にロール管理メニューは出てこないので、不用意にロールを操作する心配はなさそうです。

これでトップレベルにもページ(リソース)を作成することができました。
今回の対応が正しいものかどうかはわかりませんが、とりあえず運用できるようにはなりました。

なぜトップレベルにリソースを作成するのに特別な権限が必要なのかは謎のままです…

最後までおつきあいいただき、ありがとうございます。

 CMSを使ったホームページ制作
 VPS, AWS等クラウドシステム構築
等々のご依頼承っております

コメント

タイトルとURLをコピーしました