<?php
/*
# Fuer debugging
error_reporting(E_ALL);
ini_set('display_errors', 1);
#echo __LINE__."<br>";
*/


include_once 'classes/lg-on_Smarty.class.php';
$smarty = new lgon_Smarty();
require_once("config.inc.php");
require_once("func_rollenrechte.php");
$templatename = substr(basename($_SERVER['PHP_SELF']),0,-3)."html";
require_once "language/german.inc.php";


session_start();

require_once "func_genUser.php";

# Wenn Seite neu aufgerufen wird, dann alle Sessions, die mit "bearbeiten_" beginnen löschen
if(isset($_GET['new']) AND $_GET['new'] == 1){;
  $search_prefix = 'anlegen_';
  $search_len = strlen($search_prefix);
  foreach( $_SESSION as $key => $value){
    if ( substr( $key, 0, $search_len) == $search_prefix) {
      unset( $_SESSION[$key]);
    }
  }
}


// Rechteüberprüfung
$db = dbconnect();
if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
if(!rore($user_admin,'a_admanleg','RE')){require("lib/rechte.php");exit;}
// Rechteüberprüfung ende

if(isset($_GET['action'])){
  $action = $_GET['action'];
}else{
  $action = '';
}

if($action == ''){
  # Daten aufbereiten für Zurückbutton
    if(isset($_SESSION["anlegen_vorname"])){
      $smarty->assign('user_anlegen_vorname', $_SESSION["anlegen_vorname"]);
    }

    if(isset($_SESSION["anlegen_nachname"])){
      $smarty->assign('user_anlegen_nachname', $_SESSION["anlegen_nachname"]);
    }

    if(isset($_SESSION["anlegen_mail"])){
      $smarty->assign('user_anlegen_mail', $_SESSION["anlegen_mail"]);
    }
  # Daten aufbereiten für Zurückbutton ENDE
}

