プロジェクト

全般

プロフィール

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

戻る