Project

General

Profile

Backport(バックポート) #2520

#1179 におけるコミュニティ名称設定に関する変更が不充分

Added by Kousuke Ebihara about 8 years ago. Updated about 8 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Assignee:
Target version:
Start date:
2010-07-18
Due date:
% Done:

100%


Description

  • 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 行目など。 34087dd63d89d21c3b7c3e403b3fec9d6ac7ed522ef66a7d210db99af56358ace4e767ece542cfcc の修正を参考のこと)

補足

本チケットでは実際には #1179 のバックポート先である #1180 の修正で不十分な部分があるという問題ではありますが,関連性を失わないためにタイトルはこのままにしておきます.

修正方針

  • バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
  • バックポート元の修正で不十分な部分は新しくチケットを作成する
    • ここで作成されたチケットはそれぞれでバックポートチケットを作成してそちらで対応を行う
  • バックポート元の対応について
    • ステータスが完了(対象が3.6)ならば別チケットで対応する
    • ステータスが完了以外(対象が3.7など)についてもステータス変更を行わず各チケットで対応を行う

参考: http://redmine.openpne.jp/issues/2520#note-9

考慮すべき項目

  1. #2528 #2532 #2533 #2536 #2547 の問題は本チケットでは扱わない.
  2. 重複する翻訳カタログが存在する #2559 BPチケットなし
  3. バックポート元には含まれない変更がある note-19より対応せず
  4. 日本語が記述されている部分がある #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 (コミュニティカテゴリのソート順を変更できるようにする)」

参考: http://redmine.openpne.jp/issues/2520#note-2


Related issues

Related to OpenPNE 3 - Bug(バグ) #1370: #1179 におけるコミュニティ名称設定に関する変更が不充分 Fixed(完了) 2010-07-18
Related to OpenPNE 3 - Backport(バックポート) #2312: #1179 におけるコミュニティ名称設定に関する変更が不充分 Fixed(完了) 2010-07-18
Related to OpenPNE 3 - Backport(バックポート) #1180: 管理画面の /community ページでコミュニティ名称設定が反映されていない箇所がある Fixed(完了) 2010-06-18 2010-07-12
Related to OpenPNE 3 - Backport(バックポート) #2546: 公開設定デフォルト値が %my_friend% と表示されている Fixed(完了) 2011-10-21

Associated revisions

Revision 6af41ce0 (diff)
Added by Yuya Watanabe about 8 years ago

