Password reset working locally

This commit is contained in:
Torsten 2017-08-25 12:57:58 +02:00
parent 11135e743c
commit 0abaeb2eba
23 changed files with 262 additions and 118 deletions

View file

@ -29,15 +29,4 @@ class ForgotPasswordController extends Controller
{
$this->middleware('guest');
}
/**
* Display the form to request a password reset link.
*
* @return \Illuminate\Http\Response
*/
public function showLinkRequestForm()
{
return view('auth.passwords.email');
}
}

View file

@ -58,7 +58,7 @@ class RegisterController extends Controller
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
* @return \App\User
*/
protected function create(array $data)
{

View file

@ -0,0 +1,28 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('home');
}
}

View file

@ -60,11 +60,9 @@ class RoundmailController extends Controller
$missingJokerMailList=array();
$adminMailList=array();
$topic="";
//TODO: umrüsten für Anzeige von Bestandsmails
$send_date = date("d.m.Y h:i:s", time());
$send_date = date("d.m.Y h:i:s", time());
Log::info("Users to check for missing tipps:" . sizeof($users));
foreach($users as $user) {
@ -120,7 +118,7 @@ class RoundmailController extends Controller
return view('roundmails.show',compact('mail_id','activeMailList','inactiveMailList','missingTippMailList','missingJokerMailList','adminMailList','send_date','user_id','topic', 'mail_message', 'recipients', 'sender_name','viewmode'));
return view('roundmails.show',compact('mail_id','activeMailList','inactiveMailList','missingTippMailList','missingJokerMailList','adminMailList','send_date','user_id','topic', 'mail_message', 'recipients', 'sender_name','viewmode'));
}
@ -148,84 +146,47 @@ class RoundmailController extends Controller
}
*/
$u = new User(['email'=>'magus@zauberturm.de','name'=>'Torsten der Schneider']);
$r = new RoundmailMailer();
$r->user_id = Auth::user()->id;
$r->send_date = Carbon\Carbon::now();
$r->recipients = request('recipients');
$r->topic = request('topic');
$r->mail_message = str_replace("\n","<br/>", request('message'));
// Die hier ist nur für die DB
$rm = new RoundMail();
$rm->send_date=$r->send_date;
$rm->recipients=$r->recipients;
$rm->user_id=$r->user_id;
$rm->topic=$r->topic;
$rm->message=$r->mail_message;
$rm->save();
$r = new RoundmailMailer();
$r->user_id = Auth::user()->id;
$r->send_date = Carbon\Carbon::now();
$r->recipients = request('recipients');
$r->topic = request('topic');
$r->mail_message = str_replace("\n","<br/>", request('message'));
\Mail::to(explode(",",$r->recipients))->send($r);
// Die hier ist nur für die DB
$rm = new RoundMail();
$rm->send_date=$r->send_date;
$rm->recipients=$r->recipients;
$rm->user_id=$r->user_id;
$rm->topic=$r->topic;
$rm->message=$r->mail_message;
$rm->save();
// TODO: refactor, loop is also used in index method.
// COPY/PASTE, please refactor!
$mails_db = Roundmail::all();
$mails=array();
foreach($mails_db as $mail_db) {
$fields=array();
$fields['id'] = $mail_db->id;
$fields['send_date'] = $mail_db->send_date;
$fields['topic'] = $mail_db->topic;
\Mail::to(explode(",",$r->recipients))->send($r);
// COPY/PAST, please replace !
$user_id=Auth::user()->id;
$users = DB::table('users')->where('deleted',null)->orderBy('lastname')->get();
$active_users=array();
$activeMailList=array();
$inactive_users=array();
$inactiveMailList=array();
$users_with_missing_tips=array(); // $users_with_missing_tips (or jokers)
$missingMailList=array();
$adminMailList=array();
$topic="";
//TODO: umrüsten für Anzeige von Bestandsmails
$maildate = date("d.m.Y h:i:s", time());
foreach($users as $user) {
if (User::is_season_paid($user->id)) {
array_push($active_users,$user);
array_push($activeMailList,$user->email);
} else {
array_push($inactive_users, $user);
array_push($inactiveMailList,$user->email);
}
if (User::hasMissingJoker($user->id) || User::hasMissingTipp($user->id)) {
array_push($users_with_missing_tips,$user);
array_push($missingMailList,$user->email);
}
if ($user->admin) {
array_push($adminMailList,$user->email);
}
$sender = User::where('id','=',$mail_db->user_id)->first();
$sender_name="(Gelöschter Anwender)";
if ($sender) { $sender_name=$sender->name; }
$fields['sender'] = $sender_name;
array_push($mails,$fields);
}
$mails=array_reverse($mails);
$activeMailList = implode(",",$activeMailList);
$inactiveMailList = implode(",",$inactiveMailList);
$missingMailList = implode(",",$missingMailList);
$adminMailList = implode(",",$adminMailList);
return view('roundmails.index',compact('mails'));
$round_id=-1;
return view('roundmails.show',compact('round_id','activeMailList','inactiveMailList','missingMailList','adminMailList','maildate','user_id','topic'));
}
}

