mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-16 09:22:33 +00:00
Merge branch 'develop' into 5.8-dev
# Conflicts: # app/Exceptions/Handler.php # config/firefly.php
This commit is contained in:
@@ -148,6 +148,15 @@ class BudgetLimitController extends Controller
|
||||
Log::debug(sprintf('Start: %s, end: %s', $start->format('Y-m-d'), $end->format('Y-m-d')));
|
||||
|
||||
$limit = $this->blRepository->find($budget, $currency, $start, $end);
|
||||
|
||||
// sanity check on amount:
|
||||
if ((float) $amount === 0.0) {
|
||||
$amount = '1';
|
||||
}
|
||||
if ((int) $amount > 65536) {
|
||||
$amount = '65536';
|
||||
}
|
||||
|
||||
if (null !== $limit) {
|
||||
$limit->amount = $amount;
|
||||
$limit->save();
|
||||
@@ -197,6 +206,14 @@ class BudgetLimitController extends Controller
|
||||
$amount = '0';
|
||||
}
|
||||
|
||||
// sanity check on amount:
|
||||
if ((float) $amount === 0.0) {
|
||||
$amount = '1';
|
||||
}
|
||||
if ((int) $amount > 65536) {
|
||||
$amount = '65536';
|
||||
}
|
||||
|
||||
$limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]);
|
||||
$array = $limit->toArray();
|
||||
|
||||
|
@@ -258,7 +258,7 @@ class CurrencyController extends Controller
|
||||
}
|
||||
|
||||
session()->flash('success', (string) trans('firefly.currency_is_now_disabled', ['name' => $currency->name]));
|
||||
|
||||
return response()->json([]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -308,7 +308,7 @@ class CurrencyController extends Controller
|
||||
* @param Request $request
|
||||
* @return RedirectResponse|Redirector
|
||||
*/
|
||||
public function enableCurrency(Request $request)
|
||||
public function enableCurrency(Request $request): JsonResponse
|
||||
{
|
||||
$currencyId = (int) $request->get('id');
|
||||
if ($currencyId > 0) {
|
||||
@@ -323,7 +323,7 @@ class CurrencyController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
return redirect(route('currencies.index'));
|
||||
return response()->json([]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -88,7 +88,7 @@ class DebugController extends Controller
|
||||
public function flush(Request $request)
|
||||
{
|
||||
app('preferences')->mark();
|
||||
$request->session()->forget(['start', 'end', '_previous', 'viewRange', 'range', 'is_custom_range']);
|
||||
$request->session()->forget(['start', 'end', '_previous', 'viewRange', 'range', 'is_custom_range','temp-mfa-secret','temp-mfa-codes']);
|
||||
Log::debug('Call cache:clear...');
|
||||
Artisan::call('cache:clear');
|
||||
Log::debug('Call config:clear...');
|
||||
|
@@ -34,6 +34,7 @@ use FireflyIII\Http\Requests\ProfileFormRequest;
|
||||
use FireflyIII\Http\Requests\TokenFormRequest;
|
||||
use FireflyIII\Models\Preference;
|
||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||
use FireflyIII\Support\Facades\Preferences;
|
||||
use FireflyIII\Support\Http\Controllers\CreateStuff;
|
||||
use FireflyIII\User;
|
||||
use Google2FA;
|
||||
@@ -157,37 +158,36 @@ class ProfileController extends Controller
|
||||
|
||||
return redirect(route('profile.index'));
|
||||
}
|
||||
$domain = $this->getDomain();
|
||||
$secret = null;
|
||||
$domain = $this->getDomain();
|
||||
$secretPreference = Preferences::get('temp-mfa-secret');
|
||||
$codesPreference = Preferences::get('temp-mfa-codes');
|
||||
|
||||
// generate secret if not in session
|
||||
if (!session()->has('temp-mfa-secret')) {
|
||||
if (null === $secretPreference) {
|
||||
// generate secret + store + flash
|
||||
$secret = Google2FA::generateSecretKey();
|
||||
session()->put('temp-mfa-secret', $secret);
|
||||
session()->flash('two-factor-secret', $secret);
|
||||
}
|
||||
// re-use secret if in session
|
||||
if (session()->has('temp-mfa-secret')) {
|
||||
// get secret from session and flash
|
||||
$secret = session()->get('temp-mfa-secret');
|
||||
session()->flash('two-factor-secret', $secret);
|
||||
Preferences::set('temp-mfa-secret', $secret);
|
||||
}
|
||||
|
||||
// generate codes if not in session:
|
||||
// re-use secret if in session
|
||||
if (null !== $secretPreference) {
|
||||
// get secret from session and flash
|
||||
$secret = $secretPreference->data;
|
||||
}
|
||||
|
||||
// generate recovery codes if not in session:
|
||||
$recoveryCodes = '';
|
||||
if (!session()->has('temp-mfa-codes')) {
|
||||
|
||||
if (null === $codesPreference) {
|
||||
// generate codes + store + flash:
|
||||
$recovery = app(Recovery::class);
|
||||
$recoveryCodes = $recovery->lowercase()->setCount(8)->setBlocks(2)->setChars(6)->toArray();
|
||||
session()->put('temp-mfa-codes', $recoveryCodes);
|
||||
session()->flash('two-factor-codes', $recoveryCodes);
|
||||
Preferences::set('temp-mfa-codes', $recoveryCodes);
|
||||
}
|
||||
|
||||
// get codes from session if there already:
|
||||
if (session()->has('temp-mfa-codes')) {
|
||||
$recoveryCodes = session()->get('temp-mfa-codes');
|
||||
session()->flash('two-factor-codes', $recoveryCodes);
|
||||
// get codes from session if present already:
|
||||
if (null !== $codesPreference) {
|
||||
$recoveryCodes = $codesPreference->data;
|
||||
}
|
||||
|
||||
$codes = implode("\r\n", $recoveryCodes);
|
||||
@@ -275,7 +275,11 @@ class ProfileController extends Controller
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
|
||||
Preferences::delete('temp-mfa-secret');
|
||||
Preferences::delete('temp-mfa-codes');
|
||||
$repository->setMFACode($user, null);
|
||||
app('preferences')->mark();
|
||||
|
||||
session()->flash('success', (string) trans('firefly.pref_two_factor_auth_disabled'));
|
||||
session()->flash('info', (string) trans('firefly.pref_two_factor_auth_remove_it'));
|
||||
|
||||
@@ -498,10 +502,13 @@ class ProfileController extends Controller
|
||||
$user = auth()->user();
|
||||
/** @var UserRepositoryInterface $repository */
|
||||
$repository = app(UserRepositoryInterface::class);
|
||||
/** @var string $secret */
|
||||
$secret = session()->get('two-factor-secret');
|
||||
$secret = Preferences::get('temp-mfa-secret')?->data;
|
||||
|
||||
$repository->setMFACode($user, $secret);
|
||||
|
||||
Preferences::delete('temp-mfa-secret');
|
||||
Preferences::delete('temp-mfa-codes');
|
||||
|
||||
session()->flash('success', (string) trans('firefly.saved_preferences'));
|
||||
app('preferences')->mark();
|
||||
|
||||
|
Reference in New Issue
Block a user