6.0.0-beta13
4/12/26
  • 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}}

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')
                              )
);

}

}

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