Пусть администратор только создаст пользователя, а затем отправит по электронной почте новому пользователю сброс пароля.
Форма:
<form method="POST" action="{{ route('admin.user.store') }}" class="bg-white shadow-md rounded px-8 pt-6 pb-8 mb-4">
@csrf
<div class="form-group">
<div class="row">
<div class="col-md-6">
<label for="first_name" class="no-pad-left col-form-label white-txt muli w4">First Name</label>
<input id="first_name" type="text" class="form-control{{ $errors->has('first_name') ? ' is-invalid' : '' }}" name="first_name" placeholder="Enter First Name" value="{{ old('first_name') }}" required autofocus>
@if ($errors->has('first_name'))
<span class="invalid-feedback appearance-none block w-full bg-gray-200 text-gray-700 border border-red-500 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white">
<strong>{{ $errors->first('first_name') }}</strong>
</span>
@endif
</div>
<div class="col-md-6">
<label for="last_name" class="no-pad-left col-form-label white-txt muli w4">Last Name</label>
<input id="last_name" type="text" class="form-control{{ $errors->has('last_name') ? ' is-invalid' : '' }}" name="last_name" placeholder="Enter Last Name" value="{{ old('last_name') }}" required autofocus>
@if ($errors->has('last_name'))
<span class="invalid-feedback appearance-none block w-full bg-gray-200 text-gray-700 border border-red-500 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white">
<strong>{{ $errors->first('last_name') }}</strong>
</span>
@endif
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-md-12">
<label for="email" class="no-pad-left col-form-label white-txt muli w4">E-Mail Address</label>
<input id="email" type="email" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" name="email" placeholder="Enter Email Address" value="{{ old('email') }}" required>
@if ($errors->has('email'))
<span class="invalid-feedback appearance-none block w-full bg-gray-200 text-gray-700 border border-red-500 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white">
<strong>{{ $errors->first('email') }}</strong>
</span>
@endif
</div>
</div>
</div>
<div class="flex">
<button type="submit" class="bg-yellow-500 hover:bg-yellow-700 text-navy-500 md:w-1/4 sm:w-full w-full font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline shadow-lg" type="button">
Create User
</button>
</div>
</form>
Контроллер
public function adminUserStore(Request $request){
$validatedData = $request->validate([
'first_name'=> 'required|string|max:255',
'last_name'=> 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
]);
$quickpass = substr( str_shuffle( str_repeat( 'abcdefghijklmnopqrstuvwxyz0123456789', 10 ) ), 0, 10 );
$adminName = Auth::user()->first_name.' '.Auth::user()->last_name;
$newuser = User::create([
'first_name'=> $request->first_name,
'last_name'=> $request->last_name,
'email' => $request->email,
'password' => Hash::make($quickpass),
'role_id' => '0',
'added_by' => $adminName,
]);
Mail::to($newuser->email)
->send(new NewUserPassReset(
$request->input('first_name'),
$request->input('last_name'),
$request->input('email')
));
return back()->with('success','The user has been created and a password reset email has been sent to them.');
}
Вы должны быть в состоянии выяснить часть электронной почты. Затем в электронном письме, отправляемом новому пользователю, укажите ссылку на маршрут сброса пароля.
Вот как я это делаю.