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.
103 lines
2.1 KiB
103 lines
2.1 KiB
<?php
|
|
|
|
class Controller_Admin extends Controller_Base
|
|
{
|
|
public $template = 'admin/template';
|
|
|
|
public function before()
|
|
{
|
|
parent::before();
|
|
|
|
if (Request::active()->controller !== 'Controller_Admin' or ! in_array(Request::active()->action, array('login', 'logout')))
|
|
{
|
|
if (Auth::check())
|
|
{
|
|
if ( ! Auth::member(100))
|
|
{
|
|
Session::set_flash('error', e('You don\'t have access to the admin panel'));
|
|
Response::redirect('/');
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Response::redirect('admin/login');
|
|
}
|
|
}
|
|
}
|
|
|
|
public function action_login()
|
|
{
|
|
// Already logged in
|
|
Auth::check() and Response::redirect('admin');
|
|
|
|
$val = Validation::forge();
|
|
|
|
if (Input::method() == 'POST')
|
|
{
|
|
$val->add('email', 'Email or Username')
|
|
->add_rule('required');
|
|
$val->add('password', 'Password')
|
|
->add_rule('required');
|
|
|
|
if ($val->run())
|
|
{
|
|
if ( ! Auth::check())
|
|
{
|
|
if (Auth::login(Input::post('email'), Input::post('password')))
|
|
{
|
|
// assign the user id that lasted updated this record
|
|
foreach (\Auth::verified() as $driver)
|
|
{
|
|
if (($id = $driver->get_user_id()) !== false)
|
|
{
|
|
// credentials ok, go right in
|
|
$current_user = Model_User::find($id[1]);
|
|
Session::set_flash('success', e('Welcome, '.$current_user->username));
|
|
Response::redirect('admin');
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->template->set_global('login_error', 'Login failed!');
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->template->set_global('login_error', 'Already logged in!');
|
|
}
|
|
}
|
|
}
|
|
|
|
$this->template->title = 'Login';
|
|
$this->template->content = View::forge('admin/login', array('val' => $val), false);
|
|
}
|
|
|
|
/**
|
|
* The logout action.
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function action_logout()
|
|
{
|
|
Auth::logout();
|
|
Response::redirect('admin');
|
|
}
|
|
|
|
/**
|
|
* The index action.
|
|
*
|
|
* @access public
|
|
* @return void
|
|
*/
|
|
public function action_index()
|
|
{
|
|
$this->template->title = 'Dashboard';
|
|
$this->template->content = View::forge('admin/dashboard');
|
|
}
|
|
|
|
}
|
|
|
|
/* End of file app.php */
|