2015-06-04 5 views
3

Я пытаюсь сделать свое первое расширение Moodle auth, где я хочу подтвердить и войти в систему сразу после регистрации.Вход в Moodle после регистрации

Я изменил функцию user_signup в «электронной почты» Идент плагин так:

\core\event\user_created::create_from_userid($user->id)->trigger(); 

$DB->set_field("user", "confirmed", 1, array("id"=>$user->id)); 

$user = get_complete_user_data('username', $username); 
$DB->set_field("user", "firstaccess", time(), array("id"=>$user->id)); 
$DB->set_field("user", "lastlogin", 0, array("id"=>$user->id)); 
update_user_login_times($user); 

complete_user_login($user); 
redirect("$CFG->wwwroot/enrol/index.php?id=2"); 

Он работает до сих пор, как пользователь получает подписался и подтвердил. Но, как и для входа в систему я получаю следующее сообщение об ошибке:

ядро ​​\ сессии \ менеджер :: login_user() должен быть экземпляром StdClass, логическое данное

я мог бы действовать глупо, но я не знаете, как я могу войти в новый пользователь здесь. Любая помощь была бы очень огорчена. Благодаря!

ответ

1

После создания учетной записи пользователя введите имя пользователя и пароль, которые вы ввели, а затем выполните как это.

if ($user = authenticate_user_login($username, $password)) { 
/// Let's get them all set up. 
     complete_user_login($user); 
     redirect($CFG->wwwroot . 'URL you want'); 
} 
+0

Можно ли сделать что-то, что позволяет учащимся из любой школы, которые используют moodle для входа, используя свой знак moodle? Например, у меня есть приложение для сдачи в аренду книг в колледже, например, у меня есть кнопка «войти в систему с moodle». Возможное? – ChuckKelly

+0

Эта функция недоступна с Moodle, но вы можете создать свой собственный API для этого, чтобы выполнить вход в Moodle. –

+0

Спасибо, Priye, но на самом деле я понятия не имею, как получить имя пользователя и пароль. –

Смежные вопросы