mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-24 22:48:18 +00:00
Expand firefly config.
This commit is contained in:
@@ -35,7 +35,6 @@ MAIL_PASSWORD=null
|
|||||||
MAIL_ENCRYPTION=null
|
MAIL_ENCRYPTION=null
|
||||||
|
|
||||||
SEND_REGISTRATION_MAIL=true
|
SEND_REGISTRATION_MAIL=true
|
||||||
MUST_CONFIRM_ACCOUNT=false
|
|
||||||
|
|
||||||
SHOW_INCOMPLETE_TRANSLATIONS=false
|
SHOW_INCOMPLETE_TRANSLATIONS=false
|
||||||
|
|
||||||
|
@@ -14,6 +14,7 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Handlers\Events;
|
namespace FireflyIII\Handlers\Events;
|
||||||
|
|
||||||
use Exception;
|
use Exception;
|
||||||
|
use FireflyConfig;
|
||||||
use FireflyIII\Events\ConfirmedUser;
|
use FireflyIII\Events\ConfirmedUser;
|
||||||
use FireflyIII\Events\RegisteredUser;
|
use FireflyIII\Events\RegisteredUser;
|
||||||
use FireflyIII\Events\ResentConfirmation;
|
use FireflyIII\Events\ResentConfirmation;
|
||||||
@@ -83,8 +84,8 @@ class UserEventHandler
|
|||||||
{
|
{
|
||||||
$user = $event->user;
|
$user = $event->user;
|
||||||
$ipAddress = $event->ipAddress;
|
$ipAddress = $event->ipAddress;
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
if ($confirmAccount === false) {
|
if ($mustConfirmAccount === false) {
|
||||||
Preferences::setForUser($user, 'user_confirmed', true);
|
Preferences::setForUser($user, 'user_confirmed', true);
|
||||||
Preferences::setForUser($user, 'user_confirmed_last_mail', 0);
|
Preferences::setForUser($user, 'user_confirmed_last_mail', 0);
|
||||||
Preferences::mark();
|
Preferences::mark();
|
||||||
@@ -126,8 +127,8 @@ class UserEventHandler
|
|||||||
{
|
{
|
||||||
$user = $event->user;
|
$user = $event->user;
|
||||||
$ipAddress = $event->ipAddress;
|
$ipAddress = $event->ipAddress;
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
if ($confirmAccount === false) {
|
if ($mustConfirmAccount === false) {
|
||||||
Preferences::setForUser($user, 'user_confirmed', true);
|
Preferences::setForUser($user, 'user_confirmed', true);
|
||||||
Preferences::setForUser($user, 'user_confirmed_last_mail', 0);
|
Preferences::setForUser($user, 'user_confirmed_last_mail', 0);
|
||||||
Preferences::mark();
|
Preferences::mark();
|
||||||
|
@@ -14,7 +14,6 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Http\Controllers\Admin;
|
namespace FireflyIII\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
|
||||||
use Config;
|
|
||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Http\Requests\ConfigurationRequest;
|
use FireflyIII\Http\Requests\ConfigurationRequest;
|
||||||
use FireflyIII\Support\Facades\FireflyConfig;
|
use FireflyIII\Support\Facades\FireflyConfig;
|
||||||
@@ -59,9 +58,11 @@ class ConfigurationController extends Controller
|
|||||||
|
|
||||||
// all available configuration and their default value in case
|
// all available configuration and their default value in case
|
||||||
// they don't exist yet.
|
// they don't exist yet.
|
||||||
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
|
$singleUserMode = FireflyConfig::get('single_user_mode', config('firefly.configuration.single_user_mode'))->data;
|
||||||
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
|
$isDemoSite = FireflyConfig::get('is_demo_site', config('firefly.configuration.is_demo_site'))->data;
|
||||||
|
|
||||||
return view('admin.configuration.index', compact('subTitle', 'subTitleIcon', 'singleUserMode'));
|
return view('admin.configuration.index', compact('subTitle', 'subTitleIcon', 'singleUserMode', 'mustConfirmAccount', 'isDemoSite'));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,6 +78,8 @@ class ConfigurationController extends Controller
|
|||||||
|
|
||||||
// store config values
|
// store config values
|
||||||
FireflyConfig::set('single_user_mode', $data['single_user_mode']);
|
FireflyConfig::set('single_user_mode', $data['single_user_mode']);
|
||||||
|
FireflyConfig::set('must_confirm_account', $data['must_confirm_account']);
|
||||||
|
FireflyConfig::set('is_demo_site', $data['is_demo_site']);
|
||||||
|
|
||||||
// flash message
|
// flash message
|
||||||
Session::flash('success', strval(trans('firefly.configuration_updated')));
|
Session::flash('success', strval(trans('firefly.configuration_updated')));
|
||||||
|
@@ -14,6 +14,7 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Http\Controllers\Admin;
|
namespace FireflyIII\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
|
||||||
|
use FireflyConfig;
|
||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
@@ -50,16 +51,16 @@ class UserController extends Controller
|
|||||||
$mainTitleIcon = 'fa-hand-spock-o';
|
$mainTitleIcon = 'fa-hand-spock-o';
|
||||||
$subTitle = strval(trans('firefly.user_administration'));
|
$subTitle = strval(trans('firefly.user_administration'));
|
||||||
$subTitleIcon = 'fa-users';
|
$subTitleIcon = 'fa-users';
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
$users = $repository->all();
|
$users = $repository->all();
|
||||||
|
|
||||||
// add meta stuff.
|
// add meta stuff.
|
||||||
$users->each(
|
$users->each(
|
||||||
function (User $user) use ($confirmAccount) {
|
function (User $user) use ($mustConfirmAccount) {
|
||||||
// is user activated?
|
// is user activated?
|
||||||
$isConfirmed = Preferences::getForUser($user, 'user_confirmed', false)->data;
|
$isConfirmed = Preferences::getForUser($user, 'user_confirmed', false)->data;
|
||||||
$user->activated = true;
|
$user->activated = true;
|
||||||
if ($isConfirmed === false && $confirmAccount === true) {
|
if ($isConfirmed === false && $mustConfirmAccount === true) {
|
||||||
$user->activated = false;
|
$user->activated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -123,7 +123,11 @@ class RegisterController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function showRegistrationForm(Request $request)
|
public function showRegistrationForm(Request $request)
|
||||||
{
|
{
|
||||||
$showDemoWarning = config('firefly.show-demo-warning', false);
|
// is demo site?
|
||||||
|
$isDemoSite = FireflyConfig::get('is_demo_site', Config::get('firefly.configuration.is_demo_site'))->data;
|
||||||
|
|
||||||
|
// activate account?
|
||||||
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', Config::get('firefly.configuration.must_confirm_account'))->data;
|
||||||
|
|
||||||
// is allowed to?
|
// is allowed to?
|
||||||
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
|
$singleUserMode = FireflyConfig::get('single_user_mode', Config::get('firefly.configuration.single_user_mode'))->data;
|
||||||
@@ -136,7 +140,7 @@ class RegisterController extends Controller
|
|||||||
|
|
||||||
$email = $request->old('email');
|
$email = $request->old('email');
|
||||||
|
|
||||||
return view('auth.register', compact('showDemoWarning', 'email'));
|
return view('auth.register', compact('isDemoSite', 'email', 'mustConfirmAccount'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -14,6 +14,7 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Http\Middleware;
|
namespace FireflyIII\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
|
use FireflyConfig;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Preferences;
|
use Preferences;
|
||||||
@@ -45,11 +46,11 @@ class IsConfirmed
|
|||||||
return redirect()->guest('login');
|
return redirect()->guest('login');
|
||||||
}
|
}
|
||||||
// must the user be confirmed in the first place?
|
// must the user be confirmed in the first place?
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
// user must be logged in, then continue:
|
// user must be logged in, then continue:
|
||||||
$isConfirmed = Preferences::get('user_confirmed', false)->data;
|
$isConfirmed = Preferences::get('user_confirmed', false)->data;
|
||||||
|
|
||||||
if ($isConfirmed === false && $confirmAccount === true) {
|
if ($isConfirmed === false && $mustConfirmAccount === true) {
|
||||||
|
|
||||||
// user account is not confirmed, redirect to
|
// user account is not confirmed, redirect to
|
||||||
// confirmation page:
|
// confirmation page:
|
||||||
|
@@ -14,6 +14,7 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Http\Middleware;
|
namespace FireflyIII\Http\Middleware;
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
|
use FireflyConfig;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Preferences;
|
use Preferences;
|
||||||
@@ -45,10 +46,10 @@ class IsNotConfirmed
|
|||||||
return redirect()->guest('login');
|
return redirect()->guest('login');
|
||||||
}
|
}
|
||||||
// must the user be confirmed in the first place?
|
// must the user be confirmed in the first place?
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
// user must be logged in, then continue:
|
// user must be logged in, then continue:
|
||||||
$isConfirmed = Preferences::get('user_confirmed', false)->data;
|
$isConfirmed = Preferences::get('user_confirmed', false)->data;
|
||||||
if ($isConfirmed || $confirmAccount === false) {
|
if ($isConfirmed || $mustConfirmAccount === false) {
|
||||||
// user account is confirmed, simply send them home.
|
// user account is confirmed, simply send them home.
|
||||||
return redirect(route('home'));
|
return redirect(route('home'));
|
||||||
}
|
}
|
||||||
|
@@ -37,6 +37,8 @@ class ConfigurationRequest extends Request
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'single_user_mode' => intval($this->get('single_user_mode')) === 1,
|
'single_user_mode' => intval($this->get('single_user_mode')) === 1,
|
||||||
|
'must_confirm_account' => intval($this->get('must_confirm_account')) === 1,
|
||||||
|
'is_demo_site' => intval($this->get('is_demo_site')) === 1,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,6 +49,8 @@ class ConfigurationRequest extends Request
|
|||||||
{
|
{
|
||||||
$rules = [
|
$rules = [
|
||||||
'single_user_mode' => 'between:0,1|numeric',
|
'single_user_mode' => 'between:0,1|numeric',
|
||||||
|
'must_confirm_account' => 'between:0,1|numeric',
|
||||||
|
'is_demo_site' => 'between:0,1|numeric',
|
||||||
];
|
];
|
||||||
|
|
||||||
return $rules;
|
return $rules;
|
||||||
|
@@ -14,6 +14,7 @@ declare(strict_types = 1);
|
|||||||
namespace FireflyIII\Repositories\User;
|
namespace FireflyIII\Repositories\User;
|
||||||
|
|
||||||
|
|
||||||
|
use FireflyConfig;
|
||||||
use FireflyIII\Models\BudgetLimit;
|
use FireflyIII\Models\BudgetLimit;
|
||||||
use FireflyIII\Models\Role;
|
use FireflyIII\Models\Role;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
@@ -94,10 +95,10 @@ class UserRepository implements UserRepositoryInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
// is user activated?
|
// is user activated?
|
||||||
$confirmAccount = env('MUST_CONFIRM_ACCOUNT', false);
|
$mustConfirmAccount = FireflyConfig::get('must_confirm_account', config('firefly.configuration.must_confirm_account'))->data;
|
||||||
$isConfirmed = Preferences::getForUser($user, 'user_confirmed', false)->data;
|
$isConfirmed = Preferences::getForUser($user, 'user_confirmed', false)->data;
|
||||||
$return['is_activated'] = true;
|
$return['is_activated'] = true;
|
||||||
if ($isConfirmed === false && $confirmAccount === true) {
|
if ($isConfirmed === false && $mustConfirmAccount === true) {
|
||||||
$return['is_activated'] = false;
|
$return['is_activated'] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -20,6 +20,8 @@ declare(strict_types = 1);
|
|||||||
return [
|
return [
|
||||||
'configuration' => [
|
'configuration' => [
|
||||||
'single_user_mode' => true,
|
'single_user_mode' => true,
|
||||||
|
'is_demo_site' => false,
|
||||||
|
'must_confirm_account' => false,
|
||||||
],
|
],
|
||||||
'chart' => 'chartjs',
|
'chart' => 'chartjs',
|
||||||
'version' => '4.1.6',
|
'version' => '4.1.6',
|
||||||
@@ -204,5 +206,4 @@ return [
|
|||||||
],
|
],
|
||||||
'default_currency' => 'EUR',
|
'default_currency' => 'EUR',
|
||||||
'default_language' => 'en_US',
|
'default_language' => 'en_US',
|
||||||
'show-demo-warning' => false,
|
|
||||||
];
|
];
|
||||||
|
@@ -806,6 +806,11 @@ return [
|
|||||||
'budgets_with_limits' => 'budget(s) with configured amount',
|
'budgets_with_limits' => 'budget(s) with configured amount',
|
||||||
'rule_or_rules' => 'rule(s)',
|
'rule_or_rules' => 'rule(s)',
|
||||||
'rulegroup_or_groups' => 'rule group(s)',
|
'rulegroup_or_groups' => 'rule group(s)',
|
||||||
|
'setting_must_confirm_account' => 'Account confirmation',
|
||||||
|
'setting_must_confirm_account_explain' => 'When this setting is enabled, users must activate their account before it can be used.',
|
||||||
|
'configuration_updated' => 'The configuration has been updated',
|
||||||
|
'setting_is_demo_site' => 'Demo site',
|
||||||
|
'setting_is_demo_site_explain' => 'If you check this box, this installation will behave as if it is the demo site, which can have weird side effects.',
|
||||||
|
|
||||||
// split a transaction:
|
// split a transaction:
|
||||||
'transaction_meta_data' => 'Transaction meta-data',
|
'transaction_meta_data' => 'Transaction meta-data',
|
||||||
|
@@ -150,6 +150,8 @@ return [
|
|||||||
// admin
|
// admin
|
||||||
'domain' => 'Domain',
|
'domain' => 'Domain',
|
||||||
'single_user_mode' => 'Single user mode',
|
'single_user_mode' => 'Single user mode',
|
||||||
|
'must_confirm_account' => 'New users must activate account',
|
||||||
|
'is_demo_site' => 'Is demo site',
|
||||||
|
|
||||||
// import
|
// import
|
||||||
'import_file' => 'Import file',
|
'import_file' => 'Import file',
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
<input type="hidden" name="_token" value="{{ csrf_token() }}"/>
|
||||||
|
|
||||||
<!-- single user mode -->
|
{# single user mode #}
|
||||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
||||||
<div class="box box-default">
|
<div class="box box-default">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
@@ -24,16 +24,47 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{# need to activate account #}
|
||||||
|
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
||||||
|
<div class="box box-default">
|
||||||
|
<div class="box-header with-border">
|
||||||
|
<h3 class="box-title">{{ 'setting_must_confirm_account'|_ }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="box-body">
|
||||||
|
<p class="text-info">
|
||||||
|
{{ 'setting_must_confirm_account_explain'|_ }}
|
||||||
|
</p>
|
||||||
|
{{ ExpandedForm.checkbox('must_confirm_account','1', mustConfirmAccount) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{# installation is demo site #}
|
||||||
|
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
||||||
|
<div class="box box-default">
|
||||||
|
<div class="box-header with-border">
|
||||||
|
<h3 class="box-title">{{ 'setting_is_demo_site'|_ }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="box-body">
|
||||||
|
<p class="text-info">
|
||||||
|
{{ 'setting_is_demo_site_explain'|_ }}
|
||||||
|
</p>
|
||||||
|
{{ ExpandedForm.checkbox('is_demo_site','1', isDemoSite) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- configuration setting block -->
|
<!-- configuration setting block -->
|
||||||
<!--
|
<!--
|
||||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12">
|
||||||
<div class="box box-default">
|
<div class="box box-default">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
<h3 class="box-title">{{ 'setting'|_ }}</h3>
|
<h3 class="box-title">{{ 'setting_x'|_ }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
Bla bla bla
|
<p class="text-info">
|
||||||
|
{{ 'setting_x_explain'|_ }}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
<div class="register-box-body">
|
<div class="register-box-body">
|
||||||
<p class="login-box-msg">Register a new account</p>
|
<p class="login-box-msg">Register a new account</p>
|
||||||
{% if showDemoWarning %}
|
{% if isDemoSite %}
|
||||||
<p class="text-info login-box-msg">Please note that an account on this site will only
|
<p class="text-info login-box-msg">Please note that an account on this site will only
|
||||||
work for one (1) month.</p>
|
work for one (1) month.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -27,9 +27,9 @@
|
|||||||
|
|
||||||
<div class="form-group has-feedback">
|
<div class="form-group has-feedback">
|
||||||
<input type="email" name="email" value="{{ email }}" class="form-control" placeholder="Email"/>
|
<input type="email" name="email" value="{{ email }}" class="form-control" placeholder="Email"/>
|
||||||
{% if showDemoWarning %}
|
{% if mustConfirmAccount %}
|
||||||
<p class="help-block">You will receive an email from Firefly III. If your email address
|
<p class="help-block">
|
||||||
is incorrect, your account may not work.</p>
|
You must activate your account. If your email address is incorrect, your account will not work.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group has-feedback">
|
<div class="form-group has-feedback">
|
||||||
|
Reference in New Issue
Block a user