Throw login error when LDAP connection failes or user not found in LDAP (Bug #512)

This commit is contained in:
Aleksander Machniak 2012-10-08 09:38:16 +02:00
parent e0962a3936
commit ad9a89eece

View file

@ -252,6 +252,7 @@ class kolab_auth extends rcube_plugin
$this->load_config(); $this->load_config();
if (!$this->init_ldap()) { if (!$this->init_ldap()) {
$args['abort'] = true;
return $args; return $args;
} }
@ -268,6 +269,7 @@ class kolab_auth extends rcube_plugin
$loginas = trim(get_input_value('_loginas', RCUBE_INPUT_POST)); $loginas = trim(get_input_value('_loginas', RCUBE_INPUT_POST));
if (empty($user) || empty($pass)) { if (empty($user) || empty($pass)) {
$args['abort'] = true;
return $args; return $args;
} }
@ -275,6 +277,7 @@ class kolab_auth extends rcube_plugin
$record = $this->get_user_record($user, $host); $record = $this->get_user_record($user, $host);
if (empty($record)) { if (empty($record)) {
$args['abort'] = true;
return $args; return $args;
} }
@ -339,7 +342,7 @@ class kolab_auth extends rcube_plugin
} }
if (empty($record)) { if (empty($record)) {
$args['valid'] = false; $args['abort'] = true;
return $args; return $args;
} }
@ -351,11 +354,10 @@ class kolab_auth extends rcube_plugin
$_SESSION['kolab_auth_password'] = $rcmail->encrypt($admin_pass); $_SESSION['kolab_auth_password'] = $rcmail->encrypt($admin_pass);
} }
// Set credentials
if ($record) {
// Store UID in session for use by other plugins // Store UID in session for use by other plugins
$_SESSION['kolab_uid'] = is_array($record['uid']) ? $record['uid'][0] : $record['uid']; $_SESSION['kolab_uid'] = is_array($record['uid']) ? $record['uid'][0] : $record['uid'];
// Set credentials
if ($login_attr) { if ($login_attr) {
$this->data['user_login'] = is_array($record[$login_attr]) ? $record[$login_attr][0] : $record[$login_attr]; $this->data['user_login'] = is_array($record[$login_attr]) ? $record[$login_attr][0] : $record[$login_attr];
} }
@ -366,7 +368,6 @@ class kolab_auth extends rcube_plugin
if ($this->data['user_login']) { if ($this->data['user_login']) {
$args['user'] = $this->data['user_login']; $args['user'] = $this->data['user_login'];
} }
}
// Log "Login As" usage // Log "Login As" usage
if (!empty($origname)) { if (!empty($origname)) {