• 解決済 hrkisa

    (@hrkisa)


    buddypressを利用中です
    新規にユーザを登録した際、メールアドレスの有効確認がなされるようです
    メールアドレスの認証前にログインしようとした際、何の警告メッセージも無くログイン出来ない状態です
    DBを確認するまで、何故ログイン出来ないのか全く判りませんでした
    そこで質問です
    ・アドレスの認証を促すような事は出来ないでしょうか?
    ・認証されないまま一定期間を過ぎた場合、そのユーザを削除する事は出来ないでしょうか?

    以上、よろしくお願い致します

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • Fumito MIZUNO

    (@php-web)

    ・アドレスの認証を促すような事は出来ないでしょうか?

    buddypressのデフォルトテーマを使っていれば、登録後の画面で
    「送信したメールのリンクをクリックすると完了」
    といった趣旨のメッセージが出ます。

    トピック投稿者 hrkisa

    (@hrkisa)

    ご回答ありがとう御座います

    今回は、登録後の画面では無く、一旦ブラウザを閉じる等した場合です
    デフォルトのテーマでも、アドレス認証前のユーザを用いてログインしようとしたとき、何の警告も無くログイン出来ずにトップページへ戻ると云う状態でした

    引き続き、よろしくお願い致します

    Fumito MIZUNO

    (@php-web)

    ちょっと強引ですが、元の関数p_core_signup_disable_inactive(bp-core.phpにあります)を削って、
    オリジナル定義してみました。

    remove_filter( 'authenticate', 'bp_core_signup_disable_inactive', 11, 2 );
    function my_bp_core_signup_disable_inactive( $auth_obj, $username ) {
    	global $bp, $wpdb;
    
    	if ( !$user_id = bp_core_get_userid( $username ) )
    		return $auth_obj;
    
    	$user_status = (int) $wpdb->get_var( $wpdb->prepare( "SELECT user_status FROM $wpdb->users WHERE ID = %d", $user_id ) );
    
    	if ( 2 == $user_status )
                wp_die('You need authentication'); //ここを変更した
    	else
    		return $auth_obj;
    }
    add_filter( 'authenticate', 'my_bp_core_signup_disable_inactive', 11, 2 );

    本家に改善を提案したほうが良いかもしれませんね。

    トピック投稿者 hrkisa

    (@hrkisa)

    ぬぉっ!
    わざわざオリジナルでありがとう御座います
    現状ではそう云う機能は無いのですね

    少し外に出るので、夜に戻ったらすぐ試させていただきます
    ありがとう御座いました

    なお

    ・認証されないまま一定期間を過ぎた場合、そのユーザを削除する事は出来ないでしょうか?

    もプラグイン等は無くオリジナルでコードを書くと云う方向でしょうか?

    //質問別けた方が良いかな?

    トピック投稿者 hrkisa

    (@hrkisa)

    お世話になります
    頂いた
    wp_die('You need authentication');
    を書くと、ステータスコード500が返ってきます
    wp_dieと云う関数は始めて見たので、追いかけて原因を究明し、後ほど結果を報告させて頂きます

    先に書くのを忘れてしまいましたが、buddypress.1.2.7です
    構造が変わっているのか、bp_core_signup_disable_inactive()はbp-core-signup.phpに有りました

    Fumito MIZUNO

    (@php-web)

    wp_die は500エラーとエラーメッセージを返す関数なので、正しく動作しています。
    http://codex.wordpress.org/Function_Reference/wp_die
    他のステータスコードにしたいのであれば、単に echo を使うなどしてください。

    先に書くのを忘れてしまいましたが、buddypress.1.2.7です

    バージョンについて何も書いてなかったので、投稿時点での最新バージョン(1.2.8)と判断して調べています。
    あえて古いバージョンを使うのであれば、差分ぐらいは自分で調べてください。

    ・認証されないまま一定期間を過ぎた場合、そのユーザを削除する事は出来ないでしょうか?

    もプラグイン等は無くオリジナルでコードを書くと云う方向でしょうか?

    プラグインがあるかどうか分かりません。
    データベースを調べて登録日とステータスで条件判定するだけですので、
    プラグインを探すよりはコード書いた方が速いと思います。

    トピック投稿者 hrkisa

    (@hrkisa)

    ステータスコード500はコード中に全角スペースが含まれていたのが原因でしたorz

    最終的に、認証を促す固定ページを作成し、そこへリダイレクトさせるようにしました
    お付き合いありがとう御座います
    固定ページに、再度認証メールを送る仕組みを追加しようと思うので、また詰まれば質問させて頂きます

    データベースを調べて登録日とステータスで条件判定するだけですので、
    プラグインを探すよりはコード書いた方が速いと思います。

    了解しました
    取りあえずfunction.phpに追記する事で対処しました
    トリガーが気に入らないので、改良後プラグイン化しようと思います

    ご教示ありがとうございました

    Fumito MIZUNO

    (@php-web)

    track を見たところ、buddypress 1.3 で、
    アクティベーションしていない場合は警告メッセージを出すように改善されるらしいです。
    http://trac.buddypress.org/ticket/2772

    トピック投稿者 hrkisa

    (@hrkisa)

    おぉ
    わざわざ情報ありがとう御座います

    あれから少し勉強して、
    remove_filter( ‘authenticate’, ‘bp_core_signup_disable_inactive’, 11, 2 );
    をfunction.phpに追加し、独自関数作って弄ってますが・・・
    リンク先でやってる事の方がシンプルでよさそうです

    ありがとうございました

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「buddypressでのメールアドレス認証」には新たに返信することはできません。