TreeOrder v1.3.0 リリース

公開日:

「編集者」ロールで並び替えができるようになりました

これまで TreeOrder の並び替え機能(TreeOrder 管理画面と一覧画面の「TreeOrder 表示」リンク)は、「サイトの管理」権限を持つユーザー(サイト管理者)のみ利用できました。v1.3.0 では、対象オブジェクトごとの編集系権限があれば利用できるように緩和しました。管理者以外のユーザーに並び順の設定を許可したいというお客様からのお問い合わせに対応した変更です。

Movable Type 標準の「編集者」ロールを割り当てたユーザーは、記事・ウェブページ・コンテンツデータのすべてで並び替えを利用できます。

必要な権限

対象 必要な権限(いずれか)
記事 すべての記事の編集 / サイトの管理
ウェブページ ウェブページの管理 / サイトの管理
コンテンツデータ すべてのコンテンツデータの管理 / 対象コンテンツタイプの「コンテンツデータの管理」または「すべてのコンテンツデータの編集」 / サイトの管理

変更内容

  • TreeOrder 管理画面と AJAX エンドポイント(表示・読み込み・並び順の保存・ツリー順の初期化)の権限チェックを、「サイトの管理」(administer_site)から上記の権限に変更しました。
  • 一覧画面の「TreeOrder 表示」リンクも上記の権限に応じて表示されます。権限のないユーザーにはリンク自体が表示されません。
  • コンテンツデータはコンテンツタイプ単位で権限を判定します。特定のコンテンツタイプの権限のみを持つユーザーは、そのコンテンツタイプの並び替えだけを利用できます。

影響範囲

  • 「サイトの管理」権限を持つユーザー(サイト管理者・システム管理者)は従来どおりすべての機能を利用できます。設定変更や移行作業は不要です。
  • 「投稿者」ロールなど、自分が作成したオブジェクトのみ編集できる権限では引き続き利用できません。並び替えは対象オブジェクト全体の並び順に影響するため、「すべての〜の編集」相当の権限を基準としています。
  • ツリー順の初期化(既存ツリー順のリセット)も並び替えと同じ権限で利用できます。初期化の利用を制限したい運用の場合は、ロールの割り当てにご注意ください。

動作確認

開発環境(Movable Type 9.1.0)で、標準の「編集者」ロールを割り当てたユーザーと、投稿者相当(記事の作成・公開のみ)のロールを割り当てたユーザーの2名を作成し、以下を確認しています。

  • 編集者ユーザー: 記事・ウェブページの TreeOrder 画面表示、項目の読み込み、並び順の保存がすべて成功。記事一覧に「TreeOrder 表示」リンクが表示される。
  • 投稿者相当ユーザー: TreeOrder 画面へのアクセスはダッシュボードへリダイレクト(権限エラー)。正規セッションの magic_token を用いた AJAX の読み込み・保存はいずれも 403「権限がありません。」で拒否。一覧に「TreeOrder 表示」リンクは表示されない。

あわせて、Movable Type 8.8.3 / 9.2.0 のソースコードと突き合わせ、権限名(edit_all_posts / manage_pages / edit_all_content_data / edit_all_content_data_<unique_id>)、「サイトの管理」権限の継承(inherit_from)、および標準「編集者」ロールが上記の権限をすべて含むこと(lib/MT/Role.pm の初期ロール定義)を確認しています。