Merge pull request #1296 from phecho/fix-setup

Improve SetupController
This commit is contained in:
Graham Campbell
2015-12-25 12:02:35 +00:00

View File

@@ -40,6 +40,54 @@ class SetupController extends Controller
'redis' => 'Redis',
];
/**
* Array of step1 rules.
*
* @var string[]
*/
protected $rulesStep1;
/**
* Array of step2 rules.
*
* @var string[]
*/
protected $rulesStep2;
/**
* Array of step3 rules.
*
* @var string[]
*/
protected $rulesStep3;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->rulesStep1 = [
'env.cache_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'env.session_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
];
$this->rulesStep2 = [
'settings.app_name' => 'required',
'settings.app_domain' => 'required',
'settings.app_timezone' => 'required',
'settings.app_locale' => 'required',
'settings.show_support' => 'bool',
];
$this->rulesStep3 = [
'user.username' => ['required', 'regex:/\A(?!.*[:;]-\))[ -~]+\z/'],
'user.email' => 'email|required',
'user.password' => 'required',
];
}
/**
* Returns the setup page.
*
@@ -80,10 +128,7 @@ class SetupController extends Controller
{
$postData = Binput::all();
$v = Validator::make($postData, [
'env.cache_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'env.session_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
]);
$v = Validator::make($postData, $this->rulesStep1);
if ($v->passes()) {
return Response::json(['status' => 1]);
@@ -101,15 +146,7 @@ class SetupController extends Controller
{
$postData = Binput::all();
$v = Validator::make($postData, [
'env.cache_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'env.session_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'settings.app_name' => 'required',
'settings.app_domain' => 'required',
'settings.app_timezone' => 'required',
'settings.app_locale' => 'required',
'settings.show_support' => 'bool',
]);
$v = Validator::make($postData, $this->rulesStep1 + $this->rulesStep2);
if ($v->passes()) {
return Response::json(['status' => 1]);
@@ -127,18 +164,7 @@ class SetupController extends Controller
{
$postData = Binput::all();
$v = Validator::make($postData, [
'env.cache_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'env.session_driver' => 'required|in:'.implode(',', array_keys($this->cacheDrivers)),
'settings.app_name' => 'required',
'settings.app_domain' => 'required',
'settings.app_timezone' => 'required',
'settings.app_locale' => 'required',
'settings.show_support' => 'bool',
'user.username' => ['required', 'regex:/\A(?!.*[:;]-\))[ -~]+\z/'],
'user.email' => 'email|required',
'user.password' => 'required',
]);
$v = Validator::make($postData, $this->rulesStep1 + $this->rulesStep2 + $this->rulesStep3);
if ($v->passes()) {
// Pull the user details out.