summaryrefslogtreecommitdiff
path: root/classes/auth
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-12-27 10:26:04 +0400
committerAndrew Dolgov <[email protected]>2012-12-27 10:26:04 +0400
commit04cdc8023d943a40f9581de98b352557af56f632 (patch)
treef57ef287e6e860e10c4a1d5fd7e0d3c9544cbfcf /classes/auth
parent23f36f75abc5942fed34b433ad39fdfad6b05f69 (diff)
add IMAP authenticator module (closes #485)
Diffstat (limited to 'classes/auth')
-rw-r--r--classes/auth/imap.php32
1 files changed, 32 insertions, 0 deletions
diff --git a/classes/auth/imap.php b/classes/auth/imap.php
new file mode 100644
index 000000000..52664eb3e
--- /dev/null
+++ b/classes/auth/imap.php
@@ -0,0 +1,32 @@
+<?php
+/* Requires php-imap
+ Put the following options in config.php:
+
+ define('IMAP_AUTH_SERVER', 'your.imap.server:port');
+ define('IMAP_AUTH_OPTIONS', '/tls/novalidate-cert/norsh');
+ // More about options: http://php.net/manual/ru/function.imap-open.php
+
+ */
+
+class Auth_Imap extends Auth_Base {
+
+ function authenticate($login, $password) {
+
+ if ($login && $password) {
+ $imap = imap_open(
+ "{".IMAP_AUTH_SERVER.IMAP_AUTH_OPTIONS."}INBOX",
+ $login,
+ $password);
+
+ if ($imap) {
+ imap_close($imap);
+
+ return $this->auto_create_user($login);
+ }
+ }
+
+ return false;
+ }
+
+}
+?>