<?php
/**
 * Open Source - Content Managment System
 * Next Generation v2
 * @Coder:  Mutzii
 * @copyright  Copyright (c) 2012-2013 by Mutzii
 * File: LoginSystem.modul.php
 */
 
 
class LoginSystem extends Modul
{
   protected $ErrorIni = null;
   
   public function onEnable()
   {
     $this->ErrorIni = $this->getErrorList(); 
     $this->ErrorIni->addError(1,"Das Passwort ist Falsch.");
     $this->ErrorIni->addError(2,"Der Benutzername existiert nicht.");
	  
     $login_error = $this->LoginFormular();
	 $array = array( "{login_error}" =>  $login_error);
	 $this->getPlaceHolder()->fill($array);
	 
	 if(!empty($_GET['overlay']))
	 {
	     if($_GET['overlay'] == 'logout'){
		      $this->LogOut();
		 }
	 }
		
   }
   
   public function onDisable()
   {
      /* diese Methode wird ausgeführt, wenn das Modul Deaktiviert wird. */
   }
   
   public function LogOut()
   {
      if($this->getInstance()->getLogin()->Login())
	  {
	      $this->getInstance()->getLogin()->logout();
		  $this->getInstance()->getLogin()->reload();
          
      }
   }
   
     
   public function LoginFormular()
   {
     if(isset($_POST['login'])){		
		if(isset($_POST['user']) && isset($_POST['pass'])){
		
		   $result = $this->login_script($_POST['user'],$_POST['pass']);
		   // Ist das Resultat voll, wird der Parameter mit return zurück geliefert.
		   // Das Result kommt von dem login_script und wird mit einer "Error" Message gefüttert.
		   if(!empty($result)){ 
		       return $result;
		   }else{
		    return NULL;
		   }
		   		
		}
	 }else{
	    return NULL;
	 }
   
   }
   
    /* Login Script....*/
    public function login_script($user,$pass)
	{
            
			   /* Initialize Instancen */
			   $instance  = $this->getInstance();
			   $login_i   = $instance->getLogin();
			   $sql_i     = $instance->getSQL();
		      
			   /* Formular Daten */
			   $user      = mysql_real_escape_string($user);
			   $pass      = mysql_real_escape_string($pass); 
			   $password  = md5($pass);
				  
               /* Datenbank: Select Table Accounts */
			   $result = $sql_i->select("accounts");
			   $query  = $sql_i->query($result);

			   /* Datenbank Auslesen (objekt)*/	  
                $user_found = false;	
                $error      = null;				
			   /* LoginName in der Datenbank Suchen */
			   while($DatenFromDB = mysql_fetch_object($query))
			   {
			      if($DatenFromDB->account_user == $user){                              // Ob User in der DB Existiert.
				       $user_found = true;
					   if($DatenFromDB->account_pass == $password){                     // Passwort Abfrage
					       $login_i->session_login($user,$DatenFromDB->account_status); // User Session Registrieren
						   $login_i->refresh();                                         // WebSite Refresh
					   }else{
					      $error = $this->ErrorIni->getMessage(1);                      // Error Entry, if Pass False is.
					   }
				    break;
				  }   
			   }
			   
			   if(!$user_found){
			       $error = $this->ErrorIni->getMessage(2);
			   }
			   
	    return $error;   
	}
   

}




?>