Finalize login page!
This commit is contained in:
parent
d63624f607
commit
6d970a4cc3
10 changed files with 40 additions and 16 deletions
|
@ -4,10 +4,23 @@ namespace Pterodactyl\Http\Controllers\Auth;
|
|||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||
|
||||
class LoginController extends AbstractLoginController
|
||||
{
|
||||
/**
|
||||
* Handle all incoming requests for the authentication routes and render the
|
||||
* base authentication view component. Vuejs will take over at this point and
|
||||
* turn the login area into a SPA.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function index(): View
|
||||
{
|
||||
return view('templates/auth.core');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle a login request to the application.
|
||||
*
|
||||
|
|
|
@ -7,6 +7,7 @@ use Cache;
|
|||
use Pterodactyl\Models\User;
|
||||
use Pterodactyl\Models\Server;
|
||||
use Pterodactyl\Models\Subuser;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Igaster\LaravelTheme\Facades\Theme;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
@ -21,6 +22,7 @@ class AppServiceProvider extends ServiceProvider
|
|||
*/
|
||||
public function boot()
|
||||
{
|
||||
Blade::doubleEncode();
|
||||
Schema::defaultStringLength(191);
|
||||
|
||||
User::observe(UserObserver::class);
|
||||
|
|
|
@ -43,15 +43,16 @@ Vue.i18n.add('en', Locales.en);
|
|||
Vue.i18n.set('en');
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'history',
|
||||
routes: [
|
||||
{
|
||||
name: 'login',
|
||||
path: '/',
|
||||
path: '/auth/login',
|
||||
component: Login,
|
||||
},
|
||||
{
|
||||
name: 'forgot-password',
|
||||
path: '/forgot-password',
|
||||
path: '/auth/password',
|
||||
component: Login,
|
||||
},
|
||||
{
|
||||
|
@ -61,7 +62,7 @@ const router = new VueRouter({
|
|||
},
|
||||
{
|
||||
name: 'reset-password',
|
||||
path: '/reset-password/:token',
|
||||
path: '/auth/password/reset/:token',
|
||||
component: ResetPassword,
|
||||
props: function (route) {
|
||||
return {
|
||||
|
|
|
@ -31,7 +31,9 @@
|
|||
</button>
|
||||
</div>
|
||||
<div class="pt-6 text-center">
|
||||
<router-link to="/" class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark">
|
||||
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
|
||||
:to="{ name: 'login' }"
|
||||
>
|
||||
{{ $t('auth.go_to_login') }}
|
||||
</router-link>
|
||||
</div>
|
||||
|
|
|
@ -50,7 +50,9 @@
|
|||
</button>
|
||||
</div>
|
||||
<div class="pt-6 text-center">
|
||||
<router-link to="/" class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark">
|
||||
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
|
||||
:to="{ name: 'login' }"
|
||||
>
|
||||
{{ $t('auth.go_to_login') }}
|
||||
</router-link>
|
||||
</div>
|
||||
|
|
|
@ -18,7 +18,8 @@
|
|||
</div>
|
||||
<div class="pt-6 text-center">
|
||||
<router-link class="text-xs text-grey tracking-wide no-underline uppercase hover:text-grey-dark"
|
||||
:to="{ name: 'login' }">
|
||||
:to="{ name: 'login' }"
|
||||
>
|
||||
Back to Login
|
||||
</router-link>
|
||||
</div>
|
||||
|
|
|
@ -84,4 +84,7 @@ return [
|
|||
'sat' => 'Saturday',
|
||||
],
|
||||
'last_used' => 'Last Used',
|
||||
|
||||
// Copyright Line
|
||||
'copyright' => '© 2015 - :year Pterodactyl Software',
|
||||
];
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
@extends('templates/auth.core')
|
||||
|
||||
@section('title')
|
||||
Login
|
||||
@endsection
|
|
@ -1,6 +1,6 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>{{ config('app.name', 'Pterodactyl') }} - @yield('title')</title>
|
||||
<title>{{ config('app.name', 'Pterodactyl') }}</title>
|
||||
|
||||
@section('meta')
|
||||
<meta charset="utf-8">
|
||||
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
<router-view></router-view>
|
||||
<p class="text-center text-grey text-xs">
|
||||
© 2015 - {{ date('Y') }} Pterodactyl Software
|
||||
{{ trans('strings.copyright', ['year' => date('Y')]) }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,14 +9,19 @@
|
|||
|
|
||||
*/
|
||||
Route::group(['middleware' => 'guest'], function () {
|
||||
// Login specific routes
|
||||
Route::get('/login', 'LoginController@showLoginForm')->name('auth.login');
|
||||
// These routes are defined so that we can continue to reference them programatically.
|
||||
// They all route to the same controller function which passes off to Vuejs.
|
||||
Route::get('/login', 'LoginController@index')->name('auth.login');
|
||||
Route::get('/password', 'LoginController@index')->name('auth.forgot-password');
|
||||
Route::get('/password/reset/{token}', 'LoginController@index')->name('auth.reset');
|
||||
|
||||
// Login endpoints.
|
||||
Route::post('/login', 'LoginController@login')->middleware('recaptcha');
|
||||
Route::post('/login/checkpoint', 'LoginCheckpointController')->name('auth.login-checkpoint');
|
||||
|
||||
// Forgot password route. A post to this endpoint will trigger an
|
||||
// email to be sent containing a reset token.
|
||||
Route::post('/password', 'ForgotPasswordController@sendResetLinkEmail')->name('auth.forgot-password')->middleware('recaptcha');
|
||||
Route::post('/password', 'ForgotPasswordController@sendResetLinkEmail')->middleware('recaptcha');
|
||||
|
||||
// Password reset routes. This endpoint is hit after going through
|
||||
// the forgot password routes to acquire a token (or after an account
|
||||
|
|
Loading…
Reference in a new issue