diff --git a/.htaccess b/.htaccess
new file mode 100644
index 000000000..e87393a7c
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,36 @@
+AuthName "Technikum-Wien"
+AuthType Basic
+AuthLDAPURL ldap://pdc1.technikum-wien.at/ou=People,dc=technikum-wien,dc=at?uid?one?objectClass=posixAccount
+require group cn=fhadmin,ou=Group,dc=technikum-wien,dc=at
+require user trob
+require user wahl
+require user drabek
+require user elgner
+require user schaaf
+require user kofler
+require user esberger
+require user kollmitz
+require user schmoe
+require user trattner
+require user naglr
+require user patai
+require user tw01e061
+require user docsek
+require user teschl
+require user oesi
+require user adams
+require user weisss
+require user moserp
+require user moehring
+require user skritek
+require user kroesl
+require user ffe
+require user kindlm
+require user schmuderm
+require user sagmeister
+require user masik
+require user kubicka
+require user lehner
+require user schwarzl
+require user horauer
+require user me
diff --git a/admin/sync/sync_fas_exstd.php b/admin/sync/sync_fas_exstd.php
new file mode 100644
index 000000000..014ad8e5f
--- /dev/null
+++ b/admin/sync/sync_fas_exstd.php
@@ -0,0 +1,85 @@
+";
+ $result=pg_exec($conn, $sql_query);
+ $vilesci_anz_std=pg_fetch_result($result,0,'anz');
+
+ // Start Studenten Synchro
+ $sql_query="SELECT DISTINCT uid FROM fas_view_vilesci_abbrecher WHERE uid IS NOT NULL AND uid NOT LIKE '' ORDER BY uid"; // LIMIT 5";
+ //echo $sql_query." ";
+ flush();
+ $result=pg_exec($conn_fas, $sql_query);
+ $num_rows=pg_numrows($result);
+ $text="Dies ist eine automatische eMail!\r\r";
+ $text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
+ $text.="Anzahl der Ex-Studenten vom FAS-Import: $num_rows \r";
+ $text.="Anzahl der Studenten in VILESCI: $vilesci_anz_std \r\r";
+ echo $text.' ';
+ flush();
+ $update_error=0;
+ $anz_update=0;
+ for ($i=0;$i<$num_rows;$i++)
+ {
+ $row=pg_fetch_object($result,$i);
+ $uid=str_replace(' ','',$row->uid);
+ // SQL vorbereiten (jeden Studenten vom FAS im vilesci suchen
+ $sql_query="SELECT uid,titel,vornamen,nachname, semester FROM tbl_person NATURAL JOIN tbl_student WHERE uid LIKE '$uid'";
+ //echo $sql_query;
+ $res_std=pg_query($conn, $sql_query);
+ $num_rows_std=pg_numrows($res_std);
+ // neue Studenten
+ if ($num_rows_std>=1)
+ {
+ $row_std=pg_fetch_object($res_std);
+ if ($row_std->semester!=10)
+ {
+ $text.="Der Student $row_std->vornamen $row_std->nachname ($row_std->uid) wird verschoben.\r";
+ $sql_query="UPDATE tbl_student SET semester=10, updateamum=now(), updatevon='auto' WHERE uid LIKE '$uid'";
+ echo $sql_query.' ';
+ if(!$res_update=pg_query($conn, $sql_query))
+ {
+ $text.=$sql_query;
+ $text.="\rFehler: ".pg_errormessage($conn)."\r";
+ $update_error++;
+ }
+ else
+ $anz_update++;
+ }
+ }
+ }
+ $text.="$update_error Fehler bei Student-Update!\r";
+ $text.="$anz_update Studenten wurden ins 10te Semester verschoben.\r";
+ $text.="\rEND OF SYNCHRONISATION\r";
+ if (mail($adress,"FAS Synchro mit VILESCI (Ex-Studenten)",$text,"From: vilesci@technikum-wien.at"))
+ $sendmail=true;
+ else
+ $sendmail=false;
+?>
+
+
+
+ FAS-Synchro mit VILESCI (Ex-Studenten)
+
+
+
+
+';
+else
+ echo "Mail konnte nicht verschickt werden! ";
+echo $text;
+
+?>
+
+
diff --git a/admin/sync/sync_fas_lkt.php b/admin/sync/sync_fas_lkt.php
new file mode 100644
index 000000000..5bdbf2437
--- /dev/null
+++ b/admin/sync/sync_fas_lkt.php
@@ -0,0 +1,202 @@
+ "ae",
+ "ö" => "oe",
+ "ü" => "ue",
+ "Ä" => "ae",
+ "Ö" => "oe",
+ "Ü" => "ue",
+ "á" => "a",
+ "à" => "a",
+ "é" => "e",
+ "è" => "e",
+ "ó" => "o",
+ "ò" => "o",
+ "í" => "i",
+ "ì" => "i",
+ "ú" => "u",
+ "ù" => "u",
+ "ß" => "ss",
+ "´" => "",
+ "`" => "",
+ );
+ $string = strtr($string, $trans);
+ return $string;
+ }
+
+ $adress='fas_sync@technikum-wien.at';
+ //mail($adress,"FAS Synchro mit VILESCI (Lektoren)","BEGIN OF SYNCHRONISATION","From: vilesci@technikum-wien.at");
+ $conn=pg_connect(CONN_STRING);
+ $conn_fas=pg_connect(CONN_STRING_FAS);
+
+ // Anzahl der Mitarbeiter in VILESCI
+ $sql_query="SELECT count(*) AS anz FROM tbl_mitarbeiter WHERE uid NOT LIKE '\\\\_%'";
+ //echo $sql_query." ";
+ $result=pg_exec($conn, $sql_query);
+ $vil_anz_mta=pg_fetch_result($result,0,'anz');
+
+ // Start Studenten Synchro
+ $sql_query="SELECT * FROM vw_vilesci_mitarbeiter_aktiv WHERE uid IS NOT NULL AND uid NOT LIKE ''"; // LIMIT 5";
+ //echo $sql_query." ";
+ $result=pg_exec($conn_fas, $sql_query);
+ $num_rows=pg_numrows($result);
+ $text="Dies ist eine automatische eMail!\r\r";
+ $text.="Es wurde eine Synchronisation mit FAS durchgeführt.\r";
+ $text.="Anzahl der Mitarbeiter vom FAS-Import: $num_rows \r";
+ $text.="Anzahl der Mitarbeiter in der VILESCI: $vil_anz_mta \r\r";
+ $plausi_error=0;
+ $update_error=0;
+ $insert_error=0;
+ $double_error=0;
+ $anz_update=0;
+ $anz_insert=0;
+ for ($i=0;$i<$num_rows;$i++)
+ {
+ $row=pg_fetch_object($result,$i);
+ $row->gebort=substr($row->gebort,0,30);
+ //$row->titel=substr($row->titel,0,15);
+ $uid=str_replace(' ','',$row->uid);
+ // Plausibilitaetscheck
+ if (strlen($row->titel)>64)
+ $text.="Der Mitarbeiter $row->titel $row->vornamen $row->nachname ($row->uid) hat einen zu langen Titel.\r";
+ if (strlen($row->titel)<=64)
+ {
+ // SQL vorbereiten (jeden Mitarbeiter vom FAS in VILESCI suchen
+ $sql_query="SELECT uid,titel,vornamen,nachname,gebdatum,gebort,";
+ $sql_query.="personalnummer";
+ $sql_query.=" FROM tbl_person NATURAL JOIN tbl_mitarbeiter WHERE uid LIKE '$uid'";
+ //echo $sql_query;
+ $res_std=pg_exec($conn, $sql_query);
+ $num_rows_std=pg_numrows($res_std);
+
+ // neue Lektoren
+ if ($num_rows_std==0)
+ {
+ $text.="Der Lektor $row->vornamen $row->nachname ($row->uid) wird neu angelegt.\r";
+ // person
+ $qry="INSERT INTO tbl_person(uid,titel,vornamen, nachname, gebdatum, gebort) ".
+ "VALUES('$uid','$row->titel','$row->vornamen','$row->nachname','$row->gebdatum','$row->gebort')";
+ echo $qry.' ';
+ if(!$res_insert=pg_exec($conn, $qry))
+ {
+ $text.=$qry;
+ $text.="\rFehler: ".pg_errormessage($conn)."\r";
+ $insert_error++;
+ }
+
+ //Alias erstellen
+ $vn = split('[- .,]',strtolower($row->vornamen));
+ $vn = clean_string($vn[0]);
+
+ $nn = split('[- .,]',strtolower($row->nachname));
+ $nn = clean_string($nn[0]);
+ $alias = $vn.".".$nn;
+ $qry = "UPDATE tbl_person set alias='$alias' where uid='$uid'";
+ if(!$res_insert=pg_exec($conn, $qry))
+ {
+ $text.=$qry;
+ $text.="\rFehler: Alias existiert bereits: $alias";
+ $insert_error++;
+ }
+ // lektor
+ $sql_query="INSERT INTO tbl_mitarbeiter (uid,personalnummer,kurzbz,lektor,telefonklappe,fixangestellt) ".
+ "VALUES('$row->uid','$row->persnr','$row->kurzbez',true,'$row->teltw',".($row->fixangestellt?'true':'false').")";
+ echo $sql_query.' ';
+ if(!$res_insert=pg_exec($conn, $sql_query))
+ {
+ $text.=$sql_query;
+ $text.="\rFehler: ".pg_errormessage($conn)."\r";
+ $insert_error++;
+ }
+ else
+ $anz_insert++;
+ }
+ // bestehende Lektoren
+ elseif ($num_rows_std==1)
+ {
+ $update=0;
+ $row_std=pg_fetch_object($res_std,0);
+ if ($row->gruppe==NULL)
+ $row->gruppe=1;
+ if ($row->titel!=$row_std->titel)
+ $update=1;
+ elseif ($row->vornamen!=$row_std->vornamen)
+ $update=2;
+ elseif ($row->nachname!=$row_std->nachname)
+ $update=3;
+ elseif ($row->gebdatum!=$row_std->gebdatum)
+ $update=4;
+ elseif ($row->gebort!=$row_std->gebort)
+ $update=5;
+ elseif ($row->persnr!=$row_std->personalnummer)
+ $update=6;
+ if ($update)
+ {
+ $text.="Der Lektor $row->vornamen $row->nachname ($row->uid) [$update] wird upgedatet.\r";
+ // person
+ $sql_query="UPDATE tbl_person SET titel='$row->titel', vornamen='$row->vornamen', ".
+ " nachname='$row->nachname', gebdatum='$row->gebdatum', gebort='$row->gebort'".
+ " WHERE uid LIKE '$uid'";
+ echo $sql_query.' ';
+ if(!$res_update=pg_exec($conn, $sql_query))
+ {
+ $text.=$sql_query;
+ $text.="\rFehler: ".pg_errormessage($conn)."\r";
+ $update_error++;
+ }
+
+ $sql_query="UPDATE tbl_mitarbeiter SET personalnummer='$row->persnr',fixangestellt=".($row->fixangestellt?'TRUE':'FALSE');
+ $sql_query.=" WHERE uid LIKE '$uid'";
+ echo $sql_query.' '; // kurzbz='$row->kurzbez',
+ if(!$res_update=pg_exec($conn, $sql_query))
+ {
+ $text.=$sql_query;
+ $text.="\rFehler: ".pg_errormessage($conn)."\r";
+ $update_error++;
+ }
+ else
+ $anz_update++;
+ }
+ }
+ // Lektor kommt mehrmals vor ->Warnung
+ elseif ($num_rows_std>1)
+ {
+ $text.="\r!!! Der Lektor $row->vornamen $row->nachname ($row->uid) kommt mehrfach vor!\r";
+ $double_error++;
+ }
+ }
+ else
+ $plausi_error++;
+ }
+ $text.="\r$plausi_error Fehler beim Plausibilitaetscheck!\r";
+ $text.="$update_error Fehler bei Lektor-Update!\r";
+ $text.="$insert_error Fehler bei Lektor-Insert!\r";
+ $text.="$double_error Lektoren kommen in VileSci doppelt vor!\r\r";
+ $text.="$anz_update Lektoren wurden upgedatet.\r";
+ $text.="$anz_insert Lektoren wurden neu angelegt.\r\r";
+ $text.="\rEND OF SYNCHRONISATION\r";
+ if (mail($adress,"FAS Synchro mit VileSci (Lektoren)",$text,"From: vilesci@technikum-wien.at"))
+ $sendmail=true;
+ else
+ $sendmail=false;
+?>
+
+
+
+FAS-Synchro mit VileSci (Lektoren)
+
+
+
+';
+else
+ echo "Mail konnte nicht verschickt werden! ";
+echo $text;
+
+?>
+
+
diff --git a/admin/sync/sync_fas_lkt_fault.php b/admin/sync/sync_fas_lkt_fault.php
new file mode 100644
index 000000000..1786ef507
--- /dev/null
+++ b/admin/sync/sync_fas_lkt_fault.php
@@ -0,0 +1,56 @@
+FAS-Synchro mit TEMPUS fehlende Lektoren';
+ $text.='';
+
+ // Start Check
+ //Daten aus vilesci holen
+ $sql_query="SELECT tbl_person.*,tbl_mitarbeiter.personalnummer,tbl_mitarbeiter.kurzbz,tbl_mitarbeiter.fixangestellt FROM tbl_person join tbl_mitarbeiter using(uid) WHERE uid NOT LIKE '\\\\_%' ORDER BY nachname";
+ //echo $sql_query." ";
+ $result=pg_exec($conn, $sql_query);
+ $num_rows=pg_numrows($result);
+ // Daten aus dem FAS
+ $sql_query="SELECT * FROM fas_view_lektoren_vilesci";
+ //echo $sql_query." ";
+ $result_fas=pg_exec($conn_fas, $sql_query);
+ $fehlend=$num_rows-$num_rows_fas;
+ $num_rows_fas=pg_numrows($result_fas);
+ $text.="Dies ist eine automatische eMail!
";
+ $text.="Es wurde eine Ueberpruefung der Daten in der FAS-View fuer Lektoren durchgeführt. ";
+ $text.='Anzahl der fehlenden Daten: $fehlend
';
+ $text.="Folgende Lektoren scheinen in der FAS-View nicht auf";
+ $text.='
uid
Titel
Vornamen
Nachname
';
+ for ($i=0;$i<$num_rows;$i++)
+ {
+ $row=pg_fetch_object($result,$i);
+ $sql_query="SELECT uid FROM fas_view_lektoren_vilesci WHERE uid LIKE '$row->uid'";
+ $result_fas=pg_exec($conn_fas, $sql_query);
+ if (pg_numrows($result_fas)!=1)
+ $text.='