File: /home/bdedition/public_html/core/app/Http/Controllers/User/ProfileController.php
<?php
namespace App\Http\Controllers\User;
use Illuminate\Http\Request;
use App\Rules\FileTypeValidate;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Validation\Rules\Password;
class ProfileController extends Controller
{
public function profile()
{
$pageTitle = "Profile Setting";
$user = auth()->user();
return view('staff.profile_setting', compact('pageTitle', 'user'));
}
public function submitProfile(Request $request)
{
$request->validate([
'firstname' => 'required|string',
'lastname' => 'required|string',
'image' => ['nullable', 'image', new FileTypeValidate(['jpg', 'jpeg', 'png'])]
], [
'firstname.required' => 'The first name field is required',
'lastname.required' => 'The last name field is required'
]);
$user = auth()->user();
if ($request->hasFile('image')) {
try {
$old = $user->image;
$user->image = fileUploader($request->image, getFilePath('userProfile'), getFileSize('userProfile'), $old);
} catch (\Exception $exp) {
$notify[] = ['error', 'Couldn\'t upload your image'];
return back()->withNotify($notify);
}
}
$user->firstname = $request->firstname;
$user->lastname = $request->lastname;
$user->display_name = $request->display_name;
$user->address = $request->address;
$user->city = $request->city;
$user->state = $request->state;
$user->zip = $request->zip;
$user->save();
$notify[] = ['success', 'Profile updated successfully'];
return back()->withNotify($notify);
}
public function changePassword()
{
$pageTitle = 'Change Password';
$user = auth()->user();
return view('staff.password', compact('pageTitle', 'user'));
}
public function submitPassword(Request $request)
{
$passwordValidation = Password::min(6);
$request->validate([
'current_password' => 'required',
'password' => ['required', 'confirmed', $passwordValidation]
]);
$user = auth()->user();
if (Hash::check($request->current_password, $user->password)) {
$password = Hash::make($request->password);
$user->password = $password;
$user->save();
$notify[] = ['success', 'Password changed successfully'];
return back()->withNotify($notify);
} else {
$notify[] = ['error', 'The password doesn\'t match!'];
return back()->withNotify($notify);
}
}
}