プロジェクト

全般

プロフィール

Bug(バグ) #125

完了

参加コミュニティが0件の場合、マイホームのコミュニティ最新書き込み公開範囲にかかわらず全てのトピックが表示される

kazuki nakasone さんが約15年前に追加. 約15年前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
-
対象バージョン:
-
開始日:
2009-10-26
期日:
進捗率:

0%

予定工数:
3.6 で発生するか:
3.8 で発生するか:

説明

以前のチケットはhttp://trac.openpne.jp/ticket/4307 です。

=== ■現象 ===
マイホーム(pc_frontend.php/member/home)にて、メンバーの参加コミュニティが0件の場合、「最新コミュニティ書き込み」「最新イベント書き込み」に参加していないコミュニティのトピック・イベントが公開設定に問わず表示される。そのため、トピック非公開のトピックもタイトルが表示されてしまう。

発生リビジョン::
trunk r12562

=== ■原因 ===
lib/model/doctrine/PluginCommunityTopicTable.class.php
{{{
50  public function retrivesByMemberId($memberId, $limit = 5)
51  {
52    $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);
53    return $this->createQuery()
54      ->whereIn('community_id', $communityIds)
55      ->limit($limit)
56      ->orderBy('updated_at DESC')
57      ->execute();
58  }
}}}
52行目の$communityIdsには参加しているコミュニティのIDが入る。

もし1つも参加していなければ空のarray()。

このとき、53行目〜のDoctrine_QueryはwhereInの第2引数が空だと無視されるようで、以下のようなクエリを発行する。
{{{
SELECT * FROM community_topic LIMIT 5 ORDER BY updated_at DESC
}}}
WHERE句がないため、対象がすべてのコミュニティになってしまう。

=== ■修正内容 ===
もし$communityIdsが空だった場合は空配列を返す。

=== ■関連情報 ===

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