| | |
| | | /* |
| | | +-------------------------------------------------------------------------+ |
| | | | Password Plugin for Roundcube | |
| | | | @version @package_version@ | |
| | | | @version @package_version@ | |
| | | | | |
| | | | Copyright (C) 2009-2010, Roundcube Dev. | |
| | | | | |
| | |
| | | $rcmail = rcmail::get_instance(); |
| | | |
| | | $this->load_config(); |
| | | |
| | | $host = isset( $_SESSION['imap_host'] ) ? $_SESSION['imap_host'] : NULL; |
| | | $hosts = $rcmail->config->get( 'password_supported_hosts' ); |
| | | if ( !empty( $hosts ) and !in_array( $host, $hosts ) { |
| | | |
| | | // Host exceptions |
| | | $hosts = $rcmail->config->get('password_hosts'); |
| | | if (!empty($hosts) && !in_array($_SESSION['storage_host'], $hosts)) { |
| | | return; |
| | | } |
| | | |
| | | // Exceptions list |
| | | // Login exceptions |
| | | if ($exceptions = $rcmail->config->get('password_login_exceptions')) { |
| | | $exceptions = array_map('trim', (array) $exceptions); |
| | | $exceptions = array_filter($exceptions); |
| | |
| | | // Log password change |
| | | if ($rcmail->config->get('password_log')) { |
| | | write_log('password', sprintf('Password changed for user %s (ID: %d) from %s', |
| | | $rcmail->user->get_username(), $rcmail->user->ID, rcmail_remote_ip())); |
| | | $rcmail->get_user_name(), $rcmail->user->ID, rcmail_remote_ip())); |
| | | } |
| | | } |
| | | else { |
| | |
| | | return; |
| | | case PASSWORD_CRYPT_ERROR; |
| | | $reason = $this->gettext('crypterror'); |
| | | break; |
| | | case PASSWORD_CONNECT_ERROR; |
| | | $reason = $this->gettext('connecterror'); |
| | | break; |
| | | case PASSWORD_ERROR: |
| | | default: |
| | | $reason = $this->gettext('internalerror'); |