<?php include_once 'classes/TestProjektSmarty.class.php'; require_once("config.inc.php"); $templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html"; $smarty = new Smarty(); require_once "language/german.inc.php"; require_once "validation/func_validEmail.php"; require_once "func_genUser.php"; require_once("func_verlauf.php"); require_once("func_gutachter_entscheid.php"); require_once("func_gutachter_status.php"); require_once("func_mail_einstell.php"); require_once("func_rechte_vergabe.php"); $action = $_GET['action']; if(isset($_GET['id'])){ $_SESSION["edit_id"] = $_GET['id']; $search_prefix = 'gutachterbenennung_'; $search_len = strlen($search_prefix); foreach( $_SESSION as $key => $value){ if ( substr( $key, 0, $search_len) == $search_prefix) { unset( $_SESSION[$key]); } } } if($action == ''){ if($_GET['error'] == 1){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte füllen Sie alle Pflichtfelder aus."); if($_SESSION["gutachterbenennung_user_gutachter"] == ""){$smarty->assign('gutachterbenennung_user_gutachter_ico', 1);} } $id = $_SESSION["edit_id"]; $query1 = "SELECT a.gid, vorname, nachname, date_format(frist_datum, '%d.%m.%Y') frist_tag, date_format(frist_datum_abgabe, '%d.%m.%Y') frist_datum_abgabe FROM imt_gutachter a, imt_user b WHERE a.imtuid=b.imtuid AND a.vid='$id' ORDER BY nachname ASC"; $result1 = $db->query ($query1) or die ("Cannot execute query"); $table_data1 = array(); ### Status des Gutachtens ### Berechnen, ob bereits entschieden ist, da die Mehrzahl der Stimmen bereits abgegeben wurde $gutachter = new gutachter(); while ($row1 = $result1->fetch_array()){ gutachter_entscheid($uid, $row1[gid], $id); $status = $gutachter -> gutachter_status($row1[gid]); $status_klartext = $gutachter -> gutachter_status_klartext($row1[gid], $status); #/* Gutachter muss nicht mehr vom Ausschuss genehmigt werden # if($status == '1' OR $status == '2' OR $status == '3' OR $status == '4' OR $status == '5'){ # # Briefsymbol um Gutachter anzuschreiben anzeigen # $gutachterbrief = 1; # }else{ # $gutachterbrief = 0; # } #*/ # Es kann gleich das Briefsymbol eingeblendet werden ohne Ausschuss $gutachterbrief = 1; if($row1[frist_datum_abgabe] == '00.00.0000'){ $abgabefrist = "Gutachter noch nicht angeschrieben"; }else{ $abgabefrist = $row1[frist_datum_abgabe]; } array_push($table_data1, array( 'gid' => $row1[gid], 'vorname' => $row1[vorname], 'nachname' => $row1[nachname], 'status' => $status, 'status_klartext' => $status_klartext, 'gutachterbrief' => $gutachterbrief, 'frist_tag' => $row1[frist_tag], 'frist_datum_abgabe' => $abgabefrist ) ); } $smarty->assign('table_data1', $table_data1); $query2 = "SELECT imtuid, vorname, nachname FROM imt_user ORDER BY nachname ASC"; $result2 = $db->query ($query2) or die ("Cannot execute query2"); $table_data2 = array(); while ($row2 = $result2->fetch_array()){ $query_dis_gut = $db->query("SELECT count(*) Anz FROM imt_gutachter WHERE vid='$id' AND imtuid='$row2[imtuid]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row_dis_gut = $query_dis_gut->fetch_array(); if($row_dis_gut['Anz'] > 0){ $disable_gut = 1; }else{ $disable_gut = 0; } $query_dis_bet = $db->query("SELECT count(*) Anz FROM imt_beteiligte WHERE vid='$id' AND imtuid='$row2[imtuid]'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row_dis_bet = $query_dis_bet->fetch_array(); if($row_dis_bet['Anz'] > 0){ $disable_bet = 1; }else{ $disable_bet = 0; } if($row2['imtuid'] == $_GET['userid']){ $selected = 1; }else{ $selected = 0; } array_push($table_data2, array( 'imtuid' => $row2['imtuid'], 'vorname' => $row2['vorname'], 'nachname' => $row2['nachname'], 'disable_bet' => $disable_bet, 'disable_gut' => $disable_gut, 'selected' => $selected ) ); } $smarty->assign('table_data2', $table_data2); } if($action == 'balance'){ if(isset($_POST["user_gutachter"])){ $user_gutachter = $_POST["user_gutachter"]; $_SESSION["gutachterbenennung_user_gutachter"] = $user_gutachter; } if($user_gutachter == ""){ echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?error=1\">"; }elseif($user_gutachter == "S"){ # Gutachter soll ein Student sein echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">"; }elseif($user_gutachter == "P" OR $user_gutachter == "V"){ # Gutachter soll ein Professor oder Verwaltungsmitarbeiter echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">"; }elseif($user_gutachter == "L"){ # Gutachter soll ein Lehrbeauftragter ohne LDAP sein echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3\">"; }elseif($user_gutachter == "R"){ # Beteiligter soll ein Mitarbeiter des Rechenzentrums sein echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap1\">"; }else{ # Wenn ein konkreter Benutzer ausgewählt wurde echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=frist\">"; } } if($action == 'ldap2'){ $suchstring=utf8_decode($_POST['suchstring']); $suchpfad=$_POST['suchpfad']; $result_ldap = $db->query("SELECT wert1 user, wert2 passwd FROM imt_parameter WHERE pid='2' LIMIT 1"); $row_ldap = $result_ldap->fetch_array(); $_ad_username="$row_ldap[user]"; $_ad_password="$row_ldap[passwd]"; $user_gutachter = $_SESSION["gutachterbenennung_user_gutachter"]; if($user_gutachter == "P" OR $user_gutachter == "V"){ $_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.128.30", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if($user_gutachter == "S"){ $_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.144.37", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if($user_gutachter == "R"){ $_ldap_dn = "ou=OURechenzentrum,dc=hsnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.128.30", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if ($ds) { $r=ldap_bind($ds, $_ad_username, $_ad_password); // Suchen des Nachnamen-Eintrags #$suchstring2=$suchstring; #$sr=ldap_search($ds,"o=fhov", "cn=$suchstring"); $sr=ldap_search($ds, $_ldap_dn, "$suchpfad=$suchstring"); $anzahl = ldap_count_entries($ds,$sr); $info = ldap_get_entries($ds, $sr); $table_data3 = array(); for ($i=0; $i<$info["count"]; $i++) { //$dn enthält dn-string ==> 'cn=test,ou=extern,o=fhov': Nachfolgende Zeilen nur ou extrahieren $uid = $info[$i]['samaccountname'][0]; $vorname = $info[$i]['givenname'][0]; $nachname = $info[$i]['sn'][0]; $dn = $info[$i][dn]; $mail = $info[$i]['mail'][0]; $b = strpos ($dn, "OU=")+3; // Position bestimmen wo ou anfängt, +3 damit "ou=" nicht mitangezeigt wird, also Positon um 3 nach recht verschoben wird if($user_gutachter == "P" OR $user_gutachter == "V"){ # Bei Mitarbeiter: CN=Rieth\, Wolfgang,OU=Verwaltung,OU=Mitarbeiter,OU=OUHochschulnetzwerk,DC=hsnet,DC=hs-ludwigsburg,DC=de $c = strpos ($dn, ",OU=Mitarbeiter"); // Position bestimmen woe ,o= anfängt if($c == ""){ # Bei externen: CN=Schwarz\, Alexander,OU=Externe Benutzer,OU=OUHochschulnetzwerk,DC=hsnet,DC=hs-ludwigsburg,DC=de $c = strpos ($dn, ",OU=OUHochschulnetzwerk"); // Position bestimmen woe ,o= anfängt } } if($user_gutachter == "S"){ $c = strpos ($dn, ",OU=Benutzer"); // Position bestimmen woe ,o= anfängt } $d = $c-$b; // beide Werte subrahieren, dann erhält man die Länge von ou $gruppe = substr($dn, $b, $d); array_push($table_data3, array( 'uid' => $uid, 'vorname' => $vorname, 'nachname' => $nachname, 'gruppe' => $gruppe, 'mail' => $mail ) ); $uid = ""; $vorname = ""; $nachname = ""; $dn = ""; $gruppe = ""; $mail = ""; } $smarty->assign('table_data3', $table_data3); ldap_close($ds); }else{ echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>"; } } if($action == 'ldap3'){ if($_GET['error'] == 1){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte füllen Sie alle Pflichtfelder aus."); if($_SESSION["gutachterbenennung_vorname"] == ""){$smarty->assign('gutachterbenennung_vorname_ico', 1);} if($_SESSION["gutachterbenennung_nachname"] == ""){$smarty->assign('gutachterbenennung_nachname_ico', 1);} if($_SESSION["gutachterbenennung_mail"] == ""){$smarty->assign('gutachterbenennung_mail_ico', 1);} if($_SESSION["gutachterbenennung_beziehung"] == ""){$smarty->assign('gutachterbenennung_beziehung_ico', 1);} if($_SESSION["gutachterbenennung_fakultaet"] == ""){$smarty->assign('gutachterbenennung_fakultaet_ico', 1);} if($_SESSION["gutachterbenennung_ag"] == ""){$smarty->assign('gutachterbenennung_ag_ico', 1);} if($_SESSION["gutachterbenennung_jahrgang"] == ""){$smarty->assign('gutachterbenennung_jahrgang_ico', 1);} } if($_GET['error'] == 2){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Die Mailadresse ist nicht gültig! Bitte tragen Sie eine gültige Mailadresse ein."); } if($_GET['error'] == 3){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Die Mailadresse ist im System bereits vorhanden. Setzen Sie sich bitte mit <a href='mailto:$global_service_mail?subject=Fehler bei Anmeldung Ideenmanagement: Mailadresse bereits vorhanden'>$global_service_admin</a> in Verbindung"); } $smarty->assign('gutachterbenennung_vorname', $_SESSION["gutachterbenennung_vorname"]); $smarty->assign('gutachterbenennung_nachname', $_SESSION["gutachterbenennung_nachname"]); $smarty->assign('gutachterbenennung_mail', $_SESSION["gutachterbenennung_mail"]); $smarty->assign('gutachterbenennung_beziehung', $_SESSION["gutachterbenennung_beziehung"]); $smarty->assign('gutachterbenennung_fakultaet', $_SESSION["gutachterbenennung_fakultaet"]); $smarty->assign('gutachterbenennung_ag', $_SESSION["gutachterbenennung_ag"]); $smarty->assign('gutachterbenennung_jahrgang', $_SESSION["gutachterbenennung_jahrgang"]); if(isset($_POST['auswahl'])){ $suchstring=$_POST['auswahl']; $_SESSION["gutachterbenennung_user_uid"] = $suchstring; $suchpfad='samaccountname'; $result_ldap = $db->query("SELECT wert1 user, wert2 passwd FROM imt_parameter WHERE pid='2' LIMIT 1"); $row_ldap = $result_ldap->fetch_array(); $_ad_username="$row_ldap[user]"; $_ad_password="$row_ldap[passwd]"; $user_gutachter = $_SESSION["gutachterbenennung_user_gutachter"]; if($user_gutachter == "P" OR $user_gutachter == "V"){ $_ldap_dn = "ou=OUHochschulnetzwerk,dc=hsnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.128.30", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if($user_gutachter == "S"){ $_ldap_dn = "ou=ouStudnet,dc=studnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.144.37", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if($user_gutachter == "R"){ $_ldap_dn = "ou=OURechenzentrum,dc=hsnet,dc=hs-ludwigsburg,dc=de"; $ds=@ldap_connect("141.10.128.30", "389"); // muss ein gültiger LDAP Server Port 389->3268 ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); } if ($ds) { $r=ldap_bind($ds, $_ad_username, $_ad_password); // Suchen des Nachnamen-Eintrags #$suchstring2=$suchstring; #$sr=ldap_search($ds,"o=fhov", "cn=$suchstring"); $sr=ldap_search($ds, $_ldap_dn, "$suchpfad=$suchstring"); $anzahl = ldap_count_entries($ds,$sr); $info = ldap_get_entries($ds, $sr); $table_data3 = array(); for ($i=0; $i<$info["count"]; $i++) { //$dn enthält dn-string ==> 'cn=test,ou=extern,o=fhov': Nachfolgende Zeilen nur ou extrahieren $vorname = $info[$i]['givenname'][0]; $nachname = $info[$i]['sn'][0]; $mail = $info[$i]['mail'][0]; $dn = $info[$i][dn]; $b = strpos ($dn, "OU=")+3; // Position bestimmen wo ou anfängt, +3 damit "ou=" nicht mitangezeigt wird, also Positon um 3 nach recht verschoben wird $c = strpos ($dn, ",OU=Benutzer"); // Position bestimmen woe ,o= anfängt $d = $c-$b; // beide Werte subrahieren, dann erhält man die Länge von ou $gruppe = substr($dn, $b, $d); $gruppe = str_replace ("Stud", "", $gruppe); } ldap_close($ds); if($user_gutachter == "S"){ $db = dbconnect(); $query = "SELECT distinct jahrgang FROM kurs.stud WHERE jahrgang <= substr(date_format(now(), '%Y'),3,2) ORDER BY jahrgang desc LIMIT 4"; $result = $db->query ($query) or die ("Cannot execute query1"); $table_data = array(); while ($row = $result->fetch_array()){ if($row[jahrgang] == $gruppe){ $select = 1; }else{ $select = 0; } array_push($table_data, array( 'select' => $select, 'jahrgang' => $row['jahrgang'] ) ); } $smarty->assign('table_data', $table_data); } $smarty->assign('gutachterbenennung_beziehung', "$user_gutachter"); $smarty->assign('gutachterbenennung_vorname', "$vorname"); $smarty->assign('gutachterbenennung_nachname', "$nachname"); $smarty->assign('gutachterbenennung_mail', "$mail"); }else{ echo "<h4>Verbindung zum LDAP Server nicht möglich</h4>"; } } } if($action == 'ldap4'){ $vorname = utf8_decode($_POST['vorname']); $nachname = utf8_decode($_POST['nachname']); $mail = utf8_decode($_POST['mail']); $beziehung = utf8_decode($_POST['beziehung']); $ag = $_POST['ag']; $jahrgang = $_POST['jahrgang']; $fakultaet = $_POST['fakultaet']; $_SESSION["gutachterbenennung_vorname"] = "$vorname"; $_SESSION["gutachterbenennung_nachname"] = "$nachname"; $_SESSION["gutachterbenennung_mail"] = "$mail"; $_SESSION["gutachterbenennung_beziehung"] = "$beziehung"; $_SESSION["gutachterbenennung_ag"] = "$ag"; $_SESSION["gutachterbenennung_jahrgang"] = "$jahrgang"; $_SESSION["gutachterbenennung_fakultaet"] = "$fakultaet"; if(!validEmail($mail)){ $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=2\">"; } $db = dbconnect(); $query = $db->query("SELECT count(*) Anz FROM imt_user WHERE mail = '$mail'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row = $query->fetch_array(); if($row[Anz] > 0){ # Benutzer vorhanden $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=3\">"; } if($vorname == "" OR $nachname == "" OR $mail == "" OR $beziehung == ""){ # Fehler Pflichtfelder $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">"; } if($beziehung == "P" OR $beziehung == "L" OR $beziehung == ""){ if($fakultaet == ""){ # Fakultaet leer $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">"; } } if($beziehung == "S"){ if($ag == "" OR $jahrgang == ""){ # AG Jahrgang leer $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=ldap3&error=1\">"; } } if(!isset($fehler )){ if($beziehung == "P" OR $beziehung == "L"){ $ag = ""; $jahrgang = ""; } if($beziehung == "S"){ $fakultaet = ""; } # Lehrbeauftragte und Externe Benutzer bekommen eine Benutzerkennung da Sie nicht in der Hochschule erfasst sind, zumindest nicht alle if($beziehung == "E" or $beziehung == "L"){ $benutzerkennung = genUser($vorname, $nachname); $datum=date("Y-m-d H:i:s"); #$pw_expire = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")+1)); // ISO-8601 Format $aktivierungscode = rand(1, 99999999); #$pool = "qwertzupasdfghkyxcvbnm"; #$pool .= "23456789"; #$pool .= "WERTZUPLKJHGFDSAYXCVBNM"; # #srand ((double)microtime()*1000000); #for($index = 0; $index < 7; $index++) #{ #$pass_word .= substr($pool,(rand()%(strlen ($pool))), 1); #} #$new_pw_md5=md5($pass_word); }else{ # Bei User innerhalb des ADs benötigt man die Original-Benutzerkennung, aber dafür kein Passwort $benutzerkennung = $_SESSION["gutachterbenennung_user_uid"]; } $db = dbconnect(); $sql1 = $db->query("INSERT INTO imt_user ( vorname , nachname , mail , beziehung , ag , jahrgang , fakultaet , uid , erstell_dat , aktiv , akivierungscode ) VALUES ( '$vorname' , '$nachname' , '$mail' , '$beziehung' , '$ag' , '$jahrgang' , '$fakultaet' , '$benutzerkennung' , '$datum' , '1' , '$aktivierungscode' ) "); $imtuid = $db->insert_id; if($sql1){ // Wenn Insert geklappt hat, dann mail # Bei erfolgreichem Insert, auf die Startseite gutachterbenennung wechseln und dort den Benutzer vorselektieren echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?userid=$imtuid\">"; }else{ echo "Beim anlegen des Benutzer ist ein unbekannter Fehler aufgetreten!"; } } } if($action == 'frist'){ # START: Da kein Ausschuss mehr benötigt wird, wird der Gutachter gleich erfasst $imtuid = $_SESSION["gutachterbenennung_user_gutachter"]; $vid = $_SESSION["edit_id"]; $gutachterbemerkung = ""; # Dem Ausschuss muss keine Bemerkung mitgeteilt werden, da er nicht mehr informiert wird. $aend_dat = date("Y-m-d H:i:s"); $frist = "0000-00-00"; # Dem Ausschuss muss keine Bemerkung mitgeteilt werden, da er nicht mehr informiert wird. $db = dbconnect(); $sql1 = $db->query("INSERT INTO imt_gutachter ( imtuid , vid , bemerkung , erfass_dat , frist_datum ) VALUES ( '$imtuid' , '$vid' , '$gutachterbemerkung' , '$aend_dat' , '$frist' ) "); echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?id=$vid\">"; # ENDE: Da kein Ausschuss mehr benötigt wird, wird der Gutachter gleich erfasst } if($action == 'anschreiben'){ # Gutachter anschreiben, ihnen die Frist mitteilen und das Recht für den Gutachterbereich geben. # GGf muss ein Passwort gesetzt und mitgeteilt werden $gid = $_GET['gid']; $_SESSION["gutachterbenennung_gid"] = $gid; if($_GET['error'] == 1){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Es ist zu einem Fehler gekommen. Bitte füllen Sie alle Pflichtfelder aus."); if($_SESSION["gutachterbenennung_fristtag"] == "" OR $_SESSION["gutachterbenennung_fristmon"] == "" OR $_SESSION["gutachterbenennung_frisjahr"] == ""){$smarty->assign('gutachterbenennung_frist_ico', 1);} if($_SESSION["gutachterbenennung_fristtag"] == ""){$smarty->assign('gutachterbenennung_fristtag_ico', 1);} if($_SESSION["gutachterbenennung_fristmon"] == ""){$smarty->assign('gutachterbenennung_fristmon_ico', 1);} if($_SESSION["gutachterbenennung_fristjahr"] == ""){$smarty->assign('gutachterbenennung_fristjahr_ico', 1);} $smarty->assign('gutachterbenennung_fristtag', $_SESSION["gutachterbenennung_fristtag"]); $smarty->assign('gutachterbenennung_fristmon', $_SESSION["gutachterbenennung_fristmon"]); $smarty->assign('gutachterbenennung_fristjahr', $_SESSION["gutachterbenennung_fristjahr"]); $smarty->assign('gutachterbenennung_gutachterbemerkung', $_SESSION["gutachterbenennung_gutachterbemerkung"]); }elseif($_GET['error'] == 2){ $smarty->assign('gutachterbenennung_pflichtfelder', "1"); $smarty->assign('gutachterbenennung_error_text', "Das Fristdatum ist nicht korrekt. Bitte korrigieren Sie das Datum!"); $smarty->assign('gutachterbenennung_fristtag', $_SESSION["gutachterbenennung_fristtag"]); $smarty->assign('gutachterbenennung_fristmon', $_SESSION["gutachterbenennung_fristmon"]); $smarty->assign('gutachterbenennung_fristjahr', $_SESSION["gutachterbenennung_fristjahr"]); $smarty->assign('gutachterbenennung_gutachterbemerkung', $_SESSION["gutachterbenennung_gutachterbemerkung"]); }else{ $query_ga = $db->query("SELECT date_format(frist_datum_abgabe, '%d') frist_datum_abgabe_tag, date_format(frist_datum_abgabe, '%m') frist_datum_abgabe_mon, date_format(frist_datum_abgabe, '%Y') frist_datum_abgabe_jahr, frist_datum_abgabe FROM imt_gutachter WHERE gid = '$gid'") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row_ga = $query_ga->fetch_array(); if($row_ga[frist_datum_abgabe] == '0000-00-00'){ $smarty->assign('gutachterbenennung_fristtag', date("d",strtotime("+4 week")) ); $smarty->assign('gutachterbenennung_fristmon', date("m",strtotime("+4 week")) ); $smarty->assign('gutachterbenennung_fristjahr', date("Y",strtotime("+4 week")) ); }else{ $smarty->assign('gutachterbenennung_fristtag', $row_ga["frist_datum_abgabe_tag"] ); $smarty->assign('gutachterbenennung_fristmon', $row_ga["frist_datum_abgabe_mon"] ); $smarty->assign('gutachterbenennung_fristjahr', $row_ga["frist_datum_abgabe_jahr"] ); } } } if($action == 'anschreiben1'){ # Gutachter anschreiben, ihnen die Frist mitteilen und das Recht für den Gutachterbereich geben. # GGf muss ein Passwort gesetzt und mitgeteilt werden $gid = $_SESSION["gutachterbenennung_gid"]; $tag = $_POST["frist_tag"]; $mon = $_POST["frist_mon"]; $jahr = $_POST["frist_jahr"]; $abgabefrist = "$jahr-$mon-$tag"; $gutachterbemerkung = $_POST["gutachter_bemerkung"]; $beziehung = $_SESSION["gutachterbenennung_beziehung"]; $_SESSION["gutachterbenennung_fristtag"] = $tag; $_SESSION["gutachterbenennung_fristmon"] = $mon; $_SESSION["gutachterbenennung_fristjahr"] = $jahr; $_SESSION["gutachterbenennung_gutachterbemerkung"] = $gutachterbemerkung; if(!@checkdate($mon, $tag, $jahr)){ # Fehler Datum $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=anschreiben&error=2\">"; } if($tag == "" OR $mon == "" OR $jahr == ""){ # Fehler Pflichtfelder $fehler = 1; echo "<meta http-equiv=\"refresh\" content=\"0; URL=".$_SERVER['PHP_SELF']."?action=anschreiben&error=1\">"; } if(!isset($fehler )){ # Daten des Gutachters abfragen $db = dbconnect(); $query_ga = $db->query("SELECT uid, imtuid, passwort, vorname, nachname, beziehung FROM imt_user WHERE imtuid IN (SELECT imtuid FROM imt_gutachter WHERE gid='$gid')") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row_ga = $query_ga->fetch_array(); # Lehrbeauftragte und Externe Benutzer bekommen eine Benutzerkennung da Sie nicht in der Hochschule erfasst sind, zumindest nicht alle if($row_ga['beziehung'] == "E" or $row_ga['beziehung'] == "L"){ if($row_ga[passwort] == ''){ # Passwort ggf. setzen $pw_expire = date("Y-m-d H:i:s", mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")+1)); // ISO-8601 Format $pool = "qwertzupasdfghkyxcvbnm"; $pool .= "23456789"; $pool .= "WERTZUPLKJHGFDSAYXCVBNM"; srand ((double)microtime()*1000000); for($index = 0; $index < 7; $index++) { $pass_word .= substr($pool,(rand()%(strlen ($pool))), 1); } $new_pw_md5=md5($pass_word); $sql = $db->query ("UPDATE imt_user SET passwort='$new_pw_md5', pw_expire='$pw_expire' WHERE imtuid='$row_ga[imtuid]'"); } } # Herausfinden, ob der Gutachter bereits ein Recht für den Gutachterbereicht, ggf setzen rechte_vergabe($row_ga[imtuid], 2); # Frist setzen $sql = $db->query ("UPDATE imt_gutachter SET frist_datum_abgabe='$abgabefrist' WHERE gid='$gid'"); # Herausfinden des Betreffs des Verbesserungsvorschlages $query_vv = $db->query("SELECT betreff, vid FROM imt_vorschlag WHERE vid IN (SELECT vid FROM imt_gutachter WHERE gid='$gid')") or die(mysql_error()); // Change users to the database where you keep your usernames, and likewise with username $row_vv = $query_vv->fetch_array(); # Gutachter anschreiben $empfaenger = "$row_ga[imtuid]"; $betreff = "Gutachteranhörung"; $text = " <html> <head> <title>Gutachtenanhörung</title> </head> <body> <font face='Arial' size='2'> Guten Tag $row_ga[vorname] $row_ga[nachname]! <br /><br /> Im Rahmen des Ideenmanagements ist ein Verbesserungsvorschlag eingegangen. Zu diesem Vorschlag wurden Sie im System \"Ideenmanagement\" als Gutachter benannt. Um eine sachliche Entscheidung über die eingereichte Idee treffen zu können, benötigt der Ausschuss Ideenmanagement von Ihnen als Gutachter eine Stellungnahme. Bitte halten Sie Stillschweigen über die eingereichte Idee ein. <br /> <br /> <table> <tr> <td valign='top'> <font face='Arial' size='2'> <b>Vorschlag:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $row_vv[betreff] </font> </td> </tr> <tr> <td valign='top'> <font face='Arial' size='2'> <b>ID:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $row_vv[vid] </font> </td> </tr> "; $benutzerkennung = $row_ga[uid]; # Bei Benutzer im AD $benutzerkennung2 = $_SESSION["gutachterbenennung_user_uid"]; if($benutzerkennung != ""){ $text .= " <tr> <td valign='top'> <font face='Arial' size='2'> <b>Benutzerkennung:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $benutzerkennung </font> </td> </tr>"; } if($pass_word != ""){ $text .= " <tr> <td valign='top'> <font face='Arial' size='2'> <b>Passwort:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $pass_word </font> </td> </tr>"; } if($benutzerkennung2 != ""){ $text .= " <tr> <td valign='top'> <font face='Arial' size='2'> <b>Benutzerkennung:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $benutzerkennung2 </font> </td> </tr>"; } if($gutachterbemerkung != ""){ $text .= " <tr> <td valign='top'> <font face='Arial' size='2'> <b>Bemerkung:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $gutachterbemerkung </font> </td> </tr>"; } $text .=" <tr> <td valign='top'> <font face='Arial' size='2'> <b>Bearbeitungsfrist:</b> </font> </td> <td valign='top'> <font face='Arial' size='2'> $tag.$mon.$jahr </font> </td> </tr> </table> <br /> Um den Vorschlag vollständig zu lesen und Ihre Stellungnahme abzugeben, melden Sie sich am System an und wechseln Sie auf das Register \"Gutachterbereich\". <p> Klicken Sie hier um zum <a href='https://www.hs-ludwigsburg.de/kurs/ideenmanagement'>Ideenmanagement</a> zu gelangen. <p> Wir können die Motivation zum Einreichen der Ideen steigern, indem wir schnelle, aber ausreichend begründete Antworten geben. Der Bearbeitungsaufwand soll sich am zu erwartenden Nutzen orientieren. Sollten Sie die genannte Frist voraussichtlich nicht einhalten können, stimmen Sie bitte eine Zeitspanne mit dem/der QMB ab. <p> Diese Mail wurde automatisch generiert!<br /> Antworten Sie daher nicht auf diese Mail.<br /> <br /> Vielen Dank! </body> </html>"; mail_einstell($row_vv[vid], $uid, $empfaenger, NULL, NULL, $betreff, $text, 108, NULL); echo "<meta http-equiv=\"refresh\" content=\"2; URL=".$_SERVER['PHP_SELF']."?\">"; } } $smarty->assign('action', "$action"); $smarty->display("$template/$templatename"); ?>