(fixes #2520, BP from #1370) fixed community setting translations

BP from #1370
commit aaf2b962e5958d5b1a15f3d8990a2e22c023dc20

Conflicts:

apps/pc_backend/i18n/messages.ja.xml
apps/pc_backend/modules/community/actions/actions.class.php
apps/pc_backend/modules/community/templates/addAllMemberInput.php
apps/pc_backend/modules/community/templates/addDefaultCommunityInput.php
apps/pc_backend/modules/community/templates/defaultCommunityListSuccess.php
apps/pc_backend/modules/community/templates/removeDefaultCommunityInput.php

Revision 2a3e2288 (diff)
Added by Yuya Watanabe about 8 years ago

(fixes #2520, BP from #1370) fixed translations of community setting

BP from #1370
commit 1860a1aee382e499309fc283fbfeb3dbc49c134d

Conflicts:

apps/pc_backend/i18n/messages.ja.xml

Revision 2463cae6 (diff)
Added by Yuya Watanabe about 8 years ago

(fixes #2520, BP from #1370) fixed translations of community setting for opI18n

BP from #1370
commit 40959d71f79bd2ac57734b874e7b210670b8f9ee

Conflicts:

apps/pc_backend/i18n/messages.ja.xml
apps/pc_backend/modules/community/templates/addAllMemberInput.php
apps/pc_backend/modules/community/templates/addDefaultCommunityInput.php
apps/pc_backend/modules/community/templates/categoryListSuccess.php
apps/pc_backend/modules/community/templates/listSuccess.php
apps/pc_backend/modules/community/templates/removeDefaultCommunityInput.php

Revision 024322f7 (diff)
Added by Yuya Watanabe about 8 years ago

(fixes #2520, BP from #1370) removed end parenthesis

History

#1 Updated by Kousuke Ebihara about 8 years ago

  • Status changed from Pending Testing(テスト待ち) to New(新規)
  • Assignee deleted (Maki Takahashi)
  • Target version changed from OpenPNE 3.7.0 to OpenPNE 3.4.17

#2 Updated by Yuya Watanabe about 8 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to 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 (コミュニティカテゴリのソート順を変更できるようにする)」

#3 Updated by Yuya Watanabe about 8 years ago

本チケットのバックポート元 #1370 の修正内容に, #1370 よりも #1090 からのバックポートに含めるべき修正が一部含まれているように見受けられます.つまり,名称設定の修正以外にも多言語対応への修正が含まれ,多言語対応については本チケットの主題からは離れているものと思いました.

例: https://redmine.openpne.jp/projects/op3/repository/revisions/aaf2b962e5958d5b1a15f3d8990a2e22c023dc20/diff/apps/pc_backend/modules/community/templates/categoryListSuccess.php

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 など不十分な点が散見されるためどうすべきかについて検討が必要だと思いました.

#4 Updated by Yuya Watanabe about 8 years ago

修正方針

国際化対応及び名称変更については修正内容が重複する部分が多いため,本チケットでは「コミュニティに関する」i18nへの対応および名称設定について不十分な部分の修正を行うこととします.具体的には以下の対応を行います.

  • バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
  • バックポート元の修正で不十分な部分は本チケットで修正を行う
  • バックポート元の対応について
    • ステータスが完了(対象が3.6)ならば別チケットで対応する
    • ステータスが完了以外(対象が3.7など)ならば差し戻しを行う

この修正方針の場合は,コミュニティ以外の国際化対応について別チケットで対応する必要があります.提案としては #1090 のバックポートとして対応することが挙げられます.

#5 Updated by Yuya Watanabe about 8 years ago

#1843 のパックポートが行われていないため,本チケットのパックポート元と同様の修正を行うことができません. #1843 のバックポートも3.4.17のリリースに含めることが望ましいと思います.

#6 Updated by Yuya Watanabe about 8 years ago

  • Description updated (diff)

#7 Updated by Yuya Watanabe about 8 years ago

note-5の問題は #2546 で対応します.本チケットの修正内容は #2546 に依存するのでテストを行う場合はその点に注意してください.

#8 Updated by Yuya Watanabe about 8 years ago

#2528 #2532 #2533 #2536 #2547 の問題を本チケット対応中に発見したので #2532 以外のチケットについて本チケットで先行して取り込みを行います. #2532 についてはコミュニティに関する修正部分ではないため意図的に除外しています.

#9 Updated by Yuya Watanabe about 8 years ago

note-8について,方針を変更して各チケットのバックポートで対応することにしました.よってnote-4の方針を以下のように変更します.

  • バックポート元の修正のうち機能として対応されてないチケットは取り込みを行わない
  • バックポート元の修正で不十分な部分は新しくチケットを作成する
    • ここで作成されたチケットはそれぞれでバックポートチケットを作成してそちらで対応を行う
  • バックポート元の対応について
    • ステータスが完了(対象が3.6)ならば別チケットで対応する
    • ステータスが完了以外(対象が3.7など)についてもステータス変更を行わず各チケットで対応を行う

#10 Updated by Yuya Watanabe about 8 years ago

メモ

重複する記述を発見.

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>

#11 Updated by Yuya Watanabe about 8 years ago

メモ

3.4 にはコミットされているが 3.6,3.7 にはコミットされておらず,チケット番号が記載されいなかったもの

1134c7b089875752db34c1877b1cf958af24aa08

#12 Updated by Yuya Watanabe about 8 years ago

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>

#13 Updated by Yuya Watanabe about 8 years ago

メモ

下記部分で「削除」の文言がハードコーディングされている.該当部分は 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 )); ?>

#14 Updated by Yuya Watanabe about 8 years ago

  • Description updated (diff)

#15 Updated by wa ta about 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 70 to 50

更新履歴 6af41ce0337089d92573f1787950fc881292c362 で適用されました。

#16 Updated by wa ta about 8 years ago

更新履歴 2a3e22889084247fad85d66ac0344fdce0ec524f で適用されました。

#17 Updated by wa ta about 8 years ago

更新履歴 2463cae626bcc56f508cf3caae4b21995870971c で適用されました。

#18 Updated by Yuya Watanabe about 8 years ago

本チケットのバックポート対象コミットは以下のとおりです.

aaf2b962e5958d5b1a15f3d8990a2e22c023dc20
1860a1aee382e499309fc283fbfeb3dbc49c134d
40959d71f79bd2ac57734b874e7b210670b8f9ee

#19 Updated by Minoru Takai about 8 years ago

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 するべきではないと思います。

#20 Updated by Yuya Watanabe about 8 years ago

  • Description updated (diff)

#21 Updated by Yuya Watanabe about 8 years ago

  • Description updated (diff)

#22 Updated by Yuma Sakata about 8 years ago

  • Status changed from Pending Review(レビュー待ち) to 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つ多いのが原因だと思われますので、修正お願いします。

#23 Updated by wa ta about 8 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

更新履歴 024322f7d4e8731a860d88f1274d26db719987d1 で適用されました。

#24 Updated by Yuma Sakata about 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

管理画面初期コミュニティ設定ページ(/pc_backend.php/community/defaultCommunityList)にアクセスできることを確認しました。
しかし、初期コミュニティ追加確認ページ(/pc_backend.php/community/addDefaultCommunity/id/xx)、初期コミュニティ削除確認ページ(/pc_backend.php/community/removeDefaultCommunity/id/xx)にアクセスできないので、修正お願いします。

#25 Updated by Yuya Watanabe about 8 years ago

  • Status changed from Rejected(差し戻し) to Accepted(着手)

#26 Updated by Yuya Watanabe about 8 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)

note-24の指摘部分はnote-2に記載している『 #847 3.4対応なし 「Enhance manage the default community (初期コミュニティ管理の強化)」 』の部分であると思います.このチケットはバックポートがされておらず,現状の3.4.17対象までに関してを述べると正しい挙動であると言えます.そのため,このままステータスを再度レビュー待ちとします.

#27 Updated by Kousuke Ebihara about 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#28 Updated by Yuma Sakata about 8 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

Also available in: Atom PDF