メニューアクション、ユーザーアクションの表示条件などをプラグインで拡張しやすくする

Description

https://movabletype.atlassian.net/browse/FEEDBACK-2586 の修正用。現状の MT::App::CMS::build_actions では CODE の判定前に handler_to_coderef を通していないので config.yaml に直書きしたアクションの条件判定が正しく行われない(常に真になる)。condition、href が該当。

Checklists

None

Activity

Show:

Kenichi IshigakiNovember 28, 2024 at 5:47 AM

ありがとうございます。マージしました。

Chieko MatsuoNovember 28, 2024 at 4:26 AM

上記コメント確認手順で、期待通りの結果が得られることを確認しました。

Kenichi IshigakiNovember 28, 2024 at 3:15 AM

ありがとうございます。

https://github.com/movabletype/movabletype/pull/3463 で対応しました。以下のようなプラグインを plugins/ActionsTest/config.yaml として保存したときに、システム管理者としてサイトダッシュボードなどにアクセスすると左サイドメニューの「検索」ボタンの下に「Menu action for System Administrator only」というボタンが表示され、そのリンク先(ボタンにフォーカスをあわせたときに表示されるURLを見るとか、ソースコードを検索するとかしてください)に「Menu action href for (ID)」のような文言がふくまれていること、左下のユーザメニューの下には「User action for System Administrator only」というメニューが追加され、リンク先に「User action href for (ID)」のような文言がふくまれていること、一般ユーザでアクセスするとそれらが消えていることをご確認おねがいします。

id: ActionsTest name: ActionsTest version: 0 applications: cms: menu_actions: menu_test: icon: ic_user condition: | sub { my $app = shift; $app->user->is_superuser; } mode: cfg_system_general label: 'Menu action for System Administrator only' href: | sub { my ($app, $param) = @_; 'Menu action href for ' . $param->{author_id}; } order: 999 user_actions: user_test: condition: | sub { my $app = shift; $app->user->is_superuser; } mode: cfg_system_general label: 'User action for System Administrator only' href: | sub { my ($app, $param) = @_; 'User action href for ' . $param->{author_id}; } order: 999

Keita SugamaNovember 28, 2024 at 2:29 AM

確認しました。良さそうです。

Kenichi IshigakiNovember 27, 2024 at 1:23 AM

ありがとうございます。

https://github.com/movabletype/movabletype/pull/3463 で対応しました。レビューおねがいします。

Implemented

Details

Assignee

Reporter

Fix versions

Priority

Smart Checklist

Created September 25, 2024 at 7:03 AM
Updated November 28, 2024 at 5:47 AM
Resolved November 28, 2024 at 5:47 AM