Backport(バックポート) #2120
完了設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない
100%
説明
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 以降を参照してください。
現象¶
- (case1) base_url: "http://mydomain.jp/openpne" (正しい指定)
- 【OK】招待メール中のSNS参加リンク: http://mydomain.jp/openpne/member/register/token/...
- 【OK】招待メール署名にあるSNSのURL: http://mydomain.jp/openpne
- (case2) base_url: "http://mydomain.jp" ("/openpne"の欠けた指定)
- 【*NG】招待メール中のSNS参加リンク: http://mydomain.jp/member/register/token/...
- 【*NG】招待メール署名にあるSNSのURL: http://mydomain.jp
- (case3) base_url: "http://example.com"
- 【NG】招待メール中のSNS参加リンク: http://mydomain.jp//member/register/token/...
- 【*NG】招待メール署名にあるSNSのURL: http://example.com
- (case4) base_url 無指定
- 【NG】招待メール中のSNS参加リンク: http://mydomain.jp//member/register/token/...
- 【*NG】招待メール署名にあるSNSのURL: http://example.com
【*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)となっている
Minoru Takai さんが13年以上前に更新
- 題名 を 招待メールに記載されたURLにアクセスできない から 3.4.x 設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない に変更
- 優先度 を Urgent(急いで) から High(高め) に変更
- 対象バージョン を OpenPNE 3.4.13 から OpenPNE 3.4.14 に変更
Target version 3.4.13 で作成されていましたが、3.4.13 で取り込む理由がないため、元チケットが完了次第取り込むものとします。暫定的に Target version を 3.4.14 と変更します。
Shinichi Urabe さんが13年以上前に更新
- 対象バージョン を OpenPNE 3.4.14 から OpenPNE 3.4.15 に変更
親チケットで完了していないため、次期バージョンに延期します
Minoru Takai さんが13年以上前に更新
- 題名 を 3.4.x 設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない から 設定ファイルを記述し忘れた場合に、招待メールに記載されたURLにアクセスできない に変更
Minoru Takai さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
note-10 について
#2120 #2325 は下記実装案では問題として発生しないと考えられますが,レビューおよびテストの手がかりとするため,本チケット対応後に同様のステータスに変更します.
ということなので、本チケットにコミットが紐付いていませんが、本チケットは #2324 の重複チケットと見做さず、このチケットで扱う予定だったコミットを #2324 で併せて行った(コミットに紐付くチケットを変更している状態)と見做します(※)。
※通常、修正前には、修正後に直っているはずの問題が再現できるはずですが、関連修正を併せて行なっているためこれが確認できない可能性があります。このように結果的にコミットが紐付かないチケットが生じた場合は重複チケットとして(関連チケットで duplicates - duplicated by の紐付けをした上で) Duplidated (Invalid) クローズすることがしばしばあります。
Mutsumi Imamura さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
動作確認OKです。