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/register.php

63 lines
1.9 KiB

<?php
use Fuel\Core\Controller;
use Fuel\Core\View;
use Fuel\Core\Asset;
use Fuel\Core\Input;
use Fuel\Core\Config;
use Fuel\Core\FuelException;
class Controller_Register extends Controller
{
public function before()
{
parent::before();
$user = Session::get('user');
if($user)
Response::redirect('/home');
}
public function action_index()
{
$view = View::forge('register/index');
$start_js = Asset::js('jquery.min.js');
$end_js = Asset::js(['pwstrength-bootstrap.min.js', 'plex_alert.js']);
try {
$email = Input::post('email');
$username = Input::post('username');
$password = Input::post('password');
$c_password = Input::post('confirm_password');
if (Input::method() === 'POST') {
if(!$email || !$username || !$password || !$c_password)
throw new FuelException('Field(s) is/are empty!');
if (Input::post('password') !== Input::post('confirm_password'))
throw new FuelException('Your password are not identical');
if(Model_User::EmailAlreadyUse(Input::post('email')))
throw new FuelException('Email already use!');
$config = Config::load('db', true);
$user = Model_User::forge();
$user->set(array(
'username' => $username,
'email' => $email,
'password' => hash('sha512', $config['default']['hash'] . $password),
'admin' => 0,
'lastlogin' => time()
));
}
} catch (FuelException $e) {
$view->set('error', $e->getMessage());
}
$view->set_safe('start_js', $start_js);
$view->set_safe('end_js', $end_js);
return $view;
}
}