if($action == 'profil'){

  # Daten aus Startseite speichern
  if(isset($_POST['vorname'])){
    $_SESSION["anlegen_vorname"] = $_POST['vorname'];
  }

  if(isset($_POST['nachname'])){
    $_SESSION["anlegen_nachname"] = $_POST['nachname'];
  }


  if(isset($_POST['mail'])){
    $_SESSION["anlegen_mail"] = $_POST['mail'];
  }
  # Daten aus Startseite speichern ENDE


  if ($_SESSION["anlegen_mail"] == "" or $_SESSION["anlegen_nachname"] == "" or $_SESSION["anlegen_vorname"] == ""){    // Fehler, falls Pflichtfelder unausgef&uuml;llt
    $smarty->assign('user_anlegen_mandatory', "1");
  }else{
    $smarty->assign('user_anlegen_mandatory', "2");

    $result_vorh = $db->query("SELECT count(*) Anz FROM admin WHERE mail=trim('$_SESSION[anlegen_mail]')");
    $row_vorh = $result_vorh->fetch_array();

    if($row_vorh['Anz'] > 0){
      $smarty->assign('user_anlegen_exists', "1");
    }else{
      $smarty->assign('user_anlegen_exists', "2");

      $db = dbconnect();

      # Wenn jmd nur das Vorsteherrecht hat rid=4, dann darf er nur Standarduser vergeben
      $result_recht = $db->query("SELECT count(*) Anz
                                    FROM admin a, admin_rollen_user_zuord b
                                   WHERE user = '$user_admin'
                                     AND a.vaid=b.vaid
                                     AND rid = 4");
      $row_recht = $result_recht->fetch_array();


      # Wenn jmd  das Adminrecht hat, sieht er auf die Rollenerklärung
      $result_recht1 = $db->query("SELECT count(*) Anz
                                    FROM admin a, admin_rollen_user_zuord b
                                   WHERE user = '$user_admin'
                                     AND a.vaid=b.vaid
                                     AND rid = 1");
      $row_recht1 = $result_recht1->fetch_array();
      $smarty->assign('user_anlegen_admin', "$row_recht1[Anz]");


      if($row_recht['Anz'] != 1){

        $query = "SELECT rid, bezeichnung  FROM admin_rolle ORDER BY bezeichnung ASC";
        $result = $db->query( $query)
                  or die ("Cannot execute query1");

        while ($row = $result->fetch_array()){

          if(isset($_SESSION["anlegen_profil"])){

           if(@in_array($row['rid'], $_SESSION["anlegen_profil"])){
              $select = "Y";
            }else{
              $select = "N";
            }
          }else{
            $select = "";
          }

         $row['select'] = $select;
         $value[] = $row;
        }

      }else{ # Vorseher darf nur Standardrecht sehen

        $query = "SELECT rid, bezeichnung  FROM admin_rolle WHERE rid=2 ORDER BY bezeichnung ASC";
        $result = $db->query( $query)
                  or die ("Cannot execute query1");

        while ($row = $result->fetch_array()){

          if(isset($_SESSION["anlegen_profil"])){

           $select = "Y";

          }else{
            $select = "";
          }

         $row['select'] = $select;
         $value[] = $row;
        }

      }
      $smarty->assign('table_data', $value);
    }
  }
}




if($action == 'overview'){

  # Daten aus Startseite speichern
  if(isset($_POST['profil'])){
    $_SESSION["anlegen_profil"] = $_POST['profil'];
  }else{
    unset($_SESSION["anlegen_profil"]);
  }
  # Daten aus Startseite speichern ENDE

  #echo "<hr>";
  #echo nl2br(print_r($_SESSION,true));
  #echo "<hr>";


  if ($_SESSION["anlegen_profil"][0] == ""){    // Fehler, falls Pflichtfelder unausgef&uuml;llt
    $smarty->assign('user_anlegen_mandatory_profil', "1");
  }else{
    $smarty->assign('user_anlegen_mandatory_profil', "2");

    if(isset($_SESSION['anlegen_profil'])){

      $profil = $_SESSION['anlegen_profil'];
      $bezeichnung_profil = "";
      for ($i=0;$i<sizeof($profil);$i++) {

       $result_profil = $db->query("SELECT bezeichnung FROM admin_rolle WHERE rid='$profil[$i]'");
       $row_profil = $result_profil->fetch_array();

       $bezeichnung_profil .= "$row_profil[bezeichnung]<br>";
      }
    }


    #Benutzerkennung generieren
    $benutzerkennung = genUser($_SESSION["anlegen_vorname"], $_SESSION["anlegen_nachname"]);

    $smarty->assign('user_anlegen_vorname', $_SESSION["anlegen_vorname"]);
    $smarty->assign('user_anlegen_nachname', $_SESSION["anlegen_nachname"]);
    $smarty->assign('user_anlegen_user', $benutzerkennung);
    $smarty->assign('user_anlegen_mail', $_SESSION["anlegen_mail"]);
    $smarty->assign('user_anlegen_profil', $bezeichnung_profil);

  }
}


if($action == 'save'){

  # dt_patrone
  $anlegen_vorname = trim($_SESSION["anlegen_vorname"]);
  $anlegen_nachname = trim($_SESSION["anlegen_nachname"]);
  $anlegen_mail = trim($_SESSION["anlegen_mail"]);
  $benutzerkennung = genUser($anlegen_vorname, $anlegen_nachname);

  # Profil
  $anlegen_profil = $_SESSION["anlegen_profil"];

  $result_vorh = $db->query("SELECT count(*) Anz FROM admin WHERE mail='$anlegen_mail'");
  $row_vorh = $result_vorh->fetch_array();

    if($row_vorh['Anz'] > 0){
      $smarty->assign('user_anlegen_exists', "1");
    }else{
      $smarty->assign('user_anlegen_exists', "2");

      $passwd = md5($benutzerkennung);
      $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")+1, date("d"), date("Y")));  // ISO-8601 Format



      $sql1 = $db->query( "INSERT INTO admin ( vorname
                                             , nachname
                                             , user
                                             , mail
                                             , passwort
                                             , pw_expire
                                             , registriert_durch
                                             , registriert
                                             , inaktiv
                                             )
                           VALUES
                                             ( '$anlegen_vorname'
                                             , '$anlegen_nachname'
                                             , '$benutzerkennung'
                                             , '$anlegen_mail'
                                             , '$passwd'
                                             , '$pw_expire'
                                             , '$user_admin'
                                             , '$datum'
                                             , 'N'
                                             )
                         " );
      if(!$sql1){
        $error = TRUE;
        $error_reason .= "Fehler beim anlegen von Stammdaten (dt_user)<br>";
      }else{
        $error = FALSE;
      }
      $vaid = $db->insert_id;

      $sql2 = $db->query( "INSERT INTO profil ( user
                                              , wgd
                                              )
                          VALUES
                                              ( '$benutzerkennung'
                                              , '0'
                                              )
                          " );
      if(!$sql2){
        $error = TRUE;
        $error_reason .= "Fehler beim anlegen des Profils<br>";
      }else{
        $error = FALSE;
      }

      for ($i=0;$i<sizeof($anlegen_profil);$i++) {
      $sql3 = $db->query( "INSERT INTO admin_rollen_user_zuord ( rid
                                                              , vaid
                                                              )
                             VALUES
                                                              ( '$anlegen_profil[$i]'
                                                              , '$vaid'
                                                              )
                           " );

        if(!$sql3){
          $error = TRUE;
          $error_reason .= "Fehler beim anlegen der Benutzer - Rollenzuordnung (admin_rollen_user_zuord)<br>";
        }else{
          $error = FALSE;
        }
      }

      if(!$error){
        $smarty->assign('user_anlegen_inserterr', "2");
        $result_abs = $db->query("SELECT vorname, nachname, mail FROM admin WHERE user='$user_admin'");
        $row_abs = $result_abs->fetch_array();


          $empfaenger = "$anlegen_mail";
          $betreff = "Anmeldung Leitgedanken-Online";
          $text = "
            <html>
            <head>
            <title>Anmeldung Leitgedanken-Online</title>
            </head>
            <body>
            <font face='Arial' size='2'>
            Guten Tag $anlegen_vorname $anlegen_nachname!<br><br>
            Sie wurden von $row_abs[vorname] $row_abs[nachname] bei Leitgedanken-Online registriert!<br>
            Nachfolgend finden Sie Ihre Zugangsdaten:
            <br>
            <br>
            <table>
            <tr>
               <td valign='top'>
                 <font face='Arial' size='2'>
                   Benutzerkennung:
                 </font>
               </td>
               <td valign='top'>
                 <font face='Arial' size='2'>
                   <b>$benutzerkennung</b>
                 </font>
               </td>
            </tr>
            <tr>
               <td valign='top'>
                 <font face='Arial' size='2'>
                   Passwort:
                 </font>
               </td>
               <td valign='top'>
                 <font face='Arial' size='2'>
                   <b>$benutzerkennung</b>
                 </font>
               </td>
            </tr>
            </table>
            <br>
            Bitte beachten Sie, dass zwischen Gro&szlig;- und<br>
            Kleinschreibung unterschieden wird.
            <p>
            &Auml;ndern Sie bitte zu Ihrer eigenen Sicherheit das<br>
            Passwort nach dem ersten Login.
            <p>
            Die Leitgedanken-Seite war urspr&uuml;glich konzipiert f&uuml;r<br>
            einen kleinen, begrenzten Nutzerkreis, weshalb dem Copyright keine<br>
            Beachtung geschenkt wurde.<br><br>
            Da die Seite von Beginn an ausschlie&szlig;lich von aktiven Amtstr&auml;gern<br>
            der NAK genutzt wurde, und diese bereits &uuml;ber die gedruckten <br>
            Leitgedanken verf&uuml;gen, l&auml;sst sich die &Uuml;bertretung des<br>
            Copyrights mit dem Verantwortungsbewustseins des Amtsträgers vereinbaren.<br>
            Zudem verfolgt der Autor der Seite keinerlei kommerzielle Ziele.
            <p>
            Link zu Leitgedanken-Online: <a href=\"http://www.lg-on.de\">Leitgedanken-Online</a>
            <p>
            Diese Mail wurde automatisch generiert!<br>
            Antworten Sie daher nicht auf diese Mail<br>
            <br>
            Vielen Dank
            </body>
            </html>";


        $headers = "MIME-Version: 1.0\n";
        #$headers .= "Content-type: text/html; charset=iso-8859-1\n";
        $headers .= "Content-type: text/html; charset=utf-8\n";
        $headers .= "From: Leitgedanken Online <admin@lg-on.de>\n";


        $return = @mail($empfaenger, $betreff, $text,  $headers);

        if($return){ // Abfrage ob Mailversand funktioniert hat
          $smarty->assign('user_anlegen_mailsuccess', "2");                          // Mailversand
          $smarty->assign('user_anlegen_returnmailadr', "$anlegen_mail");            // Mailadresse
        }else{
          $smarty->assign('user_anlegen_mailsuccess', "1");  // Kein Mailversand
        }

      }else{ // ELSE IF: Wenn Insert nicht geklappt hat
        $smarty->assign('user_anlegen_inserterr', "1");
        $smarty->assign('user_anlegen_reason', "$error_reason");  // Kein Mailversand
      } // Ende IF : Insert hat geklappt
    }
    session_destroy();
}


$smarty->assign('action', "$action");
$smarty->display("$template/$templatename");
?>