<?php

class Login extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('mapos_model');
    }

    public function index()
    {
        $this->load->view('mapos/login');
    }

    public function sair()
    {
        $this->session->sess_destroy();
        redirect('login');
    }
	
	public function recuperarSenha(){
		
		//require_once("config.php");
			require_once("conexao.php");
			$conn = abrirBanco();
			require_once("funcoes.php");

			$email = $_POST['email'];

			$sql = "SELECT email FROM usuarios
					WHERE email='".$email."'";

			$res = $conn->query($sql) or die($conn->error);

			$row = $res->fetch_assoc();

		if($res->num_rows > 0){
        $chave = generateRandomString();
        $query = mysqli_query($conn, "INSERT INTO recuperasenha (email, chave, valido) VALUES ('$email', '$chave', '1')");

        if ($query) {
                $enviar_email = enviar_email($email, $chave);
                if ($enviar_email) {
                    echo '<script type="application/javascript">alert("Email enviado. Verifique sua caixa de email."); window.location.href ="sair";</script>';
                    
                } else {
                    echo '<script type="application/javascript">alert("Não foi possível enviar o email. Tente novamente."); window.location.href ="sair";</script>';
                   
                }
				} else {
                 echo '<script type="application/javascript">alert("Algo deu errado. Tente novamente."); window.location.href ="sair";</script>';
                
				}

				}else{
			echo '<script type="application/javascript">alert("Email não cadastrado.."); window.location.href ="sair";</script>';

				}
	}
	
	public function recuperarSenhamine(){
		
		//require_once("config.php");
			require_once("conexao.php");
			$conn = abrirBanco();
			require_once("funcoesmine.php");

			$email = $_POST['email'];

			$sql = "SELECT email FROM clientes
					WHERE email='".$email."'";

			$res = $conn->query($sql) or die($conn->error);

			$row = $res->fetch_assoc();

		if($res->num_rows > 0){
        $chave = generateRandomString();
        $query = mysqli_query($conn, "INSERT INTO recuperasenha (email, chave, valido) VALUES ('$email', '$chave', '1')");

        if ($query) {
                $enviar_email = enviar_email($email, $chave);
                if ($enviar_email) {
                    echo '<script type="application/javascript">alert("Email enviado. Verifique sua caixa de email."); window.location.href ="Saida";</script>';
                    
                } else {
                    echo '<script type="application/javascript">alert("Não foi possível enviar o email. Tente novamente."); window.location.href ="Saida";</script>';
                   
                }
				} else {
                 echo '<script type="application/javascript">alert("Algo deu errado. Tente novamente."); window.location.href ="Saida";</script>';
                
				}

				}else{
			echo '<script type="application/javascript">alert("Email não cadastrado.."); window.location.href ="Saida";</script>';

				}
	}
	
	public function Saida(){
        $this->session->sess_destroy();
        redirect('/mine');
    }
	

   public function verificarLogin()
    {

        header('Access-Control-Allow-Origin: ' . base_url());
        header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
        header('Access-Control-Max-Age: 1000');
        header('Access-Control-Allow-Headers: Content-Type');

        $this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'E-mail', 'valid_email|required|trim');
        $this->form_validation->set_rules('senha', 'Senha', 'required|trim');
        if ($this->form_validation->run() == false) {
            $json = array('result' => false, 'message' => validation_errors());
            echo json_encode($json);
        } else {
            $email = $this->input->post('email');
            $password = $this->input->post('senha');
            $this->load->model('Mapos_model');
            $user = $this->Mapos_model->check_credentials($email);

            if ($user) {
                if (password_verify($password, $user->senha)) {
                    $session_data = array('nome' => $user->nome, 'email' => $user->email, 'id' => $user->idUsuarios, 'expirado' => $this->chk_date($user->dataExpiracao), 'permissao' => $user->permissoes_id, 'logado' => true);
                    $this->session->set_userdata($session_data);
                    log_info('Efetuou login no sistema');
                    $json = array('result' => true);
                    echo json_encode($json);
                } else {
                    $json = array('result' => false, 'message' => 'Os dados de acesso estão incorretos.');
                    echo json_encode($json);
                }
            } else {
                $json = array('result' => false, 'message' => 'Usuário não encontrado, verifique se suas credenciais estão corretass.');
                echo json_encode($json);
            }
        }
        die();
    }

    private function chk_date($data_banco)
    {
        $data_banco = new DateTime($data_banco);
        $data_hoje = new DateTime("now");

        return $data_banco < $data_hoje;
    }
}
