ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f87
ilAuthContainerDatabase Class Reference

Storage driver for fetching login data from a database. More...

+ Inheritance diagram for ilAuthContainerDatabase:
+ Collaboration diagram for ilAuthContainerDatabase:

Public Member Functions

 ilAuthContainerDatabase ($dsn)
 
 getUser ($username)
 
 fetchData ($username, $password, $isChallengeResponse=false)
 
 setObserversEnabled ($boolean)
 Enables/disables the observers of this container. More...
 
 isObserversEnabled ()
 Returns true, if the observers of this container are enabled. More...
 
 loginObserver ($a_username)
 Called from Auth after successful login. More...
 
 failedLoginObserver ()
 Called from Auth after failed login. More...
 
- Public Member Functions inherited from Auth_Container_MDB2
 Auth_Container_MDB2 ($dsn)
 Constructor of the container class. More...
 
 _connect ($dsn)
 Connect to database by using the given DSN string. More...
 
 _prepare ()
 Prepare database connection. More...
 
 query ($query)
 Prepare query to the database. More...
 
 _setDefaults ()
 Set some default options. More...
 
 _parseOptions ($array)
 Parse options passed to the container class. More...
 
 _quoteDBFields ()
 Quote the db_fields option to avoid the possibility of SQL injection. More...
 
 fetchData ($username, $password, $isChallengeResponse=false)
 Get user information from database. More...
 
 listUsers ()
 Returns a list of users from the container. More...
 
 addUser ($username, $password, $additional="")
 Add user to the storage container. More...
 
 removeUser ($username)
 Remove user from the storage container. More...
 
 changePassword ($username, $password)
 Change password for user in the storage container. More...
 
 supportsChallengeResponse ()
 Determine if this container supports password authentication with challenge response. More...
 
 getCryptType ()
 Returns the selected crypt type for this container. More...
 
- Public Member Functions inherited from Auth_Container
 Auth_Container ()
 Constructor. More...
 
 fetchData ($username, $password, $isChallengeResponse=false)
 Fetch data from storage container. More...
 
 verifyPassword ($password1, $password2, $cryptType="md5")
 Crypt and verfiy the entered password. More...
 
 supportsChallengeResponse ()
 Returns true if the container supports Challenge Response password authentication. More...
 
 getCryptType ()
 Returns the crypt current crypt type of the container. More...
 
 listUsers ()
 List all users that are available from the storage container. More...
 
 getUser ($username)
 Returns a user assoc array. More...
 
 addUser ($username, $password, $additional=null)
 Add a new user to the storage container. More...
 
 removeUser ($username)
 Remove user from the storage container. More...
 
 changePassword ($username, $password)
 Change password for user in the storage container. More...
 
 log ($message, $level=AUTH_LOG_DEBUG)
 Log a message to the Auth log. More...
 
- Public Member Functions inherited from ilAuthContainerBase
 loginObserver ($a_username, $a_auth)
 Called after successful login. More...
 
 failedLoginObserver ($a_username, $a_auth)
 Called after failed login. More...
 
 checkAuthObserver ($a_username, $a_auth)
 Called after check auth requests. More...
 
 logoutObserver ($a_username, $a_auth)
 Called after logout. More...
 
 supportsCaptchaVerification ()
 Returns whether or not the auth container supports the verification of captchas This should be true for those auth methods, which are available in the default login form. More...
 

Static Public Member Functions

static toUsernameWithoutDomain ($username)
 Static function removes Microsoft domain name from username. More...
 

Private Attributes

 $isObserversEnabled
 

Additional Inherited Members

- Data Fields inherited from Auth_Container_MDB2
 $options = array()
 
 $db = null
 
 $dsn = ''
 
 $activeUser = ''
 
- Data Fields inherited from Auth_Container
 $activeUser = ""
 User that is currently selected from the storage container. More...
 
 $_auth_obj = null
 The Auth object this container is attached to. More...
 

Detailed Description

Storage driver for fetching login data from a database.

This driver strips leading Microsoft Windows domain names from the user name.

For example: hsw hsw/wrandels and wrandels refer all to the login name wrandels.

This storage driver can use all databases which are supported by the PEAR DB abstraction layer to fetch login data.

Usage note: If you use an ilAuthContainerMDB2 object as the container for an Auth object you MUST call setEnableObservers(true) on the ilAuthContainerMDB2 object. The observers are used to perform actions depending on the success or failure of a login attempt.

Author
Werner Randelshofer, Lucerne University of Applied Sciences and Arts, werne.nosp@m.r.ra.nosp@m.ndels.nosp@m.hofe.nosp@m.r@hsl.nosp@m.u.ch
Version
$Id$
Deprecated:
Will be replace by ilAuthContainerMDB in Services/Database

Definition at line 27 of file class.ilAuthContainerDatabase.php.

Member Function Documentation

◆ failedLoginObserver()

