操作
Backport(バックポート) #3549
未完了申請系のメッセージをPCで表示すると二重にHTMLエスケープされる
開始日:
2013-11-29
期日:
進捗率:
70%
予定工数:
説明
Overview (現象)¶
申請系のメッセージをPC版の message/show アクションで表示すると、変数部分のメッセージ内容、メンバーのニックネーム、コミュニティ名などが二重にHTMLエスケープされた状態で出力される。
携帯版では decorate なしで body がそのまま出力される実装になっているため影響はない。
対象
- コミュニティ管理者交代申請 decorateCommunityTakingOverBody
- コミュニティ副管理者交代申請 decorateCommunitySubAdminRequestBody
- コミュニティ参加申請 decorateCommunityJoiningRequestBody
- フレンド申請 decorateFriendLinkBody
Causes (原因)¶
申請系のメッセージ表示時に opMessageSender::decorateBySpecifiedTemplate() 経由で取得したメッセージ本文は sfView を利用しており変数が自動的に HTML エスケープされた状態となるが、この文字列は message/showSuccess のテンプレート表示でさらに HTML エスケープ処理されるため二重にエスケープされてしまう。
Way to fix (修正内容)¶
PluginSendMessageData::getDecoratedMessageBody() が返す文字列は message type が 'message' の場合の処理をみる限り HTML ではないことを想定していると考えられるため、opMessageSender::decorateBySpecifiedTemplate() で HTML エスケープされないよう修正するのがよいと思われる。
Rimpei Ogawa さんがほぼ11年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 c911a619d6b664654a0652dba394e860b76f0c54 で適用されました。
Maki Takahashi さんがほぼ11年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
BP元のチケットにてレビュー済みです
操作