Skip to content

Instantly share code, notes, and snippets.

@juniorb2ss
Created May 23, 2014 22:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juniorb2ss/0121588282be8d0e2c51 to your computer and use it in GitHub Desktop.
Save juniorb2ss/0121588282be8d0e2c51 to your computer and use it in GitHub Desktop.
public function login()
{
// Caso o usuário já esteja logado, redireciona ele.
if($this->_needlogin(FALSE))
{
redirect('account');
}
// Exibe se existe mensagem pendente (notificação)
if($message = $this->session->flashdata('logout'))
{
$this->error->displayError($message);
}
// Exibe mensagem que a página visitada querer login.
if($this->session->flashdata('required'))
{
$this->error->displayError('NEED_LOGIN', 'alert');
}
// Caso o usuário tenha acabado de criar a conta e sido redirecionado para o login
// a mensagem TRADUZIDA com variavel SUCESS_CREATE_ACC é mostrado ao usuário
if($this->session->flashdata('SucessCreateAccount'))
{
$this->error->displayError('SUCESS_CREATE_ACC', 'sucess');
}
if($this->input->get('locate', TRUE))
{
$this->session->set_flashdata('locateHeader', $this->input->get('locate', TRUE));
}
$this->session->unset_userdata('active_time');
$this->form_validation->set_message('required', 'Este campo fico em branco!');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
// Formulário enviado.
if($this->form_validation->run($this, 'Account/Login') === TRUE)
{
$u = new account_model();
// Captura o name e password.
$u->name = $this->input->post('name');
$u->password = $this->input->post('password');
// Executa o login
if($u->login())
{
// Verifica se a conta logada esta ativada.
if($u->ativado)
{
// Insere as sessions do login
$this->session->set_userdata(
array(
'login' => TRUE,
'accountID' => $u->id,
'accountName' => $this->input->post('name'),
'accountPassword' => $this->input->post('password'),
'login_acess' => $u->login_acess,
)
);
//Redireciona o usuário para última página visitada.
if($this->session->flashdata('locateHeader'))
{
redirect(str_replace(config_item('url_suffix'), "", $this->session->flashdata('locateHeader')), 'locate');
}
redirect('account');
}
else
{
// Conta desativada, mostra mensagem de erro e notifica sobre a possibilidade de re-enviar o email de confirmação.
$this->session->set_flashdata('accResend', $u->id);
$this->error->displayError('ACC_NEED_CONFIRM', 'alert');
}
}
else
{
// login inválido
$this->error->displayError('INVALID_LOGIN');
}
}
// Abre o painel da account.
$this->load->view('login');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment