26 |
|
|
27 |
session_start(); |
session_start(); |
28 |
|
|
29 |
$logged_in = $HTTP_SESSION_VARS['me']; |
$logged_in = (isset($_SESSION['me'])) ? $_SESSION['me'] : false; |
30 |
$login = $HTTP_POST_VARS['login']; |
$login = (isset($_POST['login'])) ? $_POST['login'] : false; |
31 |
$logout = $HTTP_GET_VARS['logout']; |
$passd = (isset($_POST['passd'])) ? $_POST['passd'] : false; |
32 |
|
$logout = (isset($_GET['logout'])) ? true : false; |
33 |
|
|
34 |
$auth = FALSE; |
$auth = FALSE; |
35 |
$output = FALSE; |
$output = FALSE; |
36 |
$admin = FALSE; |
$admin = FALSE; |
37 |
$showform = TRUE; |
$showform = TRUE; |
38 |
|
|
39 |
|
function authlog($type,$path="logs") { |
40 |
|
global $S; |
41 |
|
$S->assign('type',$type); |
42 |
|
$log = $S->fetch('logline.tpl'); |
43 |
|
$fp = @fopen("$path/.auth.log", "a+"); |
44 |
|
if ($fp) { |
45 |
|
while (!flock($fp,2) and ($i < 30)) { sleep(2); $i++; } |
46 |
|
@fputs($fp,"$log\n"); |
47 |
|
flock($fp,3); |
48 |
|
@fclose($fp); |
49 |
|
} |
50 |
|
} |
51 |
|
|
52 |
if (!$logged_in or $logout) { |
if (!$logged_in or $logout) { |
53 |
if ($logout) { |
if ($logout) { |
54 |
authlog("Logout - $me",$logdir); |
authlog("Logout - ".$_SESSION['me'],$logdir); |
55 |
session_destroy(); |
session_destroy(); |
56 |
$output = "Votre session a été detruite."; |
$output = "Votre session a été detruite."; |
57 |
} elseif ($login && $pass) { |
} elseif ($login && $passd) { |
58 |
$cf = $conf['ludap']; |
$cf = $conf['ludap']; |
59 |
$conn = ldap_connect($cf['host']) or die("Hôte LDAP innaccessible !<hr>GULP!"); |
$conn = ldap_connect($cf['host']) or die("Hôte LDAP innaccessible !<hr>GULP!"); |
60 |
if (@ldap_bind($conn,$cf['baseattr']."=$login,".$cf['basedn'],$pass)) { |
$binddn = $cf['baseattr']."=".utf8_encode($login).", ".$cf['basedn']; |
61 |
|
if (@ldap_bind($conn,$binddn,$passd)) { |
62 |
$i = ldap_search($conn,$cf['basedn'],$cf['baseattr']."=$login",array('cn','dn')); |
$i = ldap_search($conn,$cf['basedn'],$cf['baseattr']."=$login",array('cn','dn')); |
63 |
$ii = ldap_first_entry($conn,$i); |
$ii = ldap_first_entry($conn,$i); |
64 |
$ccn = @ldap_get_values($conn,$ii,'cn'); |
$ccn = @ldap_get_values($conn,$ii,'cn'); |
72 |
$cn = $ccn[0]; |
$cn = $ccn[0]; |
73 |
$auth = TRUE; |
$auth = TRUE; |
74 |
$me = $login; |
$me = $login; |
75 |
|
$pass = $passd; |
76 |
session_register('me','cn','pass','gps'); |
session_register('me','cn','pass','gps'); |
77 |
authlog("Login - $login",$logdir); |
authlog("Login - $login",$logdir); |
78 |
} else { |
} else { |
85 |
} |
} |
86 |
} else { |
} else { |
87 |
$auth = TRUE; |
$auth = TRUE; |
88 |
|
$me = $logged_in; |
89 |
} |
} |
90 |
|
|
91 |
if ((!$conf['global']['open'] and !$auth) or $identify) { ?> |
if ((!$conf['global']['open'] and !$auth) or $identify) { |
92 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
$S->assign('showform',$showform); |
93 |
<html><head><title>Auth <? echo $conf['global']['site']; ?></title> |
$S->assign('output',$output); |
94 |
<link rel="stylesheet" type="text/css" href="ludap.css"></head> |
|
95 |
<body onLoad="document.authform.login.focus()" AUTOCOMPLETE="off"> |
$S->display('login.tpl'); |
96 |
<table width="100%" height="100%" border="0"><tr><td align="center" valign="middle"> |
echo "<pre>";print_r(get_defined_vars());echo "</pre>"; |
97 |
<table border="0"><tr><td> |
/* |
98 |
<? if ($showform) { ?> |
*/ |
99 |
<FORM NAME="authform" ACTION="<? echo $PHP_SELF ?>" METHOD="post" class="area" style="text-align:right;"> |
exit; |
100 |
<? if (!empty($output)) { ?> |
} |
101 |
<div class="msgok"><? echo $output; ?></div> |
?> |
|
<? } ?> |
|
|
<div style="font-size:140%;"><b>Identification <? echo $conf['global']['site']; ?></b></div> |
|
|
<div>login <INPUT TYPE="text" NAME="login" VALUE="<? echo $login; ?>" class="act"></div> |
|
|
<div>password <INPUT TYPE="password" NAME="pass" class="act"></div> |
|
|
<div class=""> <INPUT TYPE="submit" NAME="action" VALUE="login" class="act"></div> |
|
|
</form> |
|
|
<? } ?> |
|
|
</td></tr></table> |
|
|
</td></tr></table> |
|
|
<? /* <pre><? print_r(get_defined_vars()); ?></pre> */ ?> |
|
|
</body></html> |
|
|
<? exit; } ?> |
|