assign('index_error', 1);
if($errorno == 1){
$smarty->assign('index_error_text', "Es müssen alle Felder ausgefüllt werden");
}
# Bei LDAP wird eine Registrierung automatisch durchgeführt
#if($errorno == 2){
# $smarty->assign('index_error_text', "Ber Benutzername ist im System nicht vorhanden");
#}
if($errorno == 3){
$smarty->assign('index_error_text', "Ber Benutzername oder das Passwort ist nicht korrekt
Stellen Sie sicher, dass Ihr Benutzerkonto in der Hochschule aktiv ist.");
}
# Daten aufbereiten bei Fehler
if(isset($_SESSION["global_username"])){
$smarty->assign('index_user', $_SESSION["global_username"]);
}
}
}
if($action == 'anmeld'){
$username=strtolower($_POST["user"]); //remove case sensitivity on the username
$password=$_POST["password"];
if($_POST["user"] != ""){
$_SESSION["global_username"]=$username;
}
if($username == "" OR $password == ""){
echo "";
}else{
$db = dbconnect();
$query_ldapuser = $db->query("SELECT wert1, wert2 FROM imt_parameter WHERE pid='2'");
$row_ldapuser = $query_ldapuser->fetch_array();
################################
## Prüfe studnet ob Treffer
################################
# bind wird benötigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
$ds=@ldap_connect("141.10.144.37", "389");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$r=@ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
$_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de";
$sr=@ldap_search($ds, $_ldap_dn, "samaccountname=$username");
$info = @ldap_get_entries($ds, $sr);
$anzahl = @ldap_count_entries($ds,$sr);
$vorname = $info[0]['givenname'][0];
$nachname = $info[0]['sn'][0];
$mail = $info[0]['mail'][0];
$first = @ldap_first_entry($ds,$sr);
$distinguishedName = @ldap_get_dn($ds,$first);
$result_jg = $db->query("SELECT ag, jahrgang FROM kurs.stud WHERE lower(uid)='$username'");
$row_jg = $result_jg->fetch_array();
################################
### Wenn binden fehlschlägt, also Passwort falsch
##!!!!! IM STUDNET MIT DEM USERNAMEN BINDEN, IM HSNET MIT DEM DISTINGUISHEDNAME !!!!!!#################
#if ($bind = @ldap_bind($ds, $username, $password) AND $anzahl > 0){
if ($bind = @ldap_bind($ds, $distinguishedName, $password) AND $anzahl > 0){
# Bind funktioniert
#echo "studnet: Bind funktioniert: $anzahl
";
$login = "0";
$login_ad = "studnet";
}else{
# Bind funktioniert nicht
#echo "studnet: Bind funktioniert nicht: $anzahl
";
$login = "1";
ldap_close($ds);
}
#exit;
########
# INFO hsnet: Würde man nur $_ldap_dn = "dc=hsnet,dc=hs-ludwigsburg,dc=de"; angeben ohne OU=OUHochschunetzwerk oä., würde php beim search nichts mehr finden und alle Passwörter akzeptieren
########
################################
## Prüfe OUHochschulnetzwerk ob Treffer, wenn studnet nicht funktioniert
################################
if($login == "1" and $anzahl == "0"){
$ds=@ldap_connect("141.10.128.30", "389");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
# bind wird benötigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
$r=@ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
$_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$sr=@ldap_search($ds, $_ldap_dn, "samaccountname=$username");
$info = @ldap_get_entries($ds, $sr);
$anzahl = @ldap_count_entries($ds,$sr);
$vorname = $info[0]['givenname'][0];
$nachname = $info[0]['sn'][0];
$mail = $info[0]['mail'][0];
$first = @ldap_first_entry($ds,$sr);
$distinguishedName = @ldap_get_dn($ds,$first);
################################
# Bind geht im hsnet nur über den DN "CN=Schwarz\, Alexander, OU=Externe Benutzer, ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"
##!!!!! IM STUDNET MIT DEM USERNAMEN BINDEN, IM HSNET MIT DEM DISTINGUISHEDNAME !!!!!!#################
if ($bind = @ldap_bind($ds, $distinguishedName, $password) AND $anzahl > 0){
#echo "hsnet: Bind funktioniert: $anzahl |$distinguishedName|
";
$login = "0";
$login_ad = "hsnet";
}else{
# Bind funktioniert nicht
$login= "1";
ldap_close($ds);
#echo "hsnet: Bind funktioniert nicht: $anzahl
";
}
}
################################
## Prüfe OURechenzentrum ob Treffer, wenn studnet nicht funktioniert
################################
if($login == "1" and $anzahl == 0){
$ds=@ldap_connect("141.10.128.30", "389");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
# bind wird benötigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
$r=@ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
$_ldap_dn = "ou=OURechenzentrum,dc=hsnet,dc=hs-ludwigsburg,dc=de";
$sr=@ldap_search($ds, $_ldap_dn, "samaccountname=$username");
$info = @ldap_get_entries($ds, $sr);
$anzahl = @ldap_count_entries($ds,$sr);
$vorname = $info[0]['givenname'][0];
$nachname = $info[0]['sn'][0];
$mail = $info[0]['mail'][0];
$first = @ldap_first_entry($ds,$sr);
$distinguishedName = @ldap_get_dn($ds,$first);
################################
# Bind geht im hsnet nur über den DN "CN=Schwarz\, Alexander, OU=Externe Benutzer, ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"
##!!!!! IM STUDNET MIT DEM USERNAMEN BINDEN, IM HSNET MIT DEM DISTINGUISHEDNAME !!!!!!#################
if ($bind = @ldap_bind($ds, $distinguishedName, $password) AND $anzahl > 0){
#echo "RZ: Bind funktioniert: $anzahl
";
$login = "0";
$login_ad = "hsnet";
}else{
# Bind funktioniert nicht
#echo "RZ: Bind funktioniert nicht: $anzahl
";
$login= "1";
ldap_close($ds);
}
}
/*
echo "
distinguishedName = $distinguishedName
anzahl_hs $anzahl
Username $username, $vorname, $nachname, $mail
account: $username, $password
login $login
exit;
*/
# Prüfen, ob der Benutzer ein Passwort in der Datenbank hat
$db = dbconnect();
$result = $db->query("SELECT imtuid, uid, passwort FROM imt_user WHERE lower(uid)='$username'");
$row = $result->fetch_array();
if($row['passwort'] != '' and $anzahl ==0 and $login==1){
if(md5($password) == $row['passwort']){
$login= "0";
$anzahl = 1;
}else{
$login= "1";
$anzahl= "0";
}
}
# echo "$row[uid] -> $row[passwort]";
# exit;
// Wenn expiredate überschritten, dann 1
#$result2 = $db->query("SELECT 1
# FROM imt_user
# WHERE pw_expire < now()
# AND uid = '$row[user]'
# ");
#$row2 = $result2->fetch_array();
# Wenn es den Benutzer nicht gibt, wird bei LDAP automatisch registriert
#if ($username != strtoupper($row[uid])) {
# echo "";
#}
#echo"
#