Хак интеграция DLE с IPS 4.2.x » Сибирский федеральный

При наличие пользователя в базе данных DLE, то в системе IPS, он сможет без проблем авторизоваться, и не нужно проходить повторную авторизацию.
При этом в системе IPS создаётся пользователь со всеми данными из базе сайта Datalife Engine. Работает односторонне.

Установка интеграция DLE 10-12 + IPS 4.2.x

Инструкция:

Открываем админку IPS и переходим в управление авторизацией: (на примере IPS v4.2.5)

Интеграция DLE 10-12 + IPS 4.2.x

Активируем внешнюю авторизацию в админке IPS. Если вас не перенесло автоматически, то нажмите на карандаш справа. Заполняем данные базы данных, где находится DLE.

Интеграция DLE 10-12 + IPS 4.2.x

Детали схемы базы данных

— Заполняем
— Таблица: *ваш префикс*_users
— Колонка имён пользователей: name
— Колонка Email адресов: email
— Колонка паролей: password
— Тип шифрования паролей: Если у вас версия DLE 11.1 и меньше — берём значение MD5, если больше — Обычный текст
— Дело в том, что начиная с версии 11.2 в DLE сменился хеш паролей и MD5 более не подходит. Мы всё подправим в файле внешней авторизации. Посему — можете спокойно обновлять DLE.
— Дополнительное условие: banned<>1
— Этот параметр не даст забанненым пользователям авторизоваться на форуме
— Сохраняем

Открываем файл форум/system/Login/External.php
Ищем строчку (похожую)

if ( !IPSLogin::compareHashes( $this->encryptedPassword( $values[‘password’] ), $result[ $this->settings[‘db_col_pass’] ] ) ) { throw new IPSLoginException( ‘login_err_bad_password’, IPSLoginException::BAD_PASSWORD, NULL, $member );
        }
Выше(!) ставим:

switch ( $this->settings[‘db_encryption’] )
{ case ‘plaintext’: if(!password_verify($values[‘password’], $result[ $this->settings[‘db_col_pass’] ] ) ) { throw new IPSLoginException( ‘login_err_bad_password’, IPSLoginException::BAD_PASSWORD, NULL, $member ); }
            default:
и ниже

}
Ищем:

return md5( $password );
меняем на

return md5( md5( $password ) );
Ищем:

return $password;
меняем на

return password_hash($password, PASSWORD_DEFAULT);
Сохраняем
Установка закончена!

Версия DLE: 10.х, 11.х, 12.х
Версия IPS: 4.2
Автор: Maxim Harder, Celsoft

Источник: siberian-federal.net