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

Opened 9 years ago

Last modified 9 years ago

#2438 assigned enhancement

SlavePNEだと個体識別番号必須制が反映されない

Reported by: kiwa Owned by: shingo
Priority: minor Milestone:
Component: pne-masterslave Version: 2.12.x & 2.14.x
Keywords: Cc:

Description (last modified by shingo)

■現象

  • OPENPNE_AUTH_MODE:slavepne
  • メンバー登録時の携帯個体識別番号取得設定:PC・携帯登録時に個体識別番号を必須にする

の場合、PCメールアドレス登録後に携帯メールアドレス登録を行わないため、携帯個体識別番号登録を完了せずにメンバー登録が完了してしまう。

■原因

SlavePNE時の登録フローでは仮データ登録後ログイン状態となるため、
既に実装されている個体識別番号必須性の機能をそのまま流用することができなくなっている。

◆通常の「個体識別番号必須制」のフロー

1.プロフィールの登録
    ↓
(c_member_profile_pre に一時的にメンバー情報を登録)
    ↓
2.携帯メールアドレス入力&送信
    ↓
3.携帯より携帯メールアドレスと個体識別番号の登録
    ↓
(c_member_pre, c_member_profile_pre の仮情報を
        c_member, c_member_profile に本登録)

◆SlavePNEの登録フロー

1.SlavePNEログイン
    ↓
(c_member_profile_pre に一時的にメンバー情報を登録)
    ↓
2.プロフィールの登録
    ↓
(c_member, c_member_profile に本登録)

■修正内容

以下のような登録フローを新たに実装
(携帯個体識別番号が登録されているかをPC・ktaiモジュールのauth.incで確認を行う)

【PC版】
1.SlavePNEログイン
    ↓
(c_member_profile_pre に一時的にメンバー情報を登録)
    ↓
2.プロフィールの登録
    ↓
(c_member, c_member_profile に本登録)
    ↓
3.個体識別番号を確認(auth.incで)
    ↓
(個体識別番号がない場合)
    ↓
4.携帯メールアドレス入力&送信
    ↓
5.携帯より携帯メールアドレスと個体識別番号の登録(外部認証も確認する)
    ↓
(以後ログイン可能)


【携帯版】
1.SlavePNEログイン
    ↓
(c_member_profile_pre に一時的にメンバー情報を登録)
    ↓
2.プロフィールの登録
    ↓
(c_member, c_member_profile に本登録)
    ↓
3.個体識別番号を確認(auth.incで)
    ↓
(個体識別番号がない場合)
    ↓
4.個体識別番号入力ポップアップ
    ↓
5.個体識別番号の登録
    ↓
(以後ログイン可能)


※既に登録しているメンバーが従来通りログインできるように 既存メンバーにダミー個体識別番号を登録するsqlファイルを

setup/sql/各DBMS/option/

に設置

■関連情報

Change History (24)

comment:1 Changed 9 years ago by ebihara

Keywords: OpenPNE2.12RC1 added
Milestone: OpenPNE2.10.7

comment:2 Changed 9 years ago by ebihara

Priority: minormajor

comment:3 Changed 9 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

やります。

comment:4 Changed 9 years ago by ebihara

Owner: changed from ebihara to nobody
Priority: majorminor
Status: assignednew

現象を確認することはできましたが、修正がやや困難になるため、プライオリティを下げます。

また、安定版やRCへの導入はやや危険かもしれません。

comment:5 Changed 9 years ago by ebihara

Keywords: OpenPNE2.12RC2 added; OpenPNE2.12RC1 removed

comment:6 Changed 9 years ago by ogawa

Keywords: OpenPNE2.10.7 added; OpenPNE2.12RC2 removed
Milestone: OpenPNE2.10.7OpenPNE2.12.1

安定版マイナーバージョンアップリリースに回します。

comment:7 Changed 9 years ago by ogawa

Keywords: OpenPNE2.13.2 added

comment:8 Changed 9 years ago by ebihara

Keywords: OpenPNE2.10.8 added; OpenPNE2.10.7 removed
Milestone: OpenPNE2.12.1OpenPNE2.12.2

comment:9 Changed 9 years ago by ebihara

Keywords: OpenPNE2.10.9 added; OpenPNE2.10.8 removed
Milestone: OpenPNE2.12.2OpenPNE2.12.3

comment:10 Changed 9 years ago by ebihara

Keywords: OpenPNE2.10.9 OpenPNE2.13.2 removed
Milestone: OpenPNE2.12.3OpenPNE2.13.2