ilAuthContainerDatabase::failedLoginObserver ( )

Called from Auth after failed login.

Parameters
stringusername

Definition at line 126 of file class.ilAuthContainerDatabase.php.

References $ilLog.

Referenced by fetchData().

127  {
128  global $ilLog;
129  $ilLog->write(__METHOD__.': login failed'.
130  ', remote:'.$_SERVER['REMOTE_ADDR'].':'.$_SERVER['REMOTE_PORT'].
131  ', server:'.$_SERVER['SERVER_ADDR'].':'.$_SERVER['SERVER_PORT']
132  );
133  }
+ Here is the caller graph for this function:

◆ fetchData()

ilAuthContainerDatabase::fetchData (   $username,
  $password,
  $isChallengeResponse = false 
)

Definition at line 51 of file class.ilAuthContainerDatabase.php.

References failedLoginObserver(), isObserversEnabled(), loginObserver(), and toUsernameWithoutDomain().

52  {
54 
55  $isSuccessful = parent::fetchData($username, $password, $isChallengeResponse);
56  if ($this->isObserversEnabled)
57  {
58  if ($isSuccessful)
59  {
60  $this->loginObserver($username);
61  }
62  else
63  {
64  $this->failedLoginObserver();
65  }
66  }
67  return $isSuccessful;
68  }
loginObserver($a_username)
Called from Auth after successful login.
static toUsernameWithoutDomain($username)
Static function removes Microsoft domain name from username.
isObserversEnabled()
Returns true, if the observers of this container are enabled.
failedLoginObserver()
Called from Auth after failed login.
+ Here is the call graph for this function:

◆ getUser()

ilAuthContainerDatabase::getUser (   $username)

Definition at line 43 of file class.ilAuthContainerDatabase.php.

References toUsernameWithoutDomain().

44  {
46 
47  // Fetch the data
48  return parent::getUser($username);
49  }
static toUsernameWithoutDomain($username)
Static function removes Microsoft domain name from username.
+ Here is the call graph for this function:

◆ ilAuthContainerDatabase()

ilAuthContainerDatabase::ilAuthContainerDatabase (   $dsn)

Definition at line 38 of file class.ilAuthContainerDatabase.php.

References Auth_Container_MDB2\$dsn, and Auth_Container_MDB2\Auth_Container_MDB2().

39  {
40  $this->Auth_Container_MDB2($dsn);
41  }
Auth_Container_MDB2($dsn)
Constructor of the container class.
Definition: MDB2.php:86
+ Here is the call graph for this function:

◆ isObserversEnabled()

ilAuthContainerDatabase::isObserversEnabled ( )

Returns true, if the observers of this container are enabled.

Definition at line 101 of file class.ilAuthContainerDatabase.php.

References $isObserversEnabled.

Referenced by fetchData(), and setObserversEnabled().

+ Here is the caller graph for this function:

◆ loginObserver()

ilAuthContainerDatabase::loginObserver (   $a_username)

Called from Auth after successful login.

Parameters
stringusername

Definition at line 112 of file class.ilAuthContainerDatabase.php.

References $ilLog.

Referenced by fetchData().

113  {
114  global $ilLog;
115  $ilLog->write(__METHOD__.': logged in as '.$a_username.
116  ', remote:'.$_SERVER['REMOTE_ADDR'].':'.$_SERVER['REMOTE_PORT'].
117  ', server:'.$_SERVER['SERVER_ADDR'].':'.$_SERVER['SERVER_PORT']
118  );
119  }
+ Here is the caller graph for this function:

◆ setObserversEnabled()

ilAuthContainerDatabase::setObserversEnabled (   $boolean)

Enables/disables the observers of this container.

Definition at line 93 of file class.ilAuthContainerDatabase.php.

References isObserversEnabled().

94  {
95  $this->isObserversEnabled = $boolean;
96  }
isObserversEnabled()
Returns true, if the observers of this container are enabled.
+ Here is the call graph for this function:

◆ toUsernameWithoutDomain()

static ilAuthContainerDatabase::toUsernameWithoutDomain (   $username)
static

Static function removes Microsoft domain name from username.

Definition at line 73 of file class.ilAuthContainerDatabase.php.

Referenced by fetchData(), and getUser().

74  {
75  // Remove all characters including the last slash or the last backslash
76  // in the username
77  $pos = strrpos($username, '/');
78  $pos2 = strrpos($username, '\\');
79  if ($pos === false || $pos < $pos2)
80  {
81  $pos = $pos2;
82  }
83  if ($pos !== false)
84  {
85  $username = substr($username, $pos + 1);
86  }
87  return $username;
88  }
+ Here is the caller graph for this function:

Field Documentation

◆ $isObserversEnabled

ilAuthContainerDatabase::$isObserversEnabled
private

Definition at line 36 of file class.ilAuthContainerDatabase.php.

Referenced by isObserversEnabled().


The documentation for this class was generated from the following file: