]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiUser/IMAP.php
rcs_id no longer makes sense with Subversion global version number
[SourceForge/phpwiki.git] / lib / WikiUser / IMAP.php
1 <?php //-*-php-*-
2 // rcs_id('$Id$');
3 /* Copyright (C) 2004 $ThePhpWikiProgrammingTeam
4  * This file is part of PhpWiki. Terms and Conditions see LICENSE. (GPL2)
5  */
6
7 class _IMAPPassUser
8 extends _PassUser
9 /**
10  * Define the var IMAP_AUTH_HOST in config/config.ini (with port probably)
11  *
12  * Preferences are handled in _PassUser
13  */
14 {
15     function checkPass($submitted_password) {
16         if (!$this->isValidName()) {
17             if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::checkPass => failed isValidName", E_USER_WARNING);
18             trigger_error(_("Invalid username."),E_USER_WARNING);
19             return $this->_tryNextPass($submitted_password);
20         }
21         if (!$this->_checkPassLength($submitted_password)) {
22             if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::checkPass => failed checkPassLength", E_USER_WARNING);
23             return WIKIAUTH_FORBIDDEN;
24         }
25         $userid = $this->_userid;
26         $mbox = @imap_open( "{" . IMAP_AUTH_HOST . "}",
27                             $userid, $submitted_password, OP_HALFOPEN );
28         if ($mbox) {
29             imap_close($mbox);
30             $this->_authmethod = 'IMAP';
31             if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::checkPass => ok", E_USER_WARNING);
32             $this->_level = WIKIAUTH_USER;
33             return $this->_level;
34         } else {
35             if ($submitted_password != "") { // if LENGTH 0 is allowed
36                 trigger_error(_("Unable to connect to IMAP server "). IMAP_AUTH_HOST,
37                               E_USER_WARNING);
38             }
39         }
40         if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::checkPass => wrong", E_USER_WARNING);
41
42         return $this->_tryNextPass($submitted_password);
43     }
44
45     //CHECKME: this will not be okay for the auth policy strict
46     function userExists() {
47         return true;
48
49         if ($this->checkPass($this->_prefs->get('passwd'))) {
50             if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::userExists => true (pass ok)", E_USER_WARNING);
51             return true;
52         }
53         if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::userExists => false (pass wrong)", E_USER_WARNING);
54         return $this->_tryNextUser();
55     }
56
57     function mayChangePass() {
58         if (DEBUG & _DEBUG_LOGIN) trigger_error(get_class($this)."::mayChangePass => false", E_USER_WARNING);
59         return false;
60     }
61 }
62
63 // Local Variables:
64 // mode: php
65 // tab-width: 8
66 // c-basic-offset: 4
67 // c-hanging-comment-ender-p: nil
68 // indent-tabs-mode: nil
69 // End:
70 ?>