プロジェクト

全般

プロフィール

Backport(バックポート) #2520

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

Kousuke Ebihara12年以上前に追加. 12年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-07-18
期日:
進捗率:

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 行目など。 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


関連するチケット

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

関係しているリビジョン

リビジョン 6af41ce0 (差分)
Yuya Watanabe12年以上前に追加

(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

リビジョン 2a3e2288 (差分)
Yuya Watanabe12年以上前に追加

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

BP from #1370
commit 1860a1aee382e499309fc283fbfeb3dbc49c134d

Conflicts:

apps/pc_backend/i18n/messages.ja.xml

リビジョン 2463cae6 (差分)
Yuya Watanabe12年以上前に追加

(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

リビジョン 024322f7 (差分)
Yuya Watanabe12年以上前に追加

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

履歴

#1 Kousuke Ebihara12年以上前に更新

  • ステータスPending Testing(テスト待ち) から New(新規) に変更
  • 担当者 を削除 (Maki Takahashi)
  • 対象バージョンOpenPNE 3.7.0 から OpenPNE 3.4.17 に変更

#2 Yuya Watanabe12年以上前に更新

  • ステータス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 (コミュニティカテゴリのソート順を変更できるようにする)」

#3 Yuya Watanabe12年以上前に更新

本チケットのバックポート元 #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 Yuya Watanabe12年以上前に更新

修正方針

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

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

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

#5 Yuya Watanabe12年以上前に更新

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

#6 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)

#7 Yuya Watanabe12年以上前に更新

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

#8 Yuya Watanabe12年以上前に更新

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

#9 Yuya Watanabe12年以上前に更新

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

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

#10 Yuya Watanabe12年以上前に更新

メモ

重複する記述を発見.

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 Yuya Watanabe12年以上前に更新

メモ

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

1134c7b089875752db34c1877b1cf958af24aa08

#12 Yuya Watanabe12年以上前に更新

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 Yuya Watanabe12年以上前に更新

メモ

下記部分で「削除」の文言がハードコーディングされている.該当部分は 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 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)

#15 wa ta12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率70 から 50 に変更

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

#16 wa ta12年以上前に更新

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

#17 wa ta12年以上前に更新

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

#18 Yuya Watanabe12年以上前に更新

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

aaf2b962e5958d5b1a15f3d8990a2e22c023dc20
1860a1aee382e499309fc283fbfeb3dbc49c134d
40959d71f79bd2ac57734b874e7b210670b8f9ee

#19 Minoru Takai12年以上前に更新

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 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)

#21 Yuya Watanabe12年以上前に更新

  • 説明 を更新 (diff)

#22 Yuma Sakata12年以上前に更新

  • ステータス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つ多いのが原因だと思われますので、修正お願いします。

#23 wa ta12年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#24 Yuma Sakata12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

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

#25 Yuya Watanabe12年以上前に更新

  • ステータスRejected(差し戻し) から Accepted(着手) に変更

#26 Yuya Watanabe12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更

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

#27 Kousuke Ebihara12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#28 Yuma Sakata12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

他の形式にエクスポート: Atom PDF