Project

General

Profile

Backport(バックポート) #2173

設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない

Added by isao sano over 9 years ago. Updated over 9 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2011-06-09
Due date:
% Done:

100%


Description

http://sns.openpne.jp/communityTopic/6423 より転記

招待メールに記載されたURLにアクセスできません。

<動作環境>
OpenPNE3.6beta5
CentOS5(OpenVZの仮想環境)
PHP 5.2.11
mysql Ver 14.14

招待状に記載されていたURL
http://ドメイン名/member/register/token/3228758dcc32ffb79b61ee61deb73c1b1

実際に利用できた(手で書き換えた)URL
http://ドメイン名/sns/web/member/registerInput/token/3228758dcc32ffb79b61ee61deb73c1b1

登録完了メールには以下の正しいURLが記載されていました。
(このURLでOpenPNEにアクセス可能)
http://ドメイン名/sns/web/

本チケットで扱う問題

note-14 のコメントを以て、

  • 「設定ファイルを正しく設定したにもかかわらず、招待メールに記載されたURLにアクセスできない」という報告された問題は「再現せず」と判断する
  • 「設定ファイルを正しく設定していない場合に、招待メールに記載されたURLにアクセスできない」という問題に対応する

このようにこのチケットで扱う問題を切り替えます。具体的に何を問題として、何を修正するかについては note-9 以降を参照してください。

現象

【*NG】と示したものは、適切なURLが出力されていませんが、問題とみなす必要はないものです。

上記について説明を示します:

  • case1 は「設定ファイルを正しく記述した場合」で、適切なURLが出力されています
  • case2 は「設定ファイルを不正に記述した場合」で、URLは不適切ですが、これは設定ファイルを不正に記述していることが原因であるため問題とみなす必要はありません
  • case3, case4 は「設定ファイルを記述していない場合」で、招待メールのSNS参加リンクのドメインを見ると『ドメインを補完しようとしているが、サブディレクトリが抜け落ちている』という不自然な状態になっています

補足

サブディレクトリが抜け落ちると示していますが、厳密には「末尾のディレクトリ名が抜け落ちる」というものです。

note-9 で示されていますが、 dirname() 関数がパスの最後のディレクトリを除去してしまうという仕様に基づく問題です(dirname() の仕様が問題というよりは、当該部分で dirname() を用いていることが原因です)。

dirname('/usr/bin/ls') => '/usr/bin'
dirname('/usr/bin/') => '/usr'
dirname('/usr/bin') => '/usr'
dirname('/etc/') => '/'

対応すべき問題

case3, case4 の場合に、招待メールのURL(base_url相当部分)の補完が不十分であり、不自然なURLを生成してしまっているため、これを修正する。

  • 修正前の動作
    • 前提:サブディレクトリ(パス)を持つようなURLでSNSにアクセスする環境で、case3, case4 の場合、
    • 招待メールにおいて、SNS参加リンクのサブディレクトリ部分の末のディレクトリ名が抜け落ちる
  • 修正後の動作
    • 前提:サブディレクトリ(パス)を持つようなURLでSNSにアクセスする環境で、case3, case4 の場合、
    • 招待メールにおいて、SNS参加リンクが適切なURL(新規登録画面に遷移できるURL)となっている

Related issues

Related to OpenPNE 3 - Bug(バグ) #1675: 設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない Fixed(完了) 2010-10-14

Associated revisions

Revision 2cbb9d8f (diff)
Added by Maki Takahashi over 9 years ago

(fixes #2173, BP from #1675) use dirname() only if the path contains script name

Revision a5bc1048 (diff)
Added by Naoya Tozuka over 9 years ago

(fixes #2173, BP from #1675) use preg_replace() to obtain directory name from the script path

Revision 8fd38550 (diff)
Added by Maki Takahashi over 9 years ago

(fixes #2173, BP from #1675) use dirname() only if the path contains script name

Revision 8abffffc (diff)
Added by Naoya Tozuka over 9 years ago

(fixes #2173, BP from #1675) use preg_replace() to obtain directory name from the script path

History

#1 Updated by Kousuke Ebihara over 9 years ago

  • Target version changed from OpenPNE3.6beta11 to OpenPNE3.6beta12

親チケットが「テスト待ち」「完了」でないものをすべて beta12 以降での対応とします。

#2 Updated by Shingo Yamada over 9 years ago

  • Assignee changed from Shingo Yamada to Maki Takahashi

#3 Updated by Maki Takahashi over 9 years ago

  • Status changed from New(新規) to Accepted(着手)

#4 Updated by Anonymous over 9 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#5 Updated by Rimpei Ogawa over 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

親チケット note-18 での修正のマージをお願いします。
http://redmine.openpne.jp/issues/1675#note-18

#6 Updated by Naoya Tozuka over 9 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

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

#7 Updated by Naoya Tozuka over 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

マージ確認しました。OKです。

#8 Updated by Naoya Tozuka over 9 years ago

  • Status changed from Pending Testing(テスト待ち) to Pending Review(レビュー待ち)
  • % Done changed from 70 to 50

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

#9 Updated by Anonymous over 9 years ago

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

#10 Updated by Kousuke Ebihara over 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

http://redmine.openpne.jp/issues/2173#note-7 のリリースブランチへの取り込みでステータスが「レビュー待ち」に巻き戻ってしまいましたので、もとに戻します。

#11 Updated by Minoru Takai over 9 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

動作テスト

親チケットと同様に、 stable-3.6.x ブランチでこの修正に対する動作テストを行いました。

  • 修正前の動作
    • 前提:サブディレクトリ(パス)を持つようなURLでSNSにアクセスする環境で、case3, case4 の場合、
    • 招待メールにおいて、SNS参加リンクのサブディレクトリ部分の末のディレクトリ名が抜け落ちる
  • 修正後の動作
    • 前提:サブディレクトリ(パス)を持つようなURLでSNSにアクセスする環境で、case3, case4 の場合、
    • 招待メールにおいて、SNS参加リンクが適切なURL(新規登録画面に遷移できるURL)となっている

この確認を行いました。

このようなURLでSNSにアクセスできる場合(サブディレクトリが1階層〜3階層の場合)をテストし、修正前、修正後とも上記の通りになることを確認しました。

この修正による副作用については、現時点で懸念点が明らかでないため確認すべき動作を示せませんが、

  • サブディレクトリをURLに含まない環境
  • サブディレクトリをURLに含む環境
  • 設定ファイルが正常な場合(case1)
  • 設定ファイルを記述していない場合(case3, case4)

このそれぞれにおいて、URLの生成は正常に行われていることは確認しています。親チケットでの考察結果を以て、副作用なく問題点を修正できているものとし、チケットを完了とします。

#12 Updated by Yuma Sakata over 9 years ago

テストOKです。

Also available in: Atom PDF