Fix enable/disable tfa

This commit is contained in:
Joseph Cohen
2015-01-09 14:21:53 -06:00
parent d0d812e4d3
commit 4ea90dcc2e
7 changed files with 31 additions and 23 deletions

View File

@@ -173,17 +173,17 @@ return [
'aliases' => [
'App' => 'Illuminate\Support\Facades\App',
'Auth' => 'Illuminate\Support\Facades\Auth',
'Form' => 'Illuminate\Support\Facades\Form',
'Input' => 'Illuminate\Support\Facades\Input',
'Redirect' => 'Illuminate\Support\Facades\Redirect',
'Request' => 'Illuminate\Support\Facades\Request',
'Response' => 'Illuminate\Support\Facades\Response',
'Route' => 'Illuminate\Support\Facades\Route',
'Session' => 'Illuminate\Support\Facades\Session',
'Setting' => 'CachetHQ\Cachet\Models\Setting',
'Str' => 'Illuminate\Support\Str',
'App' => 'Illuminate\Support\Facades\App',
'Auth' => 'Illuminate\Support\Facades\Auth',
'Form' => 'Illuminate\Support\Facades\Form',
'Input' => 'Illuminate\Support\Facades\Input',
'Redirect' => 'Illuminate\Support\Facades\Redirect',
'Request' => 'Illuminate\Support\Facades\Request',
'Response' => 'Illuminate\Support\Facades\Response',
'Route' => 'Illuminate\Support\Facades\Route',
'Session' => 'Illuminate\Support\Facades\Session',
'Setting' => 'CachetHQ\Cachet\Models\Setting',
'Str' => 'Illuminate\Support\Str',
],

View File

@@ -21,7 +21,7 @@
<div class="user-grid">
@foreach($teamMembers as $member)
<div class="user col-sm-3 col-xs-6">
<a href="@if(Auth::user()->id == $member->id) {{ url('dashboard/user') }} @else /dashboard/team/{{ $member->id }} @endif">
<a href="@if(Auth::user()->id == $member->id) {{ url('dashboard/user') }} @else /dashboard/team/{{ $member->id }} @endif">
<img src="{{ $member->gravatar }}" />
</a>
<div class="name">{{ $member->username }}</div>

View File

@@ -46,11 +46,11 @@
<div class="form-group">
<label class="checkbox-inline">
<input type="hidden" name="google2fa" value="0" />
<input type='checkbox' name="google2fa" value="1" {{ Auth::user()->hasEnabled2FA ? "checked" : "" }} />
<input type='checkbox' name="google2fa" value="1" {{ Auth::user()->hasTwoFactor ? "checked" : "" }} />
{{ trans('forms.setup.enable_google2fa') }}
</label>
</div>
@if(Auth::user()->hasEnabled2FA)
@if(Auth::user()->hasTwoFactor)
<div class="form-group">
<?php
$google2fa_url = PragmaRX\Google2FA\Vendor\Laravel\Facade::getQRCodeGoogleUrl(

View File

@@ -40,7 +40,7 @@ class AuthController extends Controller
// Log the user in for one request.
Auth::once($loginData);
// Do we have Two Factor Auth enabled?
if (Auth::user()->hasEnabled2FA) {
if (Auth::user()->hasTwoFactor) {
// Temporarily store the user.
Session::put('2fa_id', Auth::user()->id);

View File

@@ -33,11 +33,19 @@ class DashUserController extends Controller
{
$items = Binput::all();
$passwordChange = array_get($items, 'password');
$enable2FA = (bool) array_pull($items, 'google2fa');
// Let's enable/disable auth
$authSecret = $enable2FA && ! Auth::user()->hasEnabled2FA ? Google2FA::generateSecretKey() : '';
$items['google_2fa_secret'] = $authSecret;
if ($enable2FA && ! Auth::user()->hasTwoFactor) {
$items['google_2fa_secret'] = Google2FA::generateSecretKey();
} elseif (! $enable2FA) {
$items['google_2fa_secret'] = '';
}
if (trim($passwordChange) === '') {
unset($items['password']);
}
$updated = Auth::user()->update($items);

View File

@@ -127,10 +127,10 @@ class SetupController extends Controller
$userDetails = array_pull($postData, 'user');
$user = User::create([
'username' => $userDetails['username'],
'email' => $userDetails['email'],
'password' => $userDetails['password'],
'level' => 1,
'username' => $userDetails['username'],
'email' => $userDetails['email'],
'password' => $userDetails['password'],
'level' => 1,
]);
Auth::login($user);

View File

@@ -139,8 +139,8 @@ class User extends Model implements UserInterface, RemindableInterface
*
* @return bool
*/
public function getHasEnabled2FAAttribute()
public function getHasTwoFactorAttribute()
{
return (bool) (trim($this->google_2fa_secret) !== '');
return trim($this->google_2fa_secret) !== '';
}
}