You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

72 lines
2.0 KiB

<?php
namespace App\Http\Controllers\Profile;
use App\Models\User;
use Illuminate\Http\Request;
use App\Traits\Authorizable;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Auth\Events\PasswordReset;
use Illuminate\Support\Str;
use Illuminate\Validation\Rules;
class ChangePasswordController extends Controller
{
use Authorizable;
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
// $result = Client::latest()->paginate();
$me = Auth::user();
return view('profile.changepassword', compact('me'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Permission $permission
* @return \Illuminate\Http\Response
*/
public function update(Request $request, User $user)
{
$request->validate([
'current' => ['required'],
'password' => ['required', Rules\Password::defaults()],
]);
$me = Auth::user();
$user = User::find($me->id);
if(Hash::check($request->current, $user->password)) {
if(!Hash::check($request->password, $user->password)) {
if($request->password == $request->password_confirmation) {
$user->forceFill([
'password' => Hash::make($request->password),
'remember_token' => Str::random(60),
])->save();
event(new PasswordReset($user));
flash()->success('Your password has been updated.');
return redirect()->route('info.index');
} else {
return back()->with("error", "Password confirm failed!");
}
}
else {
return back()->with("error", "New Password match current password!");
}
}
else {
return back()->with("error", "Current Password Doesn't match!");
}
}
}