ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 11 years ago

#1163 closed defect (fixed)

メンバーリストが正しく機能しなくなるプロフィール識別子がある

Reported by: hondaboo Owned by: ShogoKawahara
Priority: minor Milestone: OpenPNE2.12.8
Component: その他 Version: 2.12.x & 2.14.x
Keywords: OpenPNE2.13.6 Cc:

Description (last modified by ShogoKawahara)

■現象

識別子が「a」のプロフィール項目を作成すると、メンバーリストのソートや絞り込みが使えなくなり、管理画面トップに遷移してしまう。

■原因

プロフィール識別子をそのままリクエストパラメータして利用しているため、「a」はアクションとして解釈されてしまう。つまり同じような理由で以下の識別子のプロフィール項目を利用したとき、ソートや絞り込みで正常な挙動をしない。

  • a
  • m
  • page
  • is_pc_address
  • is_ktai_address
  • c_member_id
  • nickname
  • access_date
  • r_date
  • c_member_id_invite
  • image_filename
  • birth

■修正内容

プロフィールの絞り込みをリクエストするときはprofileという配列を使ってリクエストするようにして、直接、識別子を使うことがないようにした。

また、ソートをするときプロフィール項目のソートの場合、最後に -p というサフィックスを付けることにより、ソートするのはプロフィールかどうか判別できるようにした。

■関連情報

報告元

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=12628

Change History (28)

comment:1 Changed 12 years ago by kiwa

Priority: minorcritical

comment:2 Changed 12 years ago by kiwa

Keywords: 再現済み added; 再現待ち removed
Summary: 識別子が「a」のプロフィール項目を作成するとメンバーリストが機能しなくなるメンバーリストが正しく機能しなくなるプロフィール識別子がある

再現バージョン

  • 2.6.10, 2.8.4, 2,10beta1

【再現手順】
識別子がaの場合

  1. 識別子がaのプロフィール項目を作成する
  2. メンバーリスト(page_list_c_member)を表示
  3. 以下のいずれかを実行
    • プロフィール項目の並べ替え
    • 表示件数変更
    • ページャ移動
    • 「絞り込んだメンバーにメッセージ/Eメール送信」を選択
    • プロフィール項目の絞込み
  4. 管理画面トップに遷移してしまう

識別子がmの場合

  1. 識別子がaのプロフィール項目を作成する
  2. メンバーリスト(page_list_c_member)を表示
  3. 以下のいずれかを実行
    • プロフィール項目の並べ替え
    • 表示件数変更
    • ページャ移動
    • 「絞り込んだメンバーにメッセージ/Eメール送信」を選択
    • プロフィール項目の絞込み
  4. メンテナンス画面に遷移
    • 「アクションファイルが見つかりません」と表示される

また、識別子が「page」のプロフィール項目を作成した場合、ページャが正しく動作しなくなりました(「前へ」が使用できない、2ページ目から動かない、など)

comment:3 Changed 12 years ago by ogawa

Priority: criticalminor

comment:4 Changed 11 years ago by kiwa

Keywords: OpenPNE2.8.10 OpenPNE2.11.5 added; 再現済み removed
Milestone: OpenPNE2.10.5
Version: 2.6.x & 2.8.x & 2.10.x2.8.x & 2.10.x & 2.11.x

comment:5 Changed 11 years ago by ebihara

Keywords: OpenPNE2.8.10 OpenPNE2.11.5 removed
Milestone: OpenPNE2.10.5

どのプロフィール識別子を登録できないようにするかについて検討をする必要があります。

今回のリリース項目からは外します。

comment:6 Changed 11 years ago by ogawa

Version: 2.8.x & 2.10.x & 2.11.x2.10.x & 2.12.x & 2.13.x

comment:7 Changed 11 years ago by ebihara

Version: 2.10.x & 2.12.x & 2.13.x2.10.x & 2.12.x

comment:8 Changed 11 years ago by ebihara

Version: 2.10.x & 2.12.x2.12.x & 2.13.x

comment:9 Changed 11 years ago by ebihara

Keywords: OpenPNE2.13.6 added
Milestone: OpenPNE2.12.8

profile[] という配列のキーに識別子が入るようにして修正しましょう。

comment:10 Changed 11 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

comment:11 Changed 11 years ago by ebihara

Keywords: 確認中 added

r10614, r10615 で修正しました。 comment:9 には「profile」という配列に値が入るように修正する旨を書きましたが、絞り込み条件に使われるのはプロフィール項目だけではないので、元々利用していた cond というリクエストパラメータに、文字列ではなく配列が入るようにして修正しました。

comment:12 Changed 11 years ago by ShogoKawahara

Keywords: テスト待ち added; 確認中 removed

comment:13 Changed 11 years ago by ShogoKawahara

Keywords: 差し戻し added; テスト待ち removed

通常のプロフィールだけでなく、is_ktai_addressといった、プロフィール項目でない絞り込み条件でも同じ配列を利用しているため、「is_ktai_address」というプロフィール項目を作成して絞り込むとうまく動作しないようです。

差し戻します。

comment:14 Changed 11 years ago by ShogoKawahara

Owner: changed from ebihara to ShogoKawahara
Status: assignednew

引き受けます。

comment:15 Changed 11 years ago by ShogoKawahara

Status: newassigned

comment:16 Changed 11 years ago by ShogoKawahara

Keywords: 確認中 added; 差し戻し removed

r10781, r10782

で修正しました。

プロフィール項目に関しては、profileという配列に分けることにより

  • access_date
  • is_pc_address
  • is_ktai_address

といった、プロフィール識別子であっても絞り込みが可能になりました。

また、プロフィール識別子が

  • c_member_id
  • nickname
  • access_date
  • r_date
  • c_member_id_invite
  • image_filename
  • birth

であっても、正常にソートができていない状態であったのを修正しました。
手法としてはプロフィール項目の場合は リクエストパラメータ order の最後に -p というサフィックスを付けるようにしています。

ご確認ください。

comment:17 Changed 11 years ago by ShogoKawahara

Description: modified (diff)

comment:18 Changed 11 years ago by ShogoKawahara

Description: modified (diff)

comment:19 Changed 11 years ago by ShogoKawahara

Description: modified (diff)

comment:20 Changed 11 years ago by ShogoKawahara

Description: modified (diff)

comment:21 Changed 11 years ago by kiwa

Keywords: 差し戻し added; 確認中 removed

「絞り込んだメンバーにメッセージ/Eメールを送る」がプロフィール項目の絞り込みに対応していません。

comment:22 Changed 11 years ago by ShogoKawahara

Keywords: 確認中 added; 差し戻し removed

r10793(2.12), r10794(trunk)

にて、「絞り込んだメンバーにメッセージ/Eメールを送る」でプロフィール項目の絞り込みに対応するように修正しました。

ご確認ください。

comment:23 Changed 11 years ago by kiwa

動作に影響はなさそうなのですが質問させてください。メンバーリスト(admin_page_list_c_member)にて

  1. プロフィール「hoge」を選択項目「moge」絞り込み
  2. プロフィール「hoge」で絞り込まれている状態で「moge」を「▼選択」に戻し、絞り込みを解除する

という動作を行うと、URLに

&profile[hoge]=moge&profile[hoge]=

と、プロフィール「hoge」の絞り込みが2つ入りますが、これは問題ないでしょうか?2つ以上にはなりません。

comment:24 Changed 11 years ago by ebihara

現時点の修正は問題ないと思います。

comment:23 について修正するようでしたら、その修正分だけチェックします。とりあえず確認中のままにしておきます。

comment:25 in reply to:  23 Changed 11 years ago by kiwa

Replying to kiwa: 2.12.7で既に発生しているので、別チケット作成しました。

  • #3650 メンバーリストにて、URLに同じ絞り込み項目が2つ入る

comment:26 Changed 11 years ago by ShogoKawahara

comment:23について

同じパラメタがあったとき後のほうのパラメタが優先されるので挙動的には問題ありませんが、コンボボックスによってリクエストするときに、現在の絞り込み設定値に、あたらしいパラメータを追加してリクエストするために起きているようです。

これを修正するには、パラメータを追加する際に、現在の設定値に同じ項目があったら削除するような処理が必要になりそうです。

あまり重要度も高くない問題であり、小さな修正できかない気がしますので、この修正を見送りたいです。

comment:27 Changed 11 years ago by kiwa

Keywords: テスト待ち added; 確認中 removed

追加の修正が入らないということなので、テスト待ちにします。

comment:28 Changed 11 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

テスト中に絞り込み・並び替え関係で不具合を発見しましたが、2.12.7の時点で既に発生していたものなので、別チケットにしました。

  • #3646: メンバーリストにて、プロフィール項目で並び替えを行うとプロフィール項目が空欄のメンバーが表示されない
  • #3647: メンバーリストにて、フォームタイプが「複数選択(チェックボックス)」のプロフィール項目で並べ替えを行うと同じメンバーが複数表示される

今回の修正については問題なかったので、このチケットは閉じます。

Note: See TracTickets for help on using tickets.