別件で,login関係を調べていたところ,
function user_not_fully_set_up($user) {
return ($user->username != 'guest' and (empty($user->firstname) or empty($user->lastname) or empty($user->email) or over_bounce_threshold($user)));
}
この条件を満たすと,ログイン後に,
$urltogo = $CFG->wwwroot.'/user/edit.php';
このアドレスにリダイレクトされるようですよ.
つまり,ゲストユーザ以外で,姓か名が入力されていないか,電子メールアドレスが入力されていないか,over_bounce_threshold()を満たす場合です.ちょっとover_bounce_threshold()がよく分からないのですが,ユーザに関するデータベース中のemail_bounce_countとemail_send_countが,ある条件を満たす場合に真となる関数のようです.電子メールが戻ってきてしまう,つまりアドレスにミスがあると思われる場合かな?
ユーザを登録する場合に,意図的に電子メールアドレスを設定しない(:ファイルからユーザ登録をする場合のみ有効?)などの手段を講じるか.
login/index.phpの175行近辺にある以下のコードでプロフィール編集画面へリダイレクトしているようですので,
if (user_not_fully_set_up($USER)) {
$urltogo = $CFG->wwwroot.'/user/edit.php';
// We don't delete $SESSION->wantsurl yet, so we get there later
} else if (isset($SESSION->wantsurl) and (strpos($SESSION->wantsurl, $CFG->wwwroot) === 0)) {
$urltogo = $SESSION->wantsurl; /// Because it's an address in this site
unset($SESSION->wantsurl);
} else {
// no wantsurl stored or external - go to homepage
$urltogo = $CFG->wwwroot.'/';
unset($SESSION->wantsurl);
}
user_not_fully_set_up()関数に条件を追加するか,上記のif文の条件に(ユーザのログイン回数を調べる方法があるならば)初めてログインした場合,という条件を or で追加するのが一つの手ですね.