プロジェクト

全般

プロフィール

Bug(バグ) #2376

Maki Takahashi12年以上前に更新

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にする

戻る