Ticket #2438 (assigned enhancement)

Opened 9 years ago

Last modified 8 years ago

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

Reported by: kiwa Assigned to: shingo (accepted)
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

05/16/08 16:50:42 changed by ebihara

  • keywords set to OpenPNE2.12RC1.
  • milestone set to OpenPNE2.10.7.

05/16/08 17:10:39 changed by ebihara

  • priority changed from minor to major.

05/21/08 18:55:23 changed by ebihara

  • owner changed from nobody to ebihara.
  • status changed from new to assigned.

やります。

05/21/08 19:04:57 changed by ebihara

  • owner changed from ebihara to nobody.
  • priority changed from major to minor.
  • status changed from assigned to new.

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

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

05/22/08 14:46:19 changed by ebihara

  • keywords changed from OpenPNE2.12RC1 to OpenPNE2.12RC2.

05/27/08 11:37:42 changed by ogawa

  • keywords changed from OpenPNE2.12RC2 to OpenPNE2.10.7.
  • milestone changed from OpenPNE2.10.7 to OpenPNE2.12.1.

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

06/11/08 18:44:44 changed by ogawa

  • keywords changed from OpenPNE2.10.7 to OpenPNE2.10.7 OpenPNE2.13.2.

06/16/08 12:43:41 changed by ebihara

  • keywords changed from OpenPNE2.10.7 OpenPNE2.13.2 to OpenPNE2.10.8 OpenPNE2.13.2.
  • milestone changed from OpenPNE2.12.1 to OpenPNE2.12.2.

07/09/08 19:10:00 changed by ebihara

  • keywords changed from OpenPNE2.10.8 OpenPNE2.13.2 to OpenPNE2.10.9 OpenPNE2.13.2.
  • milestone changed from OpenPNE2.12.2 to OpenPNE2.12.3.

08/06/08 14:20:56 changed by ebihara

  • keywords deleted.
  • milestone changed from OpenPNE2.12.3 to OpenPNE2.13.2.

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

08/27/08 18:24:33 changed by kiwa

  • milestone changed from OpenPNE2.13.2 to OpenPNE2.13.3.

09/11/08 19:19:12 changed by ebihara

  • type changed from defect to enhancement.

09/11/08 21:53:16 changed 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 にてチェックをおこなうよう変更することで対応できるでしょうか。

09/22/08 16:08:16 changed by kiwa

  • milestone changed from OpenPNE2.13.3 to OpenPNE2.13.4.

2.13.3では見送ります。

10/24/08 19:00:00 changed by shingo

  • owner changed from nobody to shingo.
  • status changed from new to assigned.

作業します。

10/30/08 16:56:39 changed by shingo

  • description changed.

原因・修正内容 を記述

11/05/08 11:18:18 changed by shingo

  • keywords set to 確認中.

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

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

11/05/08 11:34:33 changed by shingo

  • description changed.

Descriptionを変更

11/05/08 12:16:10 changed by shingo

●trunk - r8960 についての補足
text型からbytea型への型変換が自動でなされるかの確証が無かったため(postgres8.1では確認)、
CAST()変数で型変換を行った
 ※postgres7.4環境ではで動作確認しておりません

11/06/08 21:03:15 changed by ogawa

  • keywords changed from 確認中 to 差し戻し.
  • 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 不要なコメントが追加されています
  • 関数コメント内で「登録登録」となっている個所があります

11/06/08 21:24:08 changed by ogawa

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

11/06/08 21:57:27 changed by shingo

  • keywords deleted.

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

11/06/08 23:36:09 changed by ebihara

  • milestone deleted.

01/28/09 15:05:53 changed by ebihara

  • version changed from 2.10.x & 2.12.x & 2.13.x to 2.12.x & 2.13.x.