Долго думал и гуглил свою проблему. Есть пользователи в phpbb3 базе. Возникла потребность прикрутить к форуму еще и LDAP базу (корпоративные пользователи). Но phpbb3 не умеет этого одновременно. Т.е. если используется аутентификация LDAP, то зарегистрированные ранее пользователи форума не смогут зайти. Что сильно удручало меня. Решение нашлось, но не сразу.
Делюсь :)
Создать файл includes/auth/auth_ldap_db.php с таким содержимым:
И все. В ACP разделе Аутентификация появится метод Ldap_db
Сначала проверяется пользователь в LDAP, и если не найден, то в Базе phpbb3
Первоисточник рецепта:
раздел страницы: phpBB • View topic - LDAP Authentication with fallback to DB auth? (открыть в Google ВикиКомментариях)
Делюсь :)
Создать файл includes/auth/auth_ldap_db.php с таким содержимым:
<?php
include_once($phpbb_root_path . 'includes/auth/auth_ldap.' . $phpEx);
include_once($phpbb_root_path . 'includes/auth/auth_db.' . $phpEx);
function init_ldap_db()
{
init_ldap();
}
function login_ldap_db(&$username, &$password)
{
$test_login_ldap = login_ldap(&$username, &$password);
if (($test_login_ldap[status] == LOGIN_SUCCESS)||($test_login_ldap[status] == LOGIN_SUCCESS_CREATE_PROFILE))
{
return $test_login_ldap;
}
return login_db(&$username, &$password);
}
?>
И все. В ACP разделе Аутентификация появится метод Ldap_db
Сначала проверяется пользователь в LDAP, и если не найден, то в Базе phpbb3
Первоисточник рецепта:
раздел страницы: phpBB • View topic - LDAP Authentication with fallback to DB auth? (открыть в Google ВикиКомментариях)
Спасибо за наводку. Сам долго гуглил. Но у меня этот метод никак не работал. В логах апача нашел:
ОтветитьУдалитьPHP Fatal error: Call-time pass-by-reference has been removed in /var/www/forum/includes/auth/auth_ldap_db.php on line 13
Еще погуглив нарыл, что в указаном файле лишними оказались знаки амперсанда. Убрал - заработало как часики!
Может кому пригодится.