プロジェクト

全般

プロフィール

Bug(バグ) #375

コミュニティに全く参加していない場合に最新情報の取得で全コミュニティを対象としてしまう

Masato Nagasawa14年以上前に追加. ほぼ14年前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2009-12-21
期日:
進捗率:

100%

3.6 で発生するか:
Unknown (未調査)
[QA]バグ通知済:
いいえ
3.8 で発生するか:
Unknown (未調査)
opCommunityTopicPlugin 絞込条件:

説明

コミュニティに全く参加していない場合に
トピック/イベントの最新情報の取得で全コミュニティを対象にしてしまうため、
ホーム画面の表示に時間がかかっています。

Doctrine::getTable('Community')->getIdsByMemberId($memberId);

このメソッドはメンバーが参加しているコミュニティを返しますが、
参加数が0であった場合にarray()を返すようになっています。

->whereIn('community_id', $communityIds)

その配列で whereIn を行っているので、
配列の要素数が0であった場合に全コミュニティを対象としてしまっています。

Community::getIdsByMemberId メソッドを使用している個所は以下の通りです。

lib/model/doctrine/PluginCommunityEventTable.class.php
52:    $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);
67:    $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);

lib/model/doctrine/PluginCommunityTopicTable.class.php
52:    $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);
101:    $communityIds = Doctrine::getTable('Community')->getIdsByMemberId($memberId);
対象個所:
  • コミュニティ最新書き込み
  • コミュニティ最新イベント

対処としては、配列の要素数が0であった場合に配列に0を挿入する事で回避できると思います。

関係しているリビジョン

リビジョン 13492 (差分)
Kousuke Ebiharaほぼ14年前に追加

fixed some methods that uses CommunityTable::getIdsByMemberId() for adding dummy condition for empty IN clause (fixes #375)

履歴

#1 Kousuke Ebiharaほぼ14年前に更新

  • 対象バージョン0.9.7 にセット

#2 Kousuke Ebiharaほぼ14年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Kousuke Ebihara にセット

#3 Kousuke Ebiharaほぼ14年前に更新

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

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

#4 Kousuke Ebiharaほぼ14年前に更新

  • ステータスPending Review(レビュー待ち) から Fixed(完了) に変更
  • 進捗率50 から 100 に変更

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