Интеграция с Moodle: различия между версиями
Support (обсуждение | вклад) |
Support (обсуждение | вклад) Нет описания правки |
||
Строка 6: | Строка 6: | ||
Таблица: | Таблица: | ||
(select u.login, u.password, s.family_name, CONCAT('student-', s.id) as id, s.name, s.surname from student_students s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1 union all select u.login, u.password, s.family_name, CONCAT('staff-', s.id) as id, s.name, s.surname from state_staff s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1) auth | (select u.login, u.password, s.family_name, CONCAT('student-', s.id) as id, s.name, s.surname from student_students s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1 union all select u.login, u.password, s.family_name, CONCAT('staff-', s.id) as id, s.name, s.surname from state_staff s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1) auth | ||
Версия от 10:21, 4 мая 2020
Аутентификация через БД Апекс-ВУЗ
В разделе Администрирование – Плагины – Аутентификация включаем плагин «Внешняя база данных». Настройки:
Сервер базы данных, Название базы данных, Пользователь базы данных, Пароль – указать как параметры подключения к БД Апекс-ВУЗ
Таблица:
(select u.login, u.password, s.family_name, CONCAT('student-', s.id) as id, s.name, s.surname from student_students s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1 union all select u.login, u.password, s.family_name, CONCAT('staff-', s.id) as id, s.name, s.surname from state_staff s left join system_users u on u.id = s.user_id where s.user_id IS NOT NULL AND s.active = 1) auth
Поле логина: login
Поле пароля: password
Формат пароля: Шифровать строки с помощью односторонней хэш-функции
Команда настройки SQL: SET NAMES 'utf8'
При удалении пользователя во внешнем источнике: Заблокировать внешнюю учетную запись
Обновить пользователей: Да
Сопоставление данных (Имя): name Обновление локальной учетной записи (Имя): При каждом входе Сопоставление данных (Фамилия): family_name Обновление локальной учетной записи (Фамилия): При каждом входе Сопоставление данных (Индивидуальный номер): id Обновление локальной учетной записи (Индивидуальный номер): При каждом входе
Проверяем настройки нажатием на кнопку «Проверить настройки»
Синхронизация базы данных пользователей
Администрирование – Сервер – Задачи – Планировщик задач. Включаем раз в 5 минут запуск скрипта синхронизации - Задача синхронизации пользователей (\auth_db\task\sync_users):
Минута - */5 Остальные поля - * Снимаем флажок «Отключить задачу»
Добавляем в crontab запуск скрипта планировщика Moodle: Запускаем команду crontab -e, добавляем строку, если ее нет
- * * * * /usr/bin/php /var/www/html/admin/cli/cron.php
(/var/www/html нужно заменить на адрес папки Moodle).
Через 5 минут проверяем, появились ли новые пользователи в разделе Администрирование – Пользователи – Учетные записи – Список пользователей, пробуем авторизоваться под одним из них.
Создание категории курсов
В разделе Администрирование – Курсы – Управление курсами и категориями создаем категорию «Дисциплины из Апекс-ВУЗ» с идентификационным номером av.
Автоматическое создание курсов и записи на курс
В разделе Администрирование – Плагины – Зачисления на курсы включаем плагин «Внешняя база данных». Настройки:
Сервер базы данных, Название базы данных, Пользователь базы данных, Пароль – указать как параметры подключения к БД Апекс-ВУЗ
Команда настройки SQL: SET NAMES 'utf8' Локальное поле категории: idnumber
Внешняя таблица информацией о записи на курсы:
((SELECT CONCAT(‘student-‘, s.id), CONCAT("av-course-", cd.discipline_id) AS discipline FROM student_students s LEFT JOIN load_groups g ON s.group_id = g.id LEFT JOIN plan_curriculum_disciplines cd ON g.education_plan_id = cd.education_plan_id WHERE g.education_plan_id IS NOT NULL AND cd.discipline_id IS NOT NULL) UNION ALL (SELECT s.id, CONCAT("av-course-", cd.discipline_id, '/', dccd.discipline_course_id) AS discipline FROM student_students s LEFT JOIN load_groups g ON s.group_id = g.id LEFT JOIN plan_curriculum_disciplines cd ON g.education_plan_id = cd.education_plan_id LEFT JOIN plan_discipline_courses_curriculum_disciplines dccd ON cd.id = dccd.curriculum_discipline_id WHERE g.education_plan_id IS NOT NULL AND cd.discipline_id IS NOT NULL AND dccd.discipline_course_id IS NOT NULL)) courses
Поле курса во внешней таблице: discipline Поле пользователя во внешней таблице: id
Отдаленная таблица новых курсов:
((SELECT DISTINCT(CONCAT("av-course-", cd.discipline_id)) as discipline, d.name, d.name_short FROM plan_curriculum_disciplines cd LEFT JOIN plan_disciplines d ON d.id = cd.discipline_id LEFT JOIN plan_education_plans p ON p.id = cd.education_plan_id WHERE p.status = 1 AND cd.level = 3 AND cd.type NOT IN (8, 16)) UNION ALL (SELECT DISTINCT(CONCAT("av-course-", dc.discipline_id, '/', dc.id)) as discipline, dc.name, dc.name_short FROM plan_discipline_courses dc WHERE dc.discipline_id IN (SELECT DISTINCT(cd.discipline_id) as discipline FROM plan_curriculum_disciplines cd LEFT JOIN plan_disciplines d ON d.id = cd.discipline_id LEFT JOIN plan_education_plans p ON p.id = cd.education_plan_id WHERE p.status = 1 AND cd.level = 3 AND cd.type NOT IN (8, 16)))) courses
Поле полного имени нового курса: name Поле, содержащее название нового курса: name_short Поле номера ID нового курса: discipline Категория нового курса по умолчанию: Дисциплины из Апекс-ВУЗ
По желанию – создать шаблон нового курса и указать его короткое имя в поле «Шаблон нового курса».
Проверяем настройки нажатием на кнопку «Проверить настройки»
Синхронизация курсов
Администрирование – Сервер – Задачи – Планировщик задач. Включаем раз в 5 минут запуск скрипта синхронизации - Synchronise external database enrolments task (\enrol_database\task\sync_enrolments):
Минута - */5 Остальные поля - * Снимаем флажок «Отключить задачу»
Отключение подтверждения e-mail
Апекс-ВУЗ не хранит адреса электронной почты обучающихся, поэтому при интеграции они не будут переданы в Moodle. При первой авторизации Moodle будет запрашивать смену адреса электронной почты и требовать ее подтверждения. Если не все обучающиеся имеют электронную почту, желательно отключить подтверждение, чтобы они могли указывать любую непроверенную почту.
Для этого необходимо перейти в раздел Администрирование – Безопасность – Политики безопасности сайта и снять флажок «Подтверждение изменения электронной почты».