View file

@ -12,7 +12,7 @@ return [
| any other location as required by the application or its packages.
*/
'name' => env('APP_NAME', 'Laravel'),
'name' => env('APP_NAME', 'Hoschis Tippspiel'),
/*
|--------------------------------------------------------------------------

View file

@ -16,7 +16,10 @@ return [
|
*/
'driver' => env('MAIL_DRIVER', 'smtp'),
//'driver' => env('MAIL_DRIVER', 'smtp'),
'driver' => env('MAIL_DRIVER', 'log'),
/*
|--------------------------------------------------------------------------
@ -66,8 +69,8 @@ return [
|--------------------------------------------------------------------------
|
| Here you may specify the encryption protocol that should be used when
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
| the application send e-mail messages. A sensible default using the
| transport layer security protocol should provide great security.
|
*/

View file

@ -60,7 +60,7 @@ footer p {
.blink_text {
animation:1s blinker linear infinite;
animation: blinker 1s linear infinite;
-webkit-animation:1s blinker linear infinite;
-moz-animation:1s blinker linear infinite;
@ -80,7 +80,5 @@ footer p {
}
@keyframes blinker {
0% { opacity: 1.0; }
50% { opacity: 0.0; }
100% { opacity: 1.0; }
50% { opacity: 0; }
}

View file

@ -13,10 +13,10 @@ return [
|
*/
'password' => 'Passwords must be at least six characters and match the confirmation.',
'reset' => 'Your password has been reset!',
'sent' => 'We have e-mailed your password reset link!',
'token' => 'This password reset token is invalid.',
'user' => "We can't find a user with that e-mail address.",
'password' => 'Das Passwort muss mind. 6 Zeichen haben und beide Passwort-Eingaben müssen übereinstimmen',
'reset' => 'Dein Passwort wurde zurückgesetzt!',
'sent' => 'Wir haben Dir eine Rücksetzungs-Mail zugeschickt!',
'token' => 'Ungültiges Password Reset Token.',
'user' => "Es gibt keinen Spieler mit dieser E-Mail Adresse",
];

View file

@ -6,7 +6,6 @@
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Login</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route('login') }}">
{{ csrf_field() }}

View file

@ -1 +1,46 @@
Hallo Welt ! (email.blade.php)
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Passwort zurücksetzen</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<form class="form-horizontal" method="POST" action="{{ route('password.email') }}">
{{ csrf_field() }}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required>
@if ($errors->has('email'))
<span class="help-block">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Rücksetzungs-Mail absenden
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -5,9 +5,15 @@
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Reset Password</div>
<div class="panel-heading">Passwort zurücksetzen</div>
<div class="panel-body">
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
<form class="form-horizontal" method="POST" action="{{ route('password.request') }}">
{{ csrf_field() }}
@ -57,7 +63,7 @@
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Reset Password
Passwort zurücksetzen
</button>
</div>
</div>

View file

@ -6,7 +6,6 @@
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Register</div>
<div class="panel-body">
<form class="form-horizontal" method="POST" action="{{ route('register') }}">
{{ csrf_field() }}

View file

@ -1 +1 @@
Click here to reset your password: {{ url('password/reset/'.$token) }}
Hier klicken um Dein Passwort zurückzusetzen: {{ url('password/reset/'.$token) }}

View file

@ -0,0 +1,17 @@
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection

View file

@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<nav class="navbar navbar-default navbar-static-top">
<div class="container">
<div class="navbar-header">
<!-- Collapsed Hamburger -->
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse">
<span class="sr-only">Toggle Navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Branding Image -->
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name', 'Laravel') }}
</a>
</div>
<div class="collapse navbar-collapse" id="app-navbar-collapse">
<!-- Left Side Of Navbar -->
<ul class="nav navbar-nav">
&nbsp;
</ul>
<!-- Right Side Of Navbar -->
<ul class="nav navbar-nav navbar-right">
<!-- Authentication Links -->
@if (Auth::guest())
<li><a href="{{ route('login') }}">Login</a></li>
<li><a href="{{ route('register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
<li>
<a href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Logout
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
</li>
</ul>
</li>
@endif
</ul>
</div>
</div>
</nav>
@yield('content')
</div>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}"></script>
</body>
</html>

View file

