Signed-off-by: James Cole <thegrumpydictator@gmail.com>
This commit is contained in:
James Cole
2016-09-01 18:31:39 +02:00
parent 598e97d028
commit f3a8a25872
11 changed files with 241 additions and 82 deletions

View File

@@ -12,7 +12,13 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers\Admin;
use Config;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\ConfigurationRequest;
use FireflyIII\Support\Facades\FireflyConfig;
use Preferences;
use Redirect;
use Session;
use View;
/**
@@ -42,8 +48,30 @@ class ConfigurationController extends Controller
$subTitle = strval(trans('firefly.instance_configuration'));
$subTitleIcon = 'fa-wrench';
return view('admin.configuration.index', compact('subTitle', 'subTitleIcon'));
// all available configuration and their default value in case
// they don't exist yet.
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
return view('admin.configuration.index', compact('subTitle', 'subTitleIcon', 'singleUserMode'));
}
/**
* @param ConfigurationRequest $request
*/
public function store(ConfigurationRequest $request)
{
// get config values:
$singleUserMode = intval($request->get('single_user_mode')) === 1 ? true : false;
// store config values
FireflyConfig::set('single_user_mode', $singleUserMode);
// flash message
Session::flash('success', strval(trans('firefly.configuration_updated')));
Preferences::mark();
return Redirect::route('admin.configuration.index');
}
}

View File

@@ -12,6 +12,7 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers\Auth;
use Auth;
use Config;
use FireflyIII\Events\UserRegistration;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
@@ -108,6 +109,15 @@ class AuthController extends Controller
*/
public function register(Request $request)
{
// is allowed to?
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
if ($singleUserMode === true) {
$message = 'Registration is currently not available.';
return view('error', compact('message'));
}
$validator = $this->validator($request->all());
if ($validator->fails()) {
@@ -145,6 +155,19 @@ class AuthController extends Controller
return redirect($this->redirectPath());
}
/**
* Show the application login form.
*
* @return \Illuminate\Http\Response
*/
public function showLoginForm()
{
// is allowed to?
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
return view('auth.login', compact('singleUserMode'));
}
/**
* Show the application registration form.
*
@@ -154,6 +177,14 @@ class AuthController extends Controller
{
$showDemoWarning = env('SHOW_DEMO_WARNING', false);
// is allowed to?
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
if ($singleUserMode === true) {
$message = 'Registration is currently not available.';
return view('error', compact('message'));
}
return view('auth.register', compact('showDemoWarning'));
}

View File

@@ -0,0 +1,44 @@
<?php
/**
* ConfigurationRequest.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms
* of the MIT license. See the LICENSE file for details.
*/
declare(strict_types = 1);
namespace FireflyIII\Http\Requests;
use Auth;
/**
* Class ConfigurationRequest
*
*
* @package FireflyIII\Http\Requests
*/
class ConfigurationRequest extends Request
{
/**
* @return bool
*/
public function authorize()
{
// Only allow logged in users and admins
return Auth::check() && Auth::user()->hasRole('owner');
}
/**
* @return array
*/
public function rules()
{
$rules = [
'single_user_mode' => 'between:0,1|numeric',
];
return $rules;
}
}

View File

@@ -437,6 +437,7 @@ Route::group(
// FF configuration:
Route::get('/admin/configuration', ['uses' => 'Admin\ConfigurationController@index', 'as' => 'admin.configuration.index']);
Route::post('/admin/configuration', ['uses' => 'Admin\ConfigurationController@store', 'as' => 'admin.configuration.store']);
}
);

View File

@@ -79,6 +79,17 @@ class FireflyConfig
}
/**
* @param $name
* @param $value
*
* @return Configuration
*/
public function put($name, $value): Configuration
{
return $this->set($name, $value);
}
/**
* @param $name
* @param string $value