<?php
/**
 * 
 */
class Userop extends CI_Controller
{
	public $viewFolder = "";
	
	public function __construct()
	{
		parent::__construct();
		$this->viewFolder = "kullanicilar_v";
		$this->load->model("kullanicilar_model");
	}

	public function login() 
	{
		if (get_active_user()) {
			redirect(base_url("panel/dashboard"));
		}
		
		$this->load->library("form_validation");
		$viewData = new stdClass();
        $viewData->viewFolder = $this->viewFolder;
        $viewData->subViewFolder = "login";
        $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData); 
	}


	public function do_login()
	{

		if (get_active_user()) {
			redirect(base_url("panel/dashboard"));
		}

		$this->load->library("form_validation");

        //kurallar yazılır
        $this->form_validation->set_rules("username", "Kullanıcı Adı", "required|trim");
        $this->form_validation->set_rules("userpass", "Şifre", "required|trim|min_length[6]");

        $this->form_validation->set_message(
            array(
                "required" => "<strong>{field}</strong> alanı boş bırakılamaz",
                "min_length" => "Şifreniz En az 6 karakterden oluşmalı",
            )
        );
        //form validation çalıştırılı
        if ($this->form_validation->run() == FALSE)
        {

        		$viewData = new stdClass();
                $viewData->viewFolder = $this->viewFolder;
                $viewData->subViewFolder = "login";
                $viewData->form_hatasi = true;
                $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);

        	//redirect(base_url("login"));
        }
        
        else
        {

        	$user = $this->kullanicilar_model->get
        	(
        		array
        		(
        			"userid"	=> $this->input->post("username"),
        			"sifre"		=> md5($this->input->post("userpass")),
        			"isactive"	=> 1
        		)
        	);

        	if ($user)
        	{
        		$alert = array
                (
                	"text"  => "$user->adsoyad Hoşgeldiniz ",
                    "type"  => "success"
                );

        		$this->session->set_userdata("user", $user);
        		$this->session->set_flashdata("alert", $alert);

        		redirect(base_url("panel/dashboard"));
        	}

        	else {
        		$alert = array
                    (
                        "text"  => "Sisteme Giriş Yapılamadı, Lütfen Giriş bilgilerinizi kontrol ediniz",
                        "type"  => "error"
                    );

                    $this->session->set_flashdata("alert", $alert);
                    redirect(base_url("panel/login"));
        	}
        }
	}


	public function logout()
	{
		$this->session->unset_userdata("user");
		redirect("login");
	}


    public function forget_password() 
    {
        if (get_active_user()) {
            redirect(base_url("dashboard"));
        }
        
        
        $viewData = new stdClass();
        $viewData->viewFolder = $this->viewFolder;
        $viewData->subViewFolder = "forget_password";
        $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData); 
    } 


    public function reset_password ()
    {

        $this->load->library("form_validation");

        //kurallar yazılır
        $this->form_validation->set_rules("username", "E-Posta", "required|trim|valid_email");

        $this->form_validation->set_message(
            array(
                "required" => "<strong>{field}</strong> alanı boş bırakılamaz",
                "valid_email" => "Hatalı E-Posta Adresi",
            )
        );

        if ($this->form_validation->run() == FALSE)
        {
            $viewData = new stdClass();
            $viewData->viewFolder = $this->viewFolder;
            $viewData->subViewFolder = "forget_password";
            $viewData->form_hatasi = true;
            $this->load->view("{$viewData->viewFolder}/{$viewData->subViewFolder}/index", $viewData);
        }
        else
        {
            $eposta = $this->security->xss_clean($this->input->post("username"));

            $user = $this->kullanicilar_model->get(
                array
                (
                    "isactive"  => 1,
                    "eposta"    => $eposta
                )
            );
            
            if ($user)
            {
                

                $geciciSifre = sifre_uretici(8);

                $send = mail_send($user->eposta, "Şifremi Unuttum", "Panele geçici olarak <b>{$geciciSifre}</b> geçicisi şifresi ile giriş yapabilirsiniz. <br />Lütfen Sisteme giriş yaptıkran sonra şifrenizi değiştirmeyi unutmayın.");

                if ($send)
                {
                    $user = $this->kullanicilar_model->update (
                        array (
                            "id" => $user->id
                        ),

                        array (
                            "sifre" => md5($geciciSifre)
                        )
                    );

                    $alert = array
                    (
                        "text"  => "Şifreniz başarılı bir şekilde sıfırlanarak mail adresinize gönderilmiştir",
                        "type"  => "success"
                    );
                    $this->session->set_flashdata("alert", $alert);
                    redirect(base_url("panel/login"));
                    die();
                }
                else {
                    $alert = array
                    (
                        "text"  => "Bir hata meydana geldi, Lütfen daha sonra tekrar deneyiniz",
                        "type"  => "error"
                    );
                    $this->session->set_flashdata("alert", $alert);
                    redirect(base_url("panel/sifremi-unuttum"));
                }
            }
            
            else
            {
                $alert = array
                (
                    "text"  => "E-Posta Adresi bulunamadı, Lütfen doğru yazdığınızdan emin olun",
                    "type"  => "error"
                );
                $this->session->set_flashdata("alert", $alert);
                redirect(base_url("panel/sifremi-unuttum"));
            }
        }
    }
}
?>