diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..73758c7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+smarty_tmp/*
diff --git a/config/datenbankanbindung.php b/config/datenbankanbindung.php
index a505f89..67a1346 100644
--- a/config/datenbankanbindung.php
+++ b/config/datenbankanbindung.php
@@ -4,7 +4,6 @@
function dbconnect() //--Prozedur - kein return-Wert
{
$db = @new mysqli( 'localhost', 'root', '', 'ams_stammdaten' );
- //$db = @new mysqli( 'localhost', 'lgadmin', '!S1ge1nA', 'leitgedanken' );
$db->query("set sql_mode = 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'");
$db->set_charset('utf8mb4');
$db->query("SET NAMES 'utf8mb4'");
diff --git a/config/smarty.php b/config/smarty.php
new file mode 100644
index 0000000..e9bbe2d
--- /dev/null
+++ b/config/smarty.php
@@ -0,0 +1,19 @@
+template_dir = SMARTY_DIR.'html';
+ $this->compile_dir = SMARTY_DIR.'smarty_tmp/templates_c';
+ $this->config_dir = SMARTY_DIR.'smarty_tmp/config';
+ $this->cache_dir = SMARTY_DIR.'smarty_tmp/cache';
+ }
+ }
+?>
\ No newline at end of file
diff --git a/controller/admin_login.php b/controller/admin_login.php
index 900e265..fb7ce43 100644
--- a/controller/admin_login.php
+++ b/controller/admin_login.php
@@ -1,174 +1,175 @@
query("DELETE FROM lg_securitytokens
+ if ($_SESSION['angemeldet_bleiben'] == 1) {
+ $identifier = $_COOKIE['identifier'];
+ $securitytoken = $_COOKIE['securitytoken'];
+ $token_neu = sha1($securitytoken);
+ $sql1 = $db->query("DELETE FROM lg_securitytokens
WHERE securitytoken ='$token_neu'
AND identifier = '$identifier'
");
- }
- //Cookies entfernen
- session_destroy();
- setcookie("identifier","",time()-(3600*24*365));
- setcookie("securitytoken","",time()-(3600*24*365));
- header("location:../php/login.php");
+ }
+ //Cookies entfernen
+ session_destroy();
+ setcookie("identifier", "", time() - (3600 * 24 * 365));
+ setcookie("securitytoken", "", time() - (3600 * 24 * 365));
+ header("location:../php/login.php");
}
if ($function == 'login') {
- $mail=mb_strtoupper($_POST["mail"]); //remove case sensitivity on the mail
- $password=$_POST["password"];
-
- # 2 Loginmöglichkeiten: 1) Datenbank ams_stammdaten oder 2) Hochschul-LDAP
-
- if($mail == "" OR $password == ""){
+ $user = mb_strtoupper($_POST["user"]); //remove case sensitivity on the mail
+ $password = $_POST["password"];
+
+ # 2 Loginmöglichkeiten: 1) Datenbank ams_stammdaten oder 2) Hochschul-LDAP
+
+ if ($user == "" OR $password == "") {
echo '
Bitte füllen Sie alle Felder aus!
|***|error';
exit;
- }
-
-## Basislogin für DBs
- $result = $db->query("SELECT sid, uid, mail, pwd, durchgefallen FROM stud WHERE UPPER(mail)='$mail' or uid='$mail'");
- $row = $result->fetch_array();
- if(mysqli_num_rows($result) == 0) {
- echo ' Der Account ist nicht verfügbar!
|***|error';
+ }
+
+
+ $result = $db->query("SELECT sid, uid, mail, pwd, durchgefallen FROM stud WHERE UPPER(mail)='$user' or uid='$user'");
+ $row = $result->fetch_array();
+ if (mysqli_num_rows($result) == 0) {
+ echo ' Der Account ist im Anmeldesystem nicht verfügbar!
|***|error';
exit;
- }else if ($row['durchgefallen'] != 'N'){
+ } else if ($row['durchgefallen'] != 'N') {
echo ' Der Account ist inaktiv!
|***|error';
exit;
- }else if (md5($password) != $row['pwd']){ //verschlüsseltes Passwort überprüfen
- echo ' Bitte prüfen Sie Ihre Zugangsdaten
|***|error';
- exit;
- }else{
+ } else if (studnet($user, $password) or hsnet($user, $password) or md5($password) == $row['pwd']) {
echo " Login wird durchgeführt
|***|success";
- }
-
-
-
-/*
- else if (md5($password) != $row['passwort'] or $row['mail'] == ''){ //verschlüsseltes Passwort überprüfen
+ } else {
echo ' Bitte prüfen Sie Ihre Zugangsdaten
|***|error';
exit;
- }else{
- $VAID = $row['VAID'];
-
- //Möchte der Nutzer angemeldet beleiben?
- if($_POST['angemeldet_bleiben'] == 1) {
-
- $identifier = random_string();
- $securitytoken = random_string();
-
-# $insert = $pdo->prepare("INSERT INTO lg_securitytokens (user_id, identifier, securitytoken) VALUES (:user_id, :identifier, :securitytoken)");
-# $insert->execute(array('user_id' => $user['id'], 'identifier' => $identifier, 'securitytoken' => sha1($securitytoken)));
- $token_neu = sha1($securitytoken);
- $result_1 = $db->query("INSERT INTO lg_securitytokens (VAID, identifier, securitytoken) VALUES ('$VAID', '$identifier', '$token_neu')");
- setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit
- setcookie("securitytoken",$securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit
- $_SESSION['angemeldet_bleiben'] = 1;
- }else{
- $_SESSION['angemeldet_bleiben'] = 0;
- }
-
+ }
+
+
+ /*
+ else if (md5($password) != $row['passwort'] or $row['mail'] == ''){ //verschlüsseltes Passwort überprüfen
+ echo ' Bitte prüfen Sie Ihre Zugangsdaten
|***|error';
+ exit;
+ }else{
+ $VAID = $row['VAID'];
+
+ //Möchte der Nutzer angemeldet beleiben?
+ if($_POST['angemeldet_bleiben'] == 1) {
+
+ $identifier = random_string();
+ $securitytoken = random_string();
+
+ # $insert = $pdo->prepare("INSERT INTO lg_securitytokens (user_id, identifier, securitytoken) VALUES (:user_id, :identifier, :securitytoken)");
+ # $insert->execute(array('user_id' => $user['id'], 'identifier' => $identifier, 'securitytoken' => sha1($securitytoken)));
+ $token_neu = sha1($securitytoken);
+ $result_1 = $db->query("INSERT INTO lg_securitytokens (VAID, identifier, securitytoken) VALUES ('$VAID', '$identifier', '$token_neu')");
+ setcookie("identifier",$identifier,time()+(3600*24*365)); //1 Jahr Gültigkeit
+ setcookie("securitytoken",$securitytoken,time()+(3600*24*365)); //1 Jahr Gültigkeit
+ $_SESSION['angemeldet_bleiben'] = 1;
+ }else{
+ $_SESSION['angemeldet_bleiben'] = 0;
+ }
+
$datum=date("Y-m-d H:i:s");
$ip=getenv("REMOTE_ADDR");
$agent=getenv("HTTP_USER_AGENT");
$_SESSION['userid'] = $VAID;
$_SESSION["global_mail"] = $row['mail'];
$result_1 = $db->query("INSERT INTO userlog (Datum, IP, user_agent, VAID) VALUES ('$datum', '$ip', '$agent', '$VAID')");
- echo " Login wird durchgeführt
|***|success";
- }
- }
-*/
+ echo " Login wird durchgeführt
|***|success";
+ }
+ }
+ */
}
/*
if ($function == 'passwortvergessen') {
- $mailempf = $_POST['email'];
-
- $result_pw = $db->query("SELECT VAID, inaktiv, vorname, nachname, mail FROM admin WHERE UPPER(mail)=UPPER('$mailempf')");
- $row_pw = $result_pw->fetch_array();
-
- if(!isset($_POST['email']) || empty($_POST['email'])) {
- echo ' Bitte geben Sie eine E-Mail-Adresse ein.
|***|error';
- exit;
- } elseif ($row_pw['mail'] == ''){
- echo ' Der Benutzer wurde nicht im System gefunden. Überprüfen Sie die Mailadresse
|***|error';
- exit;
- }elseif($row_pw['inaktiv'] != 'N') {
- echo ' Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error';
- exit;
- }else{
- # function passwort_back
- echo passwort_back($row_pw['VAID']);
- }
+$mailempf = $_POST['email'];
+
+$result_pw = $db->query("SELECT VAID, inaktiv, vorname, nachname, mail FROM admin WHERE UPPER(mail)=UPPER('$mailempf')");
+$row_pw = $result_pw->fetch_array();
+
+if(!isset($_POST['email']) || empty($_POST['email'])) {
+echo ' Bitte geben Sie eine E-Mail-Adresse ein.
|***|error';
+exit;
+} elseif ($row_pw['mail'] == ''){
+echo ' Der Benutzer wurde nicht im System gefunden. Überprüfen Sie die Mailadresse
|***|error';
+exit;
+}elseif($row_pw['inaktiv'] != 'N') {
+echo ' Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error';
+exit;
+}else{
+# function passwort_back
+echo passwort_back($row_pw['VAID']);
+}
}
if ($function == 'resetpasswort') {
-
- $password_new1 = $_POST['password_new1'];
- $password_new2 = $_POST['password_new2'];
- $vaid = $_POST['vaid'];
- $code = $_POST['code'];
- $result = $db->query("SELECT VAID, vorname, nachname, mail, inaktiv, passwortcode, passwortcode_time FROM admin WHERE VAID=$vaid");
- $row = $result->fetch_array();
-
- #Fehlercheck
- if(!isset($vaid) || !isset($code)) {
- echo ' Leider wurde beim Aufruf dieser Website kein Code zum Zurücksetzen des Passworts übermittelt!
|***|error';
- exit;
- }elseif ($row === null || $row['passwortcode'] === null ) {
- echo ' Es wurde kein passender Benutzer gefunden!
|***|error';
- exit;
- }elseif($row['inaktiv'] != 'N') {
- echo ' Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error';
- exit;
- }elseif($row['passwortcode_time'] === null || strtotime($row['passwortcode_time']) < (time()-24*3600) ) {
- echo ' Der Code ist leider abgelaufen. Setzen Sie das Passwort erneut zurück!
|***|error';
- exit;
- }elseif(sha1($code) != $row['passwortcode']) {
- echo ' Der übergebene Code war ungültig.
Stellen Sie sicher, dass Sie den genauen Link in der URL aufrufen.
|***|error';
- exit;
- }elseif ($password_new1 != $password_new2) {
- echo ' Das neue Passwort stimmt nicht mit der Wiederholung überein!
|***|error';
- exit;
- }elseif (strlen($password_new1) < 8) {
- echo ' Das neue Passwort muss mindestens 8 Zeichen haben!
|***|error';
- exit;
- }else{
- $password_md5 = md5($password_new1);
- $update = $db->query("UPDATE admin
- SET passwort ='$password_md5'
- ,passwortcode = NULL
- ,passwortcode_time = NULL
- WHERE VAID=$vaid
- ");
- if (!$update) {
- echo ' Es liegt ein Fehler in der Datenbank vor!
|***|error';
- exit;
- }else{
- echo ' Das Passwort wurde geändert!
|***|success';
- exit;
- }
+$password_new1 = $_POST['password_new1'];
+$password_new2 = $_POST['password_new2'];
+$vaid = $_POST['vaid'];
+$code = $_POST['code'];
- }
+$result = $db->query("SELECT VAID, vorname, nachname, mail, inaktiv, passwortcode, passwortcode_time FROM admin WHERE VAID=$vaid");
+$row = $result->fetch_array();
+
+#Fehlercheck
+if(!isset($vaid) || !isset($code)) {
+echo ' Leider wurde beim Aufruf dieser Website kein Code zum Zurücksetzen des Passworts übermittelt!
|***|error';
+exit;
+}elseif ($row === null || $row['passwortcode'] === null ) {
+echo ' Es wurde kein passender Benutzer gefunden!
|***|error';
+exit;
+}elseif($row['inaktiv'] != 'N') {
+echo ' Der Benutzer ist inaktiv. Melden Sie sich beim Administrator.
|***|error';
+exit;
+}elseif($row['passwortcode_time'] === null || strtotime($row['passwortcode_time']) < (time()-24*3600) ) {
+echo ' Der Code ist leider abgelaufen. Setzen Sie das Passwort erneut zurück!
|***|error';
+exit;
+}elseif(sha1($code) != $row['passwortcode']) {
+echo ' Der übergebene Code war ungültig.
Stellen Sie sicher, dass Sie den genauen Link in der URL aufrufen.
|***|error';
+exit;
+}elseif ($password_new1 != $password_new2) {
+echo ' Das neue Passwort stimmt nicht mit der Wiederholung überein!
|***|error';
+exit;
+}elseif (strlen($password_new1) < 8) {
+echo ' Das neue Passwort muss mindestens 8 Zeichen haben!
|***|error';
+exit;
+}else{
+$password_md5 = md5($password_new1);
+$update = $db->query("UPDATE admin
+SET passwort ='$password_md5'
+,passwortcode = NULL
+,passwortcode_time = NULL
+WHERE VAID=$vaid
+");
+if (!$update) {
+echo ' Es liegt ein Fehler in der Datenbank vor!
|***|error';
+exit;
+}else{
+echo ' Das Passwort wurde geändert!
|***|success';
+exit;
+}
+
+}
}
*/
-?>
+?>
\ No newline at end of file
diff --git a/controller/func_ldap_connect.php b/controller/func_ldap_connect.php
new file mode 100644
index 0000000..ce7c1c2
--- /dev/null
+++ b/controller/func_ldap_connect.php
@@ -0,0 +1,77 @@
+ query("SELECT wert1, wert2 FROM parameter WHERE pid='13'");
+ $row_ldapuser = $query_ldapuser->fetch_array();
+ #hsnet
+ $ds = @ldap_connect("141.10.128.30", "389");
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+ ldap_set_option($ds, LDAP_OPT_NETWORK_TIMEOUT, 1);
+
+ # bind wird benötigt, sonst werden die Umlaute bei Namen nicht richtig angezeigt ?!!?
+ $r = @ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
+ if ($r) {
+ $_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de";
+ $sr = @ldap_search($ds, $_ldap_dn, "samaccountname=$user");
+ $info = @ldap_get_entries($ds, $sr);
+ $anzahl = ldap_count_entries($ds, $sr);
+
+ if ($anzahl > 0) {
+ $first = ldap_first_entry($ds, $sr);
+ $distinguishedName = ldap_get_dn($ds, $first);
+ if (@ldap_bind($ds, $distinguishedName, $password)) {
+ ldap_close($ds);
+ return TRUE;
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+
+}
+
+
+function studnet($user, $password)
+{
+ $db = dbconnect();
+ $query_ldapuser = $db->query("SELECT wert1, wert2 FROM parameter WHERE pid='13'");
+ $row_ldapuser = $query_ldapuser->fetch_array();
+ # Studnet
+ $ds = ldap_connect("141.10.144.37", "389");
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+ ldap_set_option($ds, LDAP_OPT_NETWORK_TIMEOUT, 1);
+ $r = @ldap_bind($ds, $row_ldapuser['wert1'], $row_ldapuser['wert2']);
+ if ($r) {
+ $_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de";
+ $sr = @ldap_search($ds, $_ldap_dn, "samaccountname=$user");
+ $info = @ldap_get_entries($ds, $sr);
+ $anzahl = ldap_count_entries($ds, $sr);
+ if ($anzahl > 0) {
+ $first = ldap_first_entry($ds, $sr);
+ $distinguishedName = ldap_get_dn($ds, $first);
+ if (@ldap_bind($ds, $distinguishedName, $password)) {
+ ldap_close($ds);
+ return true;
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+ } else {
+ ldap_close($ds);
+ return false;
+ }
+}
+?>
\ No newline at end of file
diff --git a/html/login.html b/html/login.html
index bca478e..0ed97cd 100644
--- a/html/login.html
+++ b/html/login.html
@@ -53,7 +53,7 @@
@@ -85,14 +84,14 @@
{$index_list}
-
+
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..ad14005
--- /dev/null
+++ b/index.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/js/components/admin_login.js b/js/components/admin_login.js
index 494888b..65eda11 100644
--- a/js/components/admin_login.js
+++ b/js/components/admin_login.js
@@ -1,5 +1,5 @@
function login(){
- var mail = document.getElementById("mail").value;
+ var user = document.getElementById("user").value;
var password = document.getElementById("password").value;
// var angemeldet_bleiben = document.getElementById("angemeldet_bleiben");
@@ -14,14 +14,14 @@ function login(){
url: '../controller/admin_login.php',
data: {
'function': 'login',
- 'mail': mail,
+ 'user': user,
'password': password
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
- document.getElementById("mail").value ="";
+ document.getElementById("user").value ="";
document.getElementById("password").value ="";
$('#msg').show().delay(1000).fadeOut(500);
$('#msg').html(a[0]);
diff --git a/php/login.php b/php/login.php
index 5a98d87..4ca5891 100644
--- a/php/login.php
+++ b/php/login.php
@@ -1,15 +1,11 @@
setTemplateDir('../html')
- ->setCompileDir('../smarty_tmp/templates_c')
- ->setCacheDir('../smarty_tmp/cache');
+include_once '../config/smarty.php';
+$smarty = new SmartyAdmin();
require_once("../config/datenbankanbindung.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
+
$smarty->display("$templatename");
?>
diff --git a/smarty_tmp/templates_c/f9e2b78800181bf212fe0ef2309814fa6ee1285d_0.file_login.html.php b/smarty_tmp/templates_c/f9e2b78800181bf212fe0ef2309814fa6ee1285d_0.file_login.html.php
deleted file mode 100644
index e5b50c0..0000000
--- a/smarty_tmp/templates_c/f9e2b78800181bf212fe0ef2309814fa6ee1285d_0.file_login.html.php
+++ /dev/null
@@ -1,235 +0,0 @@
-getCompiled()->isFresh($_smarty_tpl, array (
- 'version' => '5.0.0-rc1',
- 'unifunc' => 'content_6544b87728a874_63054470',
- 'has_nocache_code' => false,
- 'file_dependency' =>
- array (
- 'f9e2b78800181bf212fe0ef2309814fa6ee1285d' =>
- array (
- 0 => 'login.html',
- 1 => 1699002485,
- 2 => 'file',
- ),
- ),
- 'includes' =>
- array (
- ),
-))) {
-function content_6544b87728a874_63054470 (\Smarty\Template $_smarty_tpl) {
-$_smarty_current_dir = 'C:\\xampp_8.2.4\\htdocs\\kurs\\login\\html';
-?>
-
-
-
-
-
Login Anmeldesysteme
-
-
-
-
-
-
-
- src="../jquery/jquery-3.4.1.min.js">
->
-
-
- src="../bootstrap/data-table/datatables.min.js">
->
-
- type="text/javascript" src="../bootstrap/data-table/moment.mon.js">
->
-
- type="text/javascript" src="../bootstrap/data-table/datetime-moment.js">
->
-
-
-
- src="../js/all.js" crossorigin="anonymous">
->
-
-
-
-
-
-
-
-
-
-
-
-
-
- src="../bootstrap/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js">
->
-
- src="../assets/vendor/js/helpers.js">
->
-
-
-
- src="../assets/js/config.js">
->
-
->
- $(function() {
- $("#mail").focus();
- });
-
- $(document).ready(function(){
- $('[data-toggle="popover"]').popover();
- $
- });
-
->
-
-
-
-
-
- TEST
-
- src="../js/components/admin_login.js">
->
-
-
-
-
-
-
-
-
- Login Anmeldesysteme
-
-
-
getValue('index_list');?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- src="../assets/vendor/libs/popper/popper.js">
->
-
- src="../assets/vendor/js/bootstrap.js">
->
-
- src="../assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js">
->
-
- src="../assets/vendor/js/menu.js">
->
-
-
-
-
- src="../assets/js/main.js">
->
-
-
->
- var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
- var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
- return new bootstrap.Popover(popoverTriggerEl)
- })
-
->
-
-
- async defer src="../assets/js/buttons.js">
->
-
-
-
- type="text/javascript">
- function keysave(ele) {
- if(event.key === 'Enter') {
- login();
- }
- }
-
->
-
-
-