c5bc73178cf6ca6494b0bd4360964ae18cfa5406
[ldapsaisie.git] / public_html / includes / class / class.LSauthHTTP.php
1 <?php
2 /*******************************************************************************
3  * Copyright (C) 2007 Easter-eggs
4  * http://ldapsaisie.labs.libre-entreprise.org
5  *
6  * Author: See AUTHORS file in top-level directory.
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 version 2
10  * as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 ******************************************************************************/
22
23 /**
24  * Gestion de l'authentification d'un utilisateur suite √† une authentification 
25  * HTTP
26  *
27  * @author Benjamin Renard <brenard@easter-eggs.com>
28  */
29 class LSauthHTTP extends LSauth {
30   
31   var $params = array (
32     'displayLoginForm' => false,
33     'displayLogoutBtn' => false
34   );
35   
36   /**
37    * Check Post Data
38    * 
39    * @retval array|False Array of post data if exist or False
40    **/
41   public function getPostData() {
42     if (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER'])) {
43       $this -> authData = array(
44         'username' => $_SERVER['PHP_AUTH_USER'],
45         'password' => $_SERVER['PHP_AUTH_PW'],
46         'ldapserver' => $_REQUEST['LSsession_ldapserver'],
47         'topDn' => $_REQUEST['LSsession_topDn']
48       );
49       return true;
50     }
51     return;
52   }
53   
54   /**
55    * Check user login
56    *
57    * @param[in] $username The username
58    * @param[in] $password The password
59    *
60    * @retval LSldapObject|false The LSldapObject of the user authificated or false 
61    */
62   public function authenticate() {
63     if (LSsession :: loadLSobject(LSsession :: $ldapServer['authObjectType'])) {
64       $authobject = new LSsession :: $ldapServer['authObjectType']();
65       $result = $authobject -> searchObject(
66         $this ->  authData['username'],
67         LSsession :: getTopDn(),
68         LSsession :: $ldapServer['authObjectFilter']
69       );
70       $nbresult=count($result);
71       
72       if ($nbresult==0) {
73         // identifiant incorrect
74         LSdebug('identifiant incorrect');
75         LSerror :: addErrorCode('LSauth_01');
76       }
77       else if ($nbresult>1) {
78         // duplication d'authentit√©
79         LSerror :: addErrorCode('LSauth_02');
80       }
81       else {
82         // Authentication succeeded
83         return $result[0];
84       }
85     }
86     else {
87       LSerror :: addErrorCode('LSauth_03');
88     }
89     return;
90   }
91   
92 }
93 ?>