ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilAuthContainerMDB2.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2006 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
24 include_once 'Auth/Container/MDB2.php';
25 
36 {
37 
41  public function __construct()
42  {
43  global $ilClientIniFile, $ilDB, $ilIliasIniFile;
44 
45  $options['dsn'] = $ilDB->getDSN();
46  $options['table'] = $ilClientIniFile->readVariable('auth', 'table');
47  $options['usernamecol'] = $ilClientIniFile->readVariable('auth', 'usercol');
48  $options['passwordcol'] = $ilClientIniFile->readVariable('auth', 'passcol');
49 
50  // studip mode: check against submitted md5 password for ilSoapUserAdministration::login()
51  // todo: check whether we should put this to another place
52  if (isset($_POST['password']) && preg_match('/^[a-f0-9]{32,32}$/i', $_POST['password']))
53  {
54  if ($ilIliasIniFile->readVariable('server', 'studip'))
55  {
56  $options['cryptType'] = 'none';
57  }
58  }
59 
61  }
62 
63 
67  public static function toUsernameWithoutDomain($username)
68  {
69  // Remove all characters including the last slash or the last backslash
70  // in the username
71  $pos = strrpos($username, '/');
72  $pos2 = strrpos($username, '\\');
73  if ($pos === false || $pos < $pos2)
74  {
75  $pos = $pos2;
76  }
77  if ($pos !== false)
78  {
79  $username = substr($username, $pos + 1);
80  }
81  return $username;
82  }
83 
84 
90  public function loginObserver($a_username,$a_auth)
91  {
92  $usr_id = ilObjUser::_lookupId($a_username);
93  $auth_mode = ilObjUser::_lookupAuthMode($usr_id);
94  $auth_id = ilAuthUtils::_getAuthMode($auth_mode);
95 
96  $GLOBALS['ilLog']->write(__METHOD__.': auth id = ' . $auth_id);
97 
98  switch($auth_id)
99  {
100  case AUTH_APACHE:
101  case AUTH_LOCAL:
102  return true;
103 
104  default:
106  {
107  return true;
108  }
109  }
110 
111 
112  $a_auth->status = AUTH_WRONG_LOGIN;
113  $a_auth->logout();
114 
115  return false;
116  }
117 }
118 ?>