Backport(バックポート) #2520
完了#1179 におけるコミュニティ名称設定に関する変更が不充分
100%
説明
- SnsTerm::titleize() によってタイトルとして適切な形に変換していない箇所がある (http://github.com/openpne/OpenPNE3-doc/blob/master/cookbook/3.6/ja/use-sns-term-from-plugin.rst 参照)
- コミュニティ名称設定変更を適用していない箇所が残っている(apps/pc_backend/i18n/messages.ja.xml の 64 行目、 68 行目、 76 行目、 118 行目など。 34087dd63d89d21c3b7c3e403b3fec9d6ac7ed52 や 2ef66a7d210db99af56358ace4e767ece542cfcc の修正を参考のこと)
補足¶
本チケットでは実際には #1179 のバックポート先である #1180 の修正で不十分な部分があるという問題ではありますが,関連性を失わないためにタイトルはこのままにしておきます.
修正方針¶
- バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
- バックポート元の修正で不十分な部分は新しくチケットを作成する
- ここで作成されたチケットはそれぞれでバックポートチケットを作成してそちらで対応を行う
- バックポート元の対応について
- ステータスが完了(対象が3.6)ならば別チケットで対応する
- ステータスが完了以外(対象が3.7など)についてもステータス変更を行わず各チケットで対応を行う
参考: http://redmine.openpne.jp/issues/2520#note-9
考慮すべき項目¶
- #2528 #2532 #2533 #2536 #2547 の問題は本チケットでは扱わない.
- 重複する翻訳カタログが存在する #2559 BPチケットなし
- バックポート元には含まれない変更がある note-19より対応せず
- 日本語が記述されている部分がある #2558
バックポート元でのコミットで本チケット修正時に影響がありそうなチケット一覧¶
#575 3.4対応なし 「管理画面からすべてのメンバーを指定したコミュニティに参加させる機能を追加」
#847 3.4対応なし 「Enhance manage the default community (初期コミュニティ管理の強化)」
#1090 3.4対応なし 「管理画面のメンバー管理ページを多国語対応する」
#1064 3.4対応あり 「名称設定が反映されるように記述になっているにも関わらず名称設定が反映されず、%community%と表示される箇所がある」
#1175 3.4対応なし 「[backend] Change the checkboxes for the change in Skin-Plugin into the radiobuttons. (スキンプラグイン選択チェックボックスをラジオボタンに変える)」
#1204 3.4対応あり 「プリセットプロフィールを追加しようとするとInternal Server Errorが発生する」
#1843 3.4対応なし 「公開設定デフォルト値が my_friend と表示されている」
#666 3.4対応なし 「Add ability to publish member profile page to out of the SNS (プロフィールページを SNS 外に公開できるようにする)」
#1591 3.4対応なし 「support to the sorting order change of the community categories (コミュニティカテゴリのソート順を変更できるようにする)」
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から New(新規) に変更
- 担当者 を削除 (
Maki Takahashi) - 対象バージョン を OpenPNE 3.7.0 から OpenPNE 3.4.17 に変更
Yuya Watanabe さんが約13年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Yuya Watanabe にセット
バックポート元でのコミットで本チケット修正時に影響がありそうなチケット一覧¶
#575 3.4対応なし 「管理画面からすべてのメンバーを指定したコミュニティに参加させる機能を追加」
#847 3.4対応なし 「Enhance manage the default community (初期コミュニティ管理の強化)」
#1090 3.4対応なし 「管理画面のメンバー管理ページを多国語対応する」
#1064 3.4対応あり 「名称設定が反映されるように記述になっているにも関わらず名称設定が反映されず、%community%と表示される箇所がある」
#1175 3.4対応なし 「[backend] Change the checkboxes for the change in Skin-Plugin into the radiobuttons. (スキンプラグイン選択チェックボックスをラジオボタンに変える)」
#1204 3.4対応あり 「プリセットプロフィールを追加しようとするとInternal Server Errorが発生する」
#1843 3.4対応なし 「公開設定デフォルト値が my_friend と表示されている」
#666 3.4対応なし 「Add ability to publish member profile page to out of the SNS (プロフィールページを SNS 外に公開できるようにする)」
#1591 3.4対応なし 「support to the sorting order change of the community categories (コミュニティカテゴリのソート順を変更できるようにする)」
Yuya Watanabe さんが約13年前に更新
本チケットのバックポート元 #1370 の修正内容に, #1370 よりも #1090 からのバックポートに含めるべき修正が一部含まれているように見受けられます.つまり,名称設定の修正以外にも多言語対応への修正が含まれ,多言語対応については本チケットの主題からは離れているものと思いました.
diff --git a/apps/pc_backend/modules/community/templates/categoryListSuccess.php b/apps/pc_backend/modules/community/templates/categoryListSuccess.php index 62f95dc..dd80cba 100644 --- a/apps/pc_backend/modules/community/templates/categoryListSuccess.php +++ b/apps/pc_backend/modules/community/templates/categoryListSuccess.php @@ -2,11 +2,11 @@ <?php include_partial('submenu') ?> <?php end_slot() ?> -<?php slot('title', __('コミュニティカテゴリ設定')); ?> +<?php slot('title', __('%community% Category Configuration', array('%community%' => $op_term['community']->titleize()))); ?> -<p><?php echo __('「メンバー作成コミュニティの許可」からチェックを外すと、 ID が 1 のメンバーしか、そのカテゴリ上でコミュニティの作成をおこなえなくなります。') ?></p> +<p><?php echo __('If you uncheck "Is allow Member %community%", only the member who has id 1 can make %community% of the category.', array('%community%' => $op_term['community']->titleize())) ?></p> -<h3>大カテゴリ</h3> +<h3><?php echo __('Big Category') ?></h3> <?php include_partial('categoryListForm', array( 'form' => $rootForm, 'forceAllowUserCommunity' => true, @@ -14,7 +14,7 @@ 'deleteForm' => $deleteForm, )) ?> -<h3>小カテゴリ</h3> +<h3><?php echo __('Small Category') ?></h3> <?php foreach ($categories as $category): ?> <h4><?php echo $category ?></h4> <?php include_partial('categoryListForm', array( diff --git a/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php b/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php
多言語対応を含めるという方針にするにしても, コミュニティ部分に限定した場合でも #2533 や #2536 など不十分な点が散見されるためどうすべきかについて検討が必要だと思いました.
Yuya Watanabe さんが約13年前に更新
修正方針¶
国際化対応及び名称変更については修正内容が重複する部分が多いため,本チケットでは「コミュニティに関する」i18nへの対応および名称設定について不十分な部分の修正を行うこととします.具体的には以下の対応を行います.
- バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
- バックポート元の修正で不十分な部分は本チケットで修正を行う
- バックポート元の対応について
- ステータスが完了(対象が3.6)ならば別チケットで対応する
- ステータスが完了以外(対象が3.7など)ならば差し戻しを行う
この修正方針の場合は,コミュニティ以外の国際化対応について別チケットで対応する必要があります.提案としては #1090 のバックポートとして対応することが挙げられます.
Yuya Watanabe さんが約13年前に更新
note-8について,方針を変更して各チケットのバックポートで対応することにしました.よってnote-4の方針を以下のように変更します.
- バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
- バックポート元の修正で不十分な部分は新しくチケットを作成する
- ここで作成されたチケットはそれぞれでバックポートチケットを作成してそちらで対応を行う
- バックポート元の対応について
- ステータスが完了(対象が3.6)ならば別チケットで対応する
- ステータスが完了以外(対象が3.7など)についてもステータス変更を行わず各チケットで対応を行う
Yuya Watanabe さんが約13年前に更新
メモ¶
重複する記述を発見.
diff --git a/apps/pc_backend/i18n/messages.ja.xml b/apps/pc_backend/i18n/messages.ja.xml index f5ac2bb..025de27 100644 --- a/apps/pc_backend/i18n/messages.ja.xml +++ b/apps/pc_backend/i18n/messages.ja.xml @@ -926,10 +970,6 @@ <target>プロフィール項目登録</target> </trans-unit> <trans-unit id=""> - <source>Operation</source> - <target>操作</target> - </trans-unit> - <trans-unit id=""> <source>Entry name</source> <target>項目名</target> </trans-unit> @@ -1130,10 +1170,6 @@ <target>※この項目に対するメンバーの入力値も失われます。</target> </trans-unit> <trans-unit id=""> - <source>Delete</source> - <target>削除する</target> - </trans-unit> - <trans-unit id=""> <source>Option name (%language%)</source> <target>項目名 (%language%)</target> </trans-unit>
Yuya Watanabe さんが約13年前に更新
Yuya Watanabe さんが約13年前に更新
note-11のコミットは他のブランチではrevertされている状態であると思われる.意図が明確ではないが3.4でもrevertするべきかを検討する必要があると思われる.
IDは違うが,内容的に同じものをrevertしている.
3.7 revertコミット 55e1e2be400e0a3c985758bbeb9edbfeb0227a7e
revert対象コミット eb6279096a9a11e8ae4917030a2453eedb11aa84
commit 55e1e2be400e0a3c985758bbeb9edbfeb0227a7e Author: Masato Nagasawa <nagasawa@tejimaya.com> Date: Wed Aug 11 04:34:43 2010 +0900 Revert "fixed CSRF at delete of default community action in the backend." This reverts commit eb6279096a9a11e8ae4917030a2453eedb11aa84. diff --git a/apps/pc_backend/modules/community/actions/actions.class.php b/apps/pc_backend/modules/community/actions/actions.class.php index d01eb33..a01926c 100644 --- a/apps/pc_backend/modules/community/actions/actions.class.php +++ b/apps/pc_backend/modules/community/actions/actions.class.php @@ -117,7 +117,6 @@ class communityActions extends sfActions */ public function executeRemoveDefaultCommunity(sfWebRequest $request) { - $request->checkCSRFProtection(); $this->forward404Unless($request->hasParameter('id')); $this->community = Doctrine::getTable('Community')->find($request->getParameter('id')); $this->forward404Unless($this->community); diff --git a/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php b/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php index b375ec9..2a67979 100644 --- a/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php +++ b/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php @@ -22,16 +22,12 @@ <th>管理者名</th> <th>操作</th> </tr> -<?php -$form = new BaseForm(); -$csrfToken = '&'.$form->getCSRFFieldName().'='.$form->getCSRFToken(); -?> <?php foreach ($communities as $community): ?> <tr> <td><?php echo $community->getId() ?></td> <td><?php echo $community->getName() ?></td> <td><?php echo $community->getAdminMember()->getName() ?></td> -<td><?php echo link_to('削除', 'community/removeDefaultCommunity?id='.$community->getId().$csrfToken) ?></td> +<td><?php echo link_to('削除', 'community/removeDefaultCommunity?id='.$community->getId()) ?></td> </tr> <?php endforeach; ?> </table>
Yuya Watanabe さんが約13年前に更新
メモ¶
下記部分で「削除」の文言がハードコーディングされている.該当部分は 3.4 のみで確認し,3.7 および 3.6 では記述されていない.
apps/pc_backend/modules/community/templates/listSuccess.php
25 <?php include_partial('community/communityInfo', array( 26 'community' => $community, 27 'moreInfo' => array( 28 button_to(__('削除'), 'community/delete?id='.$community->getId()) 29 ) 30 )); ?>
wa ta さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
更新履歴 6af41ce0337089d92573f1787950fc881292c362 で適用されました。
Yuya Watanabe さんが約13年前に更新
Minoru Takai さんが約13年前に更新
note-11, note-12 について調査しました。
コミットされているという「fixed CSRF at delete of default community action in the backend.」の修正の意図は、 executeRemoveDefaultCommunity() メソッドにおいて CSRF 脆弱性があったのでそれを対策するというものですが、もともとこれは 3.4.x 向けの修正のように読み取れます(後述)。
これは仮説ですが、 3.4.x で対応したので 3.6.x, master にも対応したが、 3.6.x と master では実はこの修正は不要だった( #847 で executeRemoveDefaultCommunity() を大幅に書き換えている)ので revert した、という経緯があった可能性が考えられます。
- 3.4.x: CSRF脆弱 → note-11 のコミット(対策)
- 3.6.x, master: CSRF脆弱 → #847 の修正(対策済み) → note-12 のコミット → note-12 のコミット打ち消し
各ブランチの executeRemoveDefaultCommunity() メソッドの実装を確認しましたが、 3.4.x では note-11 の修正を無くしてしまうと CSRF に脆弱となってしまうように見えるので、これは revert するべきではないと思います。
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
管理画面初期コミュニティ設定ページ(/pc_backend.php/community/defaultCommunityList)にアクセスできなくなり、devモードで確認したところ、以下エラーが表示されました。
Parse error: syntax error, unexpected ')', expecting ',' or ';' in /home/sakata/sns/34x.hoge.jp/apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php on line 35
該当ファイルの35行目を確認したところ、以下エラーが表示されました。
<td><?php echo link_to(__('Delete'), 'community/removeDefaultCommunity?id='.$community->getId().$csrfToken)) ?></td>
) が1つ多いのが原因だと思われますので、修正お願いします。
wa ta さんが約13年前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 024322f7d4e8731a860d88f1274d26db719987d1 で適用されました。
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
管理画面初期コミュニティ設定ページ(/pc_backend.php/community/defaultCommunityList)にアクセスできることを確認しました。
しかし、初期コミュニティ追加確認ページ(/pc_backend.php/community/addDefaultCommunity/id/xx)、初期コミュニティ削除確認ページ(/pc_backend.php/community/removeDefaultCommunity/id/xx)にアクセスできないので、修正お願いします。
Yuya Watanabe さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
note-24の指摘部分はnote-2に記載している『 #847 3.4対応なし 「Enhance manage the default community (初期コミュニティ管理の強化)」 』の部分であると思います.このチケットはバックポートがされておらず,現状の3.4.17対象までに関してを述べると正しい挙動であると言えます.そのため,このままステータスを再度レビュー待ちとします.
Kousuke Ebihara さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Yuma Sakata さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。