6.0.0-git
2020-08-12

Diff for ImapSelectH4 between and 1

+ Dynamically selecting an IMAP server for authentication

**##red|This information is valid for Horde 4 only. See ImapSelectH3 for Horde 3 or ImapSelect for Horde 5 and later.##**

++ An IMAP server selector hook function in Horde 4 {{imp/config/hooks.php}}
<code type="php">
class IMP_Hooks
{

public function preauthenticate($userId, $credentials)
{
    //Horde::logMessage('authM: '.$credentials['authMethod'].' id='.$userId, 'ERROR');
    //return true;

    /* when no userId given */
    if (empty($userId)) return true;

    /* list of ALL remote users */
    $remote_users = array('username@remoteserver.hu' => 'remote-imap-servers-key');

    /* local user */
    if (!array_key_exists($userId, $remote_users)) return true;

    /* remote user */
    return array('credentials' => array('server' => $remote_users[$userId],
                                        'transparent' => true,
                                        'password' => $GLOBALS['registry']->getAuthCredential('password')
                                  )
    );
}

}
</code>

Set server list to 'hidden' in Imp prefs, and all backend's hordeauth to full.