Интеграция Moodle версии 3.1 с Amber

В нашей системе мы хотим интегрировать плагин Moodle (версия 3.1) с январом. У нас есть некоторые пользователи в Moodle с паролями в зашифрованном формате, и мы хотим импортировать этих пользователей в аккаунт без изменения паролей пользователей с помощью API.

Может кто-нибудь, пожалуйста, предложить способ, как мы можем справиться с этим?

Я использую следующий код для создания пользователей в amember.it успешно создаю пользователей в amber, но когда я пытаюсь войти в систему, он запрещен.

$url = 'http://YOURDOMAIN.COM/amember/api/users';

$fields = array(
'_key' => 'SECRETKEY',
'_format' => 'xml',
'login' => 'USERNAME',
'pass' => 'PASSWORD',
'email' => 'EMAIL',
'name_f' => 'FIRST NAME',
'name_l' => 'LAST NAME',
);
//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: application/x-  www-form-urlencoded"));

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

Заранее спасибо.

0

Решение

Поскольку пароли в Moodle зашифрованы, вы не сможете расшифровать пароли. Когда я читаю ваш код, amember api при создании пользователя потребует простой пароль.

Единственный обходной путь, который я вижу, приведет к созданию собственного плагина аутентификации в Moodle. Этот плагин будет вызываться после попытки входа в систему существующих пользователей Moodle. Затем вы можете использовать метод user_login, чтобы проверить пароль к базе данных Moodle. Кроме того, на этом этапе у вас есть незашифрованный пароль, поэтому вы можете создать нового пользователя-участника, как только вход в систему будет успешным.

0

Другие решения

Вам не нужно использовать API для импорта пользователей.

У aMember есть инструмент администратора, который позволяет вам импортировать пользователей из файлов CSV.
Этот инструмент позволяет импортировать пользователя с зашифрованными / хешированными паролями.

aMember CP -> Пользователи -> Импорт пользователей

Вы можете экспортировать пользователя из базы данных Moodle в файл CSV.

Вы должны включить плагин интеграции Moodle в aMember, прежде чем делать такой импорт.

0