@ -13,7 +13,11 @@
<div class="col-md-12">
<label class="col-md-2" style="width:200px;">Datum der Mail</label>
@if($send_date)
<input class="col-md-8" style="width:400px" id="send_date" name="send_date" value="{{ $send_date }}" readonly></input>
@else
<input class="col-md-8" style="width:400px" id="send_date" name="send_date" value="no send !" readonly></input>
@endif
</div>
<div class="col-md-12">
<label class="col-md-2" style="width:200px;">Versender:</label>

View file

@ -12,12 +12,13 @@
*/
Route::get('/','UsersController@main')->name('home');
Route::get('/register','RegistrationController@create');
Route::post('/register','RegistrationController@store');
Route::get('/login','SessionsController@create');
Route::get('/login','SessionsController@create')->name('login');
Route::post('/login','SessionsController@store');
Route::get('/logout','SessionsController@destroy');
@ -55,18 +56,31 @@ Route::get('/roundmails','RoundmailController@index');
Route::get('/roundmails/show/{mail_id}','RoundmailController@show');
Route::post('/roundmails/send','RoundmailController@send');
// php artisan route:list
//Auth::routes();
Route::post('/password/email','Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('/password/reset','Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::get('/password/reset/{token}','Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('/password/reset','Auth\ResetPasswordController@reset');
Route::get('/register','Auth\RegisterController@showRegistrationForm')->name('register');
Route::get('/resetpassword','Auth\ResetPasswordController@showResetForm');
Route::get('test','UsersController@test');
//Route::get('/resetpassword','Auth\ResetPasswordController@showResetForm');
//Route::get('test','UsersController@test');
/*
Route::get('/reset','UsersController@reset')->name('password.email');
Route::post('/reset','UsersController@processReset')->name('password.request');
*/
Route::get('/password/reset','Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('/password/email','Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
//Route::get('/password/reset','Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
//Route::post('/password/email','Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
//Route::get('/abc','Auth\ForgotPasswordController@abc');
//Auth::routes();
Route::get('/home', 'UsersController@main')->name('home');
Route::get('/abc','Auth\ForgotPasswordController@abc');
//Route::auth();

View file

@ -15,6 +15,7 @@ return array(
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php',
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\GamesController' => $baseDir . '/app/Http/Controllers/GamesController.php',
'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\PaymentController' => $baseDir . '/app/Http/Controllers/PaymentController.php',
'App\\Http\\Controllers\\RegistrationController' => $baseDir . '/app/Http/Controllers/RegistrationController.php',
'App\\Http\\Controllers\\RoundmailController' => $baseDir . '/app/Http/Controllers/RoundmailController.php',

View file

@ -287,6 +287,7 @@ class ComposerStaticInita19fb0695e1b61b4feeb3cc3fbdd2feb
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php',
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
'App\\Http\\Controllers\\GamesController' => __DIR__ . '/../..' . '/app/Http/Controllers/GamesController.php',
'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php',
'App\\Http\\Controllers\\PaymentController' => __DIR__ . '/../..' . '/app/Http/Controllers/PaymentController.php',
'App\\Http\\Controllers\\RegistrationController' => __DIR__ . '/../..' . '/app/Http/Controllers/RegistrationController.php',
'App\\Http\\Controllers\\RoundmailController' => __DIR__ . '/../..' . '/app/Http/Controllers/RoundmailController.php',

View file

@ -33,7 +33,7 @@
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Send Password Reset Link
Passwort-Rücksetzungslink zusenden
</button>
</div>
</div>

View file

@ -63,7 +63,7 @@
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Reset Password
Passwort zurücksetzen
</button>
</div>
</div>

View file

@ -45,8 +45,8 @@ class ResetPassword extends Notification
public function toMail($notifiable)
{
return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', url(config('app.url').route('password.reset', $this->token, false)))
->line('If you did not request a password reset, no further action is required.');
->line('Du erhältst diese Mail, weil wir eine Anforderung zur Passwort-Rücksetzung erhalten haben.')
->action('Passwort zurücksetzen', url(config('app.url').route('password.reset', $this->token, false)))
->line('Wenn Du keine Rücksetzung angefordert hast, ignoriere diese Mail.');
}
}

View file

@ -45,14 +45,13 @@
@if (! empty($salutation))
{{ $salutation }}
@else
Regards,<br>{{ config('app.name') }}
Beste Grüße,<br>{{ config('app.name') }}
@endif
{{-- Subcopy --}}
@isset($actionText)
@component('mail::subcopy')
If you’re having trouble clicking the "{{ $actionText }}" button, copy and paste the URL below
into your web browser: [{{ $actionUrl }}]({{ $actionUrl }})
Sollte es Probleme mit dem "{{ $actionText }}" Knopf geben, Kopiere die folgende Adresse in Deinen Web Browser und lade sie: [{{ $actionUrl }}]({{ $actionUrl }})
@endcomponent
@endisset
@endcomponent