You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PlexShare/fuel/app/classes/controller/login.php

60 lines
1.5 KiB

<?php
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Session;
use Fuel\Core\View;
use Fuel\Core\Asset;
use Fuel\Core\Input;
use Fuel\Core\Config;
use Fuel\Core\FuelException;
class Controller_Login extends Controller
{
public function before()
{
parent::before();
$lock = Config::load('lock', true);
if(!$lock)
Response::redirect('/install');
$user = Session::get('user');
if($user)
Response::redirect('/home');
}
public function action_index()
{
$view = View::forge('login/index');
$start_js = Asset::js('jquery.min.js');
try {
$config = Config::load('db', true);
if (Input::method() === 'POST') {
$login = Input::post('email');
$password = Input::post('password');
$password = hash('sha512', $config['default']['hash'] . $password);
if($user = Model_User::Login($login, $password)) {
$user->lastlogin = time();
$user->save();
Session::set('user', $user);
Response::redirect('/home');
} else {
$view->set('error','Username or password is incorrect.');
}
}
} catch (FuelException $e) {
$view->set('error', $e->getMessage());
}
$view->set_safe('start_js', $start_js);
return Response::forge($view);
}
}