大規模な変更になるので、開発版で対応するべきです。

comment:11 Changed 9 years ago by kiwa

Milestone: OpenPNE2.13.2OpenPNE2.13.3

comment:12 Changed 9 years ago by ebihara

Type: defectenhancement

comment:13 Changed 9 years ago by ebihara

SlavePNE の場合、 do_o_login にてログインをおこなった時点で、 c_member, c_member_secure にダミーの情報が入力されます。その後、 auth.inc にて誕生日やメールアドレスなど必須のプロフィール項目が入力されているかどうかをチェックし、入力されていない場合はそれらの入力を促すページ(page_h_regist_prof, page_h_regist_address)にリダイレクトします。

一方で、個体識別番号必須性が有効になっている場合、 do_o_regist_pre にて c_member_pre, c_member_profile_pre に一時的にメンバー情報を登録し、携帯版で個体識別番号の登録をおこなうように促します。正常に個体識別番号の登録がおこなえたら、 c_member_pre, c_member_profile_pre に保持しておいた情報を、 c_member, c_member_profile に登録し直します。

SlavePNE では先に c_member を登録してしまうので、既に実装されている個体識別番号必須性の機能をそのまま流用することができません。そのため、本件へ対応するためには SlavePNE 専用の処理やアクションを新たに追加する必要があると思います。

プロフィールやメールアドレスが登録されているかどうかのチェックは auth.inc でおこなっていますが、個体識別番号についても同様に auth.inc にてチェックをおこなうよう変更することで対応できるでしょうか。

comment:14 Changed 9 years ago by kiwa

Milestone: OpenPNE2.13.3OpenPNE2.13.4

2.13.3では見送ります。

comment:15 Changed 9 years ago by shingo

Owner: changed from nobody to shingo
Status: newassigned

作業します。

comment:16 Changed 9 years ago by shingo

Description: modified (diff)

原因・修正内容 を記述

comment:17 Changed 9 years ago by shingo

Keywords: 確認中 added

以下のリビジョンで修正しました。ご確認ください。

  • SlavePNEでも個体識別番号必須制が反映するように修正     trunk - r8931
  • 不要な関数を削除                              trunk - r8939
  • ログイン後のみ表示されるバナーが表示されなくなった問題を修正 trunk - r8949
  • 既に登録しているメンバーが従来通りログインできるように修正   trunk - r8960

comment:18 Changed 9 years ago by shingo

Description: modified (diff)

Descriptionを変更

comment:19 Changed 9 years ago by shingo

●trunk - r8960 についての補足
text型からbytea型への型変換が自動でなされるかの確証が無かったため(postgres8.1では確認)、
CAST()変数で型変換を行った

※postgres7.4環境ではで動作確認しておりません

comment:20 Changed 9 years ago by ogawa

Keywords: 差し戻し added; 確認中 removed
  • r8949 の img.php を読み込んだかどうかの判別に PHP_SELF / SCRIPT_NAME は使うべきではありません。「OPENPNE_URL/index.php/img.php」のようなURLにアクセスすれば認証が突破できます
  • このUPDATE SQLを実行すると、既存のメンバーでかんたんログイン設定をしていなかったメンバーがktai_page_h_config_easy_loginにアクセスすると「かんたんログイン設定済みです。」と表示されてしまいます
  • 管理画面のCSVインポートからメンバー登録した際の挙動がSlavePNEでない場合と異なり、個体識別番号を登録しない限りログインできない、という挙動になってしまうのは問題ではないでしょうか
  • changeset:8931/OpenPNE/trunk/webapp/lib/util/ktai.php 不要なコメントが追加されています
  • 関数コメント内で「登録登録」となっている個所があります

comment:21 Changed 9 years ago by ogawa

登録者が携帯個体識別番号が登録できない場合に、ログインできないにもかかわらず c_member 登録済みでメール受信やプロフィール公開されてしまっている状況は好ましくないため、このチケットの修正方法自体を見直すべきと判断し、2.13.4のリリースからは外すこととします。

comment:22 Changed 9 years ago by shingo

Keywords: 差し戻し removed

以下のリビジョンで comment:17 で行われた修正を取り消しました。

comment:23 Changed 9 years ago by ebihara

Milestone: OpenPNE2.13.4

comment:24 Changed 9 years ago by ebihara

Version: 2.10.x & 2.12.x & 2.13.x2.12.x & 2.13.x
Note: See TracTickets for help on using tickets.