remove "twoFactorAuthEnabled" from preferences. Kill switches for all code that references them (easier for refactor)

This commit is contained in:
James Cole
2019-08-03 19:46:12 +02:00
parent f8d2292fa8
commit 7f1bd19e45
13 changed files with 25 additions and 2 deletions

View File

@@ -88,7 +88,7 @@ class PreferenceController extends Controller
$available = [ $available = [
'language', 'customFiscalYear', 'fiscalYearStart', 'currencyPreference', 'language', 'customFiscalYear', 'fiscalYearStart', 'currencyPreference',
'transaction_journal_optional_fields', 'frontPageAccounts', 'viewRange', 'transaction_journal_optional_fields', 'frontPageAccounts', 'viewRange',
'listPageSize, twoFactorAuthEnabled', 'listPageSize',
]; ];
$preferences = new Collection; $preferences = new Collection;
@@ -166,7 +166,6 @@ class PreferenceController extends Controller
$newValue = (int)$data['data']; $newValue = (int)$data['data'];
break; break;
case 'customFiscalYear': case 'customFiscalYear':
case 'twoFactorAuthEnabled':
$newValue = 1 === (int)$data['data']; $newValue = 1 === (int)$data['data'];
break; break;
} }

View File

@@ -125,6 +125,7 @@ class UserController extends Controller
$users = $this->repository->all(); $users = $this->repository->all();
// add meta stuff. // add meta stuff.
die('the 2FA references here should be refactored.');
$users->each( $users->each(
function (User $user) { function (User $user) {
$list = ['twoFactorAuthEnabled', 'twoFactorAuthSecret']; $list = ['twoFactorAuthEnabled', 'twoFactorAuthSecret'];

View File

@@ -47,6 +47,7 @@ class TwoFactorController extends Controller
*/ */
public function index(Request $request) public function index(Request $request)
{ {
die('this auth controller must be refactored.');
$user = auth()->user(); $user = auth()->user();
// to make sure the validator in the next step gets the secret, we push it in session // to make sure the validator in the next step gets the secret, we push it in session

View File

@@ -218,6 +218,7 @@ class ProfileController extends Controller
*/ */
public function deleteCode() public function deleteCode()
{ {
die('this method is deprecated.');
app('preferences')->delete('twoFactorAuthEnabled'); app('preferences')->delete('twoFactorAuthEnabled');
app('preferences')->delete('twoFactorAuthSecret'); app('preferences')->delete('twoFactorAuthSecret');
session()->flash('success', (string)trans('firefly.pref_two_factor_auth_disabled')); session()->flash('success', (string)trans('firefly.pref_two_factor_auth_disabled'));
@@ -233,6 +234,7 @@ class ProfileController extends Controller
*/ */
public function enable2FA() public function enable2FA()
{ {
die('this method is deprecated.');
$hasSecret = (null !== app('preferences')->get('twoFactorAuthSecret')); $hasSecret = (null !== app('preferences')->get('twoFactorAuthSecret'));
// if we don't have a valid secret yet, redirect to the code page to get one. // if we don't have a valid secret yet, redirect to the code page to get one.
@@ -255,6 +257,7 @@ class ProfileController extends Controller
*/ */
public function index() public function index()
{ {
die('remove or refactor references to 2FA before continuing.');
$loginProvider = config('firefly.login_provider'); $loginProvider = config('firefly.login_provider');
// check if client token thing exists (default one) // check if client token thing exists (default one)
$count = DB::table('oauth_clients') $count = DB::table('oauth_clients')
@@ -388,6 +391,7 @@ class ProfileController extends Controller
*/ */
public function postCode(TokenFormRequest $request) public function postCode(TokenFormRequest $request)
{ {
die('this method is deprecated');
app('preferences')->set('twoFactorAuthEnabled', 1); app('preferences')->set('twoFactorAuthEnabled', 1);
app('preferences')->set('twoFactorAuthSecret', session()->get('two-factor-secret')); app('preferences')->set('twoFactorAuthSecret', session()->get('two-factor-secret'));

View File

@@ -66,6 +66,7 @@ class AuthenticateTwoFactor
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
die('this middleware is deprecated.');
/** @noinspection PhpUndefinedMethodInspection */ /** @noinspection PhpUndefinedMethodInspection */
if ($this->auth->guest()) { if ($this->auth->guest()) {
return response()->redirectTo(route('login')); return response()->redirectTo(route('login'));

View File

@@ -43,6 +43,7 @@ class RedirectIfTwoFactorAuthenticated
*/ */
public function handle($request, Closure $next, $guard = null) public function handle($request, Closure $next, $guard = null)
{ {
die('this middleware is deprecated.');
if (Auth::guard($guard)->check()) { if (Auth::guard($guard)->check()) {
$is2faEnabled = app('preferences')->get('twoFactorAuthEnabled', false)->data; $is2faEnabled = app('preferences')->get('twoFactorAuthEnabled', false)->data;
$has2faSecret = null !== app('preferences')->get('twoFactorAuthSecret'); $has2faSecret = null !== app('preferences')->get('twoFactorAuthSecret');

View File

@@ -245,6 +245,7 @@ class UserRepository implements UserRepositoryInterface
$return = []; $return = [];
// two factor: // two factor:
die('this method references 2FA and must be refactored.');
$is2faEnabled = app('preferences')->getForUser($user, 'twoFactorAuthEnabled', false)->data; $is2faEnabled = app('preferences')->getForUser($user, 'twoFactorAuthEnabled', false)->data;
$has2faSecret = null !== app('preferences')->getForUser($user, 'twoFactorAuthSecret'); $has2faSecret = null !== app('preferences')->getForUser($user, 'twoFactorAuthSecret');
$return['has_2fa'] = false; $return['has_2fa'] = false;

View File

@@ -102,6 +102,7 @@ class UserControllerTest extends TestCase
*/ */
public function testIndex(): void public function testIndex(): void
{ {
die('this test references old 2FA code.');
$repository = $this->mock(UserRepositoryInterface::class); $repository = $this->mock(UserRepositoryInterface::class);
$repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->times(3)->andReturn(true); $repository->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->times(3)->andReturn(true);
$user = $this->user(); $user = $this->user();

View File

@@ -47,6 +47,7 @@ class TwoFactorControllerTest extends TestCase
*/ */
public function testIndex(): void public function testIndex(): void
{ {
die('this test references old 2FA code.');
$this->mockDefaultConfiguration(); $this->mockDefaultConfiguration();
$this->be($this->user()); $this->be($this->user());
@@ -72,6 +73,7 @@ class TwoFactorControllerTest extends TestCase
*/ */
public function testIndexNo2FA(): void public function testIndexNo2FA(): void
{ {
die('this test references old 2FA code.');
$this->be($this->user()); $this->be($this->user());
$falsePreference = new Preference; $falsePreference = new Preference;
@@ -94,6 +96,7 @@ class TwoFactorControllerTest extends TestCase
*/ */
public function testIndexNoSecret(): void public function testIndexNoSecret(): void
{ {
die('this test references old 2FA code.');
$this->be($this->user()); $this->be($this->user());
$truePref = new Preference; $truePref = new Preference;
@@ -117,6 +120,7 @@ class TwoFactorControllerTest extends TestCase
*/ */
public function testLostTwoFactor(): void public function testLostTwoFactor(): void
{ {
die('this test references old 2FA code.');
$this->be($this->user()); $this->be($this->user());
$truePreference = new Preference; $truePreference = new Preference;

View File

@@ -170,6 +170,7 @@ class ProfileControllerTest extends TestCase
$userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->atLeast()->once()->andReturn(false); $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'demo'])->atLeast()->once()->andReturn(false);
die('the references in this test to 2FA preferences must be refactored.');
Preferences::shouldReceive('delete')->withArgs(['twoFactorAuthEnabled'])->atLeast()->once(); Preferences::shouldReceive('delete')->withArgs(['twoFactorAuthEnabled'])->atLeast()->once();
Preferences::shouldReceive('delete')->withArgs(['twoFactorAuthSecret'])->atLeast()->once(); Preferences::shouldReceive('delete')->withArgs(['twoFactorAuthSecret'])->atLeast()->once();
@@ -212,6 +213,7 @@ class ProfileControllerTest extends TestCase
Preferences::shouldReceive('set')->once()->withArgs(['twoFactorAuthEnabled', 1]); Preferences::shouldReceive('set')->once()->withArgs(['twoFactorAuthEnabled', 1]);
//Preferences::shouldReceive('lastActivity')->once(); //Preferences::shouldReceive('lastActivity')->once();
die('the references in this test to 2FA preferences must be refactored.');
$pref = new Preference; $pref = new Preference;
$pref->data = false; $pref->data = false;
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->atLeast()->once()->andReturn($pref); Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->atLeast()->once()->andReturn($pref);
@@ -220,6 +222,7 @@ class ProfileControllerTest extends TestCase
$pref->data = 'super-secret'; $pref->data = 'super-secret';
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->atLeast()->once()->andReturn($pref); Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->atLeast()->once()->andReturn($pref);
$view = new Preference; $view = new Preference;
$view->data = '1M'; $view->data = '1M';
Preferences::shouldReceive('get')->withArgs(['viewRange', Mockery::any()])->andReturn($view)->atLeast()->once(); Preferences::shouldReceive('get')->withArgs(['viewRange', Mockery::any()])->andReturn($view)->atLeast()->once();
@@ -446,6 +449,7 @@ class ProfileControllerTest extends TestCase
$this->withoutMiddleware(); $this->withoutMiddleware();
$this->session(['two-factor-secret' => $secret]); $this->session(['two-factor-secret' => $secret]);
die('the references in this test to 2FA preferences must be refactored.');
Preferences::shouldReceive('set')->withArgs(['twoFactorAuthEnabled', 1])->once(); Preferences::shouldReceive('set')->withArgs(['twoFactorAuthEnabled', 1])->once();
Preferences::shouldReceive('set')->withArgs(['twoFactorAuthSecret', $secret])->once(); Preferences::shouldReceive('set')->withArgs(['twoFactorAuthSecret', $secret])->once();
Preferences::shouldReceive('mark')->once(); Preferences::shouldReceive('mark')->once();

View File

@@ -451,6 +451,7 @@ abstract class TestCase extends BaseTestCase
$list = new Preference; $list = new Preference;
$list->data = 50; $list->data = 50;
die('the references in this test to 2FA preferences must be refactored.');
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->andReturn($false); Preferences::shouldReceive('get')->withArgs(['twoFactorAuthEnabled', false])->andReturn($false);
Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->andReturnNull(); Preferences::shouldReceive('get')->withArgs(['twoFactorAuthSecret'])->andReturnNull();
Preferences::shouldReceive('get')->withArgs(['viewRange', Mockery::any()])->andReturn($view); Preferences::shouldReceive('get')->withArgs(['viewRange', Mockery::any()])->andReturn($view);

View File

@@ -73,6 +73,7 @@ class AuthenticateTwoFactorTest extends TestCase
*/ */
public function testMiddlewareNoTwoFA(): void public function testMiddlewareNoTwoFA(): void
{ {
die('this test references old 2FA code.');
$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
$user = $this->user(); $user = $this->user();
$user->blocked = 0; $user->blocked = 0;
@@ -104,6 +105,7 @@ class AuthenticateTwoFactorTest extends TestCase
*/ */
public function testMiddlewareTwoFAAuthed(): void public function testMiddlewareTwoFAAuthed(): void
{ {
die('this test references old 2FA code.');
$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
$user = $this->user(); $user = $this->user();
$user->blocked = 0; $user->blocked = 0;
@@ -137,6 +139,7 @@ class AuthenticateTwoFactorTest extends TestCase
*/ */
public function testMiddlewareTwoFANoSecret(): void public function testMiddlewareTwoFANoSecret(): void
{ {
die('this test references old 2FA code.');
$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
$user = $this->user(); $user = $this->user();
$user->blocked = 0; $user->blocked = 0;
@@ -168,6 +171,7 @@ class AuthenticateTwoFactorTest extends TestCase
*/ */
public function testMiddlewareTwoFASecret(): void public function testMiddlewareTwoFASecret(): void
{ {
die('this test references old 2FA code.');
$this->withoutExceptionHandling(); $this->withoutExceptionHandling();
$user = $this->user(); $user = $this->user();
$user->blocked = 0; $user->blocked = 0;

View File

@@ -64,6 +64,7 @@ class RedirectIf2FAAuthenticatedTest extends TestCase
*/ */
public function testMiddlewareAuthenticated(): void public function testMiddlewareAuthenticated(): void
{ {
die('this test references old 2FA code.');
// pref for has 2fa is true // pref for has 2fa is true
$preference = new Preference; $preference = new Preference;
$preference->data = true; $preference->data = true;