Added Google Two Factor Authentication. Closes #326.
This commit is contained in:
committed by
James Brooks
parent
20f744602a
commit
de4ecf636f
@@ -0,0 +1,31 @@
|
||||
@extends('layout.clean')
|
||||
|
||||
@section('content')
|
||||
<div class="login">
|
||||
<div class="col-xs-12 col-xs-offset-0 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 text-center">
|
||||
<div class="welcome-logo">
|
||||
<img class="logo" height="50" src="{{ url('img/cachet-logo.svg') }}" alt="Cachet"/>
|
||||
</div>
|
||||
{{ Form::open() }}
|
||||
<fieldset>
|
||||
<legend>{{ trans('dashboard.login.two-factor') }}</legend>
|
||||
|
||||
@if(Session::has('error'))
|
||||
<p class="text-danger">{{ Session::get('error') }}</p>
|
||||
@endif
|
||||
|
||||
<div class="form-group">
|
||||
<label class="sr-only">{{ trans('forms.login.2fauth') }}</label>
|
||||
{{ Form::text('code', null, [
|
||||
'class' => 'form-control', 'placeholder' => trans('forms.login.2fauth'), 'required' => 'required'
|
||||
]) }}
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-lg btn-block btn-success">{{ trans('dashboard.login.login') }}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
{{ Form::close() }}
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
@@ -6,7 +6,7 @@
|
||||
<i class="icon ion-navicon"></i>
|
||||
</div>
|
||||
<span class="uppercase">
|
||||
<i class="ion ion-person"></i> {{ trans('dashboard.user.user') }}
|
||||
<i class="ion ion-person"></i> {{ trans('dashboard.team.member') }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="content-wrapper">
|
||||
@@ -15,9 +15,9 @@
|
||||
@if($updated = Session::get('updated'))
|
||||
<div class="alert alert-{{ $updated ? 'success' : 'danger' }}">
|
||||
@if($updated)
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.awesome'), trans('dashboard.user.edit.success')) }}
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.awesome'), trans('dashboard.team.edit.success')) }}
|
||||
@else
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.whoops'), trans('dashboard.user.edit.failure')) }}
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.whoops'), trans('dashboard.team.edit.failure')) }}
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="user-grid">
|
||||
@foreach($teamMembers as $member)
|
||||
<div class="user col-sm-3 col-xs-6">
|
||||
<a href="/dashboard/team/{{ $member->id }}">
|
||||
<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>
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
@if($updated = Session::get('updated'))
|
||||
<div class="alert alert-{{ $updated ? 'success' : 'danger' }}">
|
||||
@if($updated)
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.awesome'), trans('dashboard.user.edit.success')) }}
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.awesome'), trans('dashboard.team.edit.success')) }}
|
||||
@else
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.whoops'), trans('dashboard.user.edit.failure')) }}
|
||||
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.whoops'), trans('dashboard.team.edit.failure')) }}
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
@@ -42,6 +42,27 @@
|
||||
<input type="text" class="form-control" name="api_key" disabled value="{{ Auth::user()->api_key }}" />
|
||||
<span class="help-block">{{ trans('forms.user.api-key-help') }}</span>
|
||||
</div>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
<label class="checkbox-inline">
|
||||
<input type="hidden" name="google2fa" value="0" />
|
||||
<input type='checkbox' name="google2fa" value="1" {{ !empty(Auth::user()->google_2fa_secret) ? "checked" : "" }} />
|
||||
{{ trans('forms.setup.enable_google2fa') }}
|
||||
</label>
|
||||
</div>
|
||||
@if(Auth::user()->hasEnabled2FA)
|
||||
<div class="form-group">
|
||||
<?php
|
||||
$google2fa_url = PragmaRX\Google2FA\Vendor\Laravel\Facade::getQRCodeGoogleUrl(
|
||||
'CachetHQ',
|
||||
Auth::user()->email,
|
||||
Auth::user()->google_2fa_secret
|
||||
);
|
||||
?>
|
||||
<img src="{{ $google2fa_url }}" class="img-responsive" />
|
||||
<span class='help-block'>{{ trans('forms.user.2fa.help') }}</span>
|
||||
</div>
|
||||
@endif
|
||||
</fieldset>
|
||||
|
||||
<button type="submit" class="btn btn-success">{{ trans('forms.update') }}</button>
|
||||
|
||||
@@ -107,6 +107,9 @@
|
||||
<span class="text-danger">{{ $errors->first('user.password') }}</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<i>{{ trans('forms.setup.enable_google2fa') }}</i>
|
||||
</div>
|
||||
</fieldset>
|
||||
<hr />
|
||||
<div class="form-group">
|
||||
|
||||
Reference in New Issue
Block a user