Bug(バグ) #2376
Maki Takahashi さんが約13年前に更新
h3. Overview (現象) イベント参加画面にて、イベントに参加時等にエラーになった場合(例:定員エラー) メール通知テンプレート設定で、任意のメール通知テンプレートを編集時にエラーになった場合(例:CSRFエラー) 「このイベントは定員に達しています」等のアラートが表示されるが、 「_csrf_token [Required.]」などのアラートが表示されるが、 その後、他の画面に遷移した場合アラートが消えずに残ってしまう。 (さらに他の画面に遷移した場合にアラートが消える) h3. 再現バージョン * OpenPNE3.7 masterブランチ * stable-0.9.xブランチ OpenPNE3.6beta13-dev * OpenPNE3.4.15-dev h3. 再現手順 1.定員が一人のコミュニティイベントを作成する 1.管理画面の「メール設定」>「メール通知テンプレート設定」(/mail/edit)にアクセスする 2. 1のイベントにアクセスする(「このイベントに参加する」ボタンが表示されている) 2.任意のテンプレートを選択し、 3. 2の画面を開いている状態で、別のユーザで1 のイベントに参加する(定員になる) Firebugを利用してフォームのhidden属性の項目であるnotification_mail_translation[_csrf_token]のvalueを削除した状態で「確定」ボタンを押す 3.「_csrf_token [Required.]」表示されることを確認する 4. 2の画面にに戻りイベントに参加する 3の状態で、任意のリンクをクリックする(例:「管理画面トップ」) 5.「このイベントは定員に達しています」表示されることを確認する 6. 5の状態で、任意のリンクをクリックする(例:「イベントリスト」) 7.「このイベントは定員に達しています」の表示がされたままになる 4.「_csrf_token [Required.]」の表示がされたままになる h3. Causes (原因) #2353 と同様に、plugins/opCommunityTopicPlugin/lib/action/opCommunityTopicPluginEventCommentActions.class.phpのexecuteCreate()内で と同様に、apps/pc_backend/modules/mail/actions/actions.class.phpのexecuteTemplate()内で $this->getUser()->setFlash()を利用してセットしているが 上記メソッドは次のアクションまでセットされたメッセージを保持するため 別のページに行った場合でも メッセージが表示され続けてしまっている h3. Way to fix (修正内容) $this->getUser()->setFlash()の第3引数($persist)をfalseにする