TIESのブログ

Moodleに無理やりログインさせる

Moodleで誰かに何かを確認してもらいたい時に、いちいちログインしてもらうのは面倒ですよね。
ゲストログインで済む所であればいいですが、クイズとかになるとやっぱりログインが必要になってきます。

実際にログイン処理の流れを見ると、complete_user_login($user) でログインさせますと書いていました。
https://docs.moodle.org/dev/Authentication_plugins#Overview_of_Moodle_authentication_process

で、$user は authenticate_user_login() で呼び出すと書いていましたので、
実際、適当なアカウントを用意して以下のように書いてみると、ログインできていました。これだけでとりあえずログインはできるようですね。

$name = 'hoge';
$password = 'huga';

$user = authenticate_user_login($name, $password);
complete_user_login($user);

後は、authenticate_user_login()が失敗した時はfalseを返す的なことが書いてあったので、if文で迷惑かけないようにしておけば良さそうですかね。

if ($user = authenticate_user_login($name, $password)){
  complete_user_login($user);
}

これ結構力技っぽい感じはしますね。。
テスト環境などで、アカウント持っていない人に確認してもらう時とかはなかなか便利そうなんですが。
もっとスマートな方法あるのかな( 一_一)ウーン

Moodleに無理やりログインさせる はコメントを受け付けていません