操作
Backport(バックポート) #2374
完了メール通知テンプレート設定にてエラーのアラートが表示され続ける
開始日:
2011-08-16
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
メール通知テンプレート設定で、任意のメール通知テンプレートを編集時にエラーになった場合(例:CSRFエラー)
「_csrf_token [Required.]」などのアラートが表示されるが、
その後、他の画面に遷移した場合アラートが消えずに残ってしまう。
(さらに他の画面に遷移した場合にアラートが消える)
再現バージョン¶
- OpenPNE3.7 masterブランチ
- OpenPNE3.6beta13-dev
- OpenPNE3.4.15-dev
再現手順¶
1.管理画面の「メール設定」>「メール通知テンプレート設定」(/mail/edit)にアクセスする
2.任意のテンプレートを選択し、
Firebugを利用してフォームのhidden属性の項目であるnotification_mail_translation[_csrf_token]のvalueを削除した状態で「確定」ボタンを押す
3.「_csrf_token [Required.]」表示されることを確認する
4. 3の状態で、任意のリンクをクリックする(例:「管理画面トップ」)
4.「_csrf_token [Required.]」の表示がされたままになる
Causes (原因)¶
#2353 と同様に、apps/pc_backend/modules/mail/actions/actions.class.phpのexecuteTemplate()内で
$this->getUser()->setFlash()を利用してセットしているが
上記メソッドは次のアクションまでセットされたメッセージを保持するため
別のページに行った場合でも
メッセージが表示され続けてしまっている
Way to fix (修正内容)¶
$this->getUser()->setFlash()の第3引数($persist)をfalseにする
操作