From f4f1674b551f2547604d91675607d1a7150ea5e3 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler <dominik@suma-ev.de> Date: Wed, 21 Aug 2024 14:10:16 +0200 Subject: [PATCH] login working as expected --- .../Http/Controllers/LogsApiController.php | 8 ++- metager/app/Providers/AppServiceProvider.php | 2 +- .../resources/less/metager/pages/logs.less | 21 ++++++ metager/resources/views/logs/login.blade.php | 66 ++++++++++--------- metager/webpack.mix.js | 4 ++ 5 files changed, 68 insertions(+), 33 deletions(-) create mode 100644 metager/resources/less/metager/pages/logs.less diff --git a/metager/app/Http/Controllers/LogsApiController.php b/metager/app/Http/Controllers/LogsApiController.php index d01a70d34..fe4bfc9f2 100644 --- a/metager/app/Http/Controllers/LogsApiController.php +++ b/metager/app/Http/Controllers/LogsApiController.php @@ -72,10 +72,14 @@ class LogsApiController extends Controller public function login(Request $request) { - if (!is_null(Auth::guard("logs")->user()->getAuthIdentifier())) { + if (!is_null(Auth::guard("logs")->user()) && !is_null(Auth::guard("logs")->user()->getAuthIdentifier())) { session()->flash("email", Auth::guard("logs")->user()->getAuthIdentifier()); } - return view("logs.login", ['title' => __('titles.logs.login')]); + if ($request->filled("reset")) { + session()->flush(); + return redirect(route("logs:login")); + } + return view("logs.login", ['title' => __('titles.logs.login')])->with(["css" => [mix("/css/logs.css")]]); } public function login_post(Request $request) { diff --git a/metager/app/Providers/AppServiceProvider.php b/metager/app/Providers/AppServiceProvider.php index b23e8729b..c641f7729 100644 --- a/metager/app/Providers/AppServiceProvider.php +++ b/metager/app/Providers/AppServiceProvider.php @@ -42,7 +42,7 @@ class AppServiceProvider extends ServiceProvider }); Auth::extend('logs', function (Application $app, string $name, array $config) { - return new LogsAuthGuard(Auth::createUserProvider($config['provider']), $app->make('request')); + return new LogsAuthGuard(Auth::createUserProvider($config['provider']), $app->make(\Illuminate\Http\Request::class)); }); } diff --git a/metager/resources/less/metager/pages/logs.less b/metager/resources/less/metager/pages/logs.less new file mode 100644 index 000000000..66df7c5f9 --- /dev/null +++ b/metager/resources/less/metager/pages/logs.less @@ -0,0 +1,21 @@ +#login { + >form { + display: grid; + row-gap: 0.5rem; + + .input-group { + display: grid; + + >label { + font-weight: normal; + font-size: .8rem; + margin: 0; + } + } + + >a.reset { + text-align: center; + font-size: .8rem; + } + } +} \ No newline at end of file diff --git a/metager/resources/views/logs/login.blade.php b/metager/resources/views/logs/login.blade.php index 21df09d45..7aa08dea2 100644 --- a/metager/resources/views/logs/login.blade.php +++ b/metager/resources/views/logs/login.blade.php @@ -3,39 +3,45 @@ @section('title', $title) @section('content') -<h1>MetaGer Logs API</h1> -<p>Bitte melde dich an, um Zugriff auf dein Konto zu erhalten.</p> -@if ($errors->any()) - <div class="alert alert-danger"> - <ul> - @foreach ($errors->all() as $error_message) - <li>{{ $error_message }}</li> - @endforeach - </ul> - </div> -@endif -<form action="{{ route("logs:login:post")}}" method="post"> - <input type="hidden" name="_token" value="{{ csrf_token() }}" /> - @if(session("email")) - <input type="hidden" name="email" value="{{session('email')}}"> +<div id="login"> + <h1>MetaGer Logs API</h1> + @if ($errors->any()) + <div class="alert alert-danger"> + <ul> + @foreach ($errors->all() as $error_message) + <li>{{ $error_message }}</li> + @endforeach + </ul> + </div> @endif - <div class="input-group"> - <label for="email">Email Addresse</label> + <p>Bitte melde dich an, um Zugriff auf dein Konto zu erhalten.</p> + <form action="{{ route("logs:login:post")}}" method="post"> + <input type="hidden" name="_token" value="{{ csrf_token() }}" /> @if(session("email")) - <input type="email" name="email" id="email" value="{{session('email')}}" placeholder="max@mustermann.de" - required disabled> - @else - <input type="email" name="email" id="email" value="{{old('email')}}" placeholder="max@mustermann.de" required> + <input type="hidden" name="email" value="{{session('email')}}"> @endif - </div> - @if(session("email")) - <p>Falls dieser Account bereits registriert ist, haben wir dir soeben einen Login Code per Email gesendet. Bitte - trage diesen ein um dich anzumelden.</p> <div class="input-group"> - <label for="code">Login Code</label> - <input type="text" name="code" id="code" placeholder="123456" required> + <label for="email">Email Addresse</label> + @if(session("email")) + <input type="email" name="email" id="email" value="{{session('email')}}" placeholder="max@mustermann.de" + required disabled> + @else + <input type="email" name="email" id="email" value="{{old('email')}}" placeholder="max@mustermann.de" + required> + @endif </div> - @endif - <button class="btn btn-default" type="submit">Abschicken</button> -</form> + @if(session("email")) + <div class="input-group"> + <label for="code">Login Code</label> + <input type="text" name="code" id="code" placeholder="123456" required> + </div> + <p>Falls dieser Account bereits registriert ist, haben wir dir einen Login Code per Email gesendet. Bitte + trage diesen ein um dich anzumelden.</p> + @endif + <button class="btn btn-default" type="submit">Abschicken</button> + @if(session("email")) + <a class="reset" href="{{ route('logs:login', ['reset' => '1']) }}">Neu Anmelden</a> + @endif + </form> +</div> @endsection \ No newline at end of file diff --git a/metager/webpack.mix.js b/metager/webpack.mix.js index 46fd527b5..e33aeeba7 100644 --- a/metager/webpack.mix.js +++ b/metager/webpack.mix.js @@ -72,6 +72,10 @@ mix "resources/less/metager/pages/admin/logs.less", "public/css/admin/logs.css" ) + .less( + "resources/less/metager/pages/logs.less", + "public/css/logs.css" + ) .less( "resources/less/metager/pages/help-easy-language.less", "public/css/help-easy-language.css" -- GitLab