whoami7 - Manager
:
/
home
/
n170823s
/
.trash
/
app
/
Http
/
Controllers
/
Upload File:
files >> //home/n170823s/.trash/app/Http/Controllers/UserAuthController.php
<?php namespace App\Http\Controllers; use App\Mail\VerifyEmail; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Str; use Illuminate\Validation\ValidationException; use Illuminate\Support\Facades\Log; class UserAuthController extends Controller { public function register(Request $request) { try { Log::info('Registering user with data: ', $request->all()); $validatedData = $request->validate([ 'first_name' => 'nullable|string|max:255', 'last_name' => 'nullable|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', // 'phone' => 'nullable|string|max:255', ]); $token = Str::random(60); $user = User::create([ 'name' => trim($validatedData['first_name'] . ' ' . $validatedData['last_name']), 'email' => $validatedData['email'], 'password' => Hash::make($validatedData['password']), 'verify_token' => $token, // 'phone' => $validatedData['phone'], ]); Mail::send('emails.verify', ['token' => $token], function ($message) use ($user) { $message->to($user->email); $message->subject('Email Verification'); }); return redirect()->route('user.login') ->with('message', 'Registration successful! Please check your email to verify.'); } catch (\Exception $e) { Log::error('Registration failed: ' . $e->getMessage()); // return back()->withErrors(['error' => $e->getMessage()]); return back()->withErrors(['error' => $e->getMessage()])->withInput(); } } public function login(Request $request) { Log::info('Login attempt with data: ', $request->all()); $credentials = $request->validate([ 'login' => 'required|string', 'password' => 'required|string', ]); $fieldType = filter_var($credentials['login'], FILTER_VALIDATE_EMAIL) ? 'email' : 'phone'; $user = User::where($fieldType, $credentials['login'])->first(); if (!$user) { return back()->with(['status' => false, 'msg' => 'Account not found. Please register first.']); } if (is_null($user->email_verified_at)) { return back()->with(['status' => false, 'msg' => 'Your email is not verified. Please check your inbox.']); } if (Auth::attempt([$fieldType => $credentials['login'], 'password' => $credentials['password']])) { $request->session()->regenerate(); Log::info('User logged in: ' . Auth::user()->email); return redirect()->intended('/')->with('message', 'Login successful!'); } return back()->with(['status' => false, 'msg' => 'The provided password is incorrect.'])->withInput(); } // public function verifyEmail($token) // { // $user = User::where('verify_token', $token)->firstOrFail(); // if (!$user) { // return redirect('/login')->withErrors(['error' => 'Invalid verification link.']); // } // $user->email_verified_at = now(); // $user->verify_token = null; // $user->save(); // return redirect()->route('user.login')->with('message', 'Email verified! You can now login.'); // } public function verifyEmail($token) { $user = User::where('verify_token', $token)->firstOrFail(); $user->email_verified_at = now(); $user->verify_token = null; $user->save(); // session flash message ke saath redirect return redirect()->route('user.login')->with('message', 'Email verified! You can now login.'); } public function logout(Request $request) { Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect('/login'); } public function forgotPassword(Request $request) { $request->validate([ 'email' => 'required|email|exists:users,email', ]); $user = User::where('email', $request->email)->first(); $token = Str::random(60); $user->password_reset_token = $token; $user->password_reset_sent_at = now(); $user->save(); Mail::send('emails.password_reset', ['token' => $token], function ($message) use ($user) { $message->to($user->email); $message->subject('Password Reset Request'); }); return redirect()->back()->with('success', 'Password reset link sent. Please check your email to set a new password.'); } public function resetPassword(Request $request) { $request->validate([ 'token' => 'required|string', 'password' => 'required|string|min:6|confirmed', ]); $user = User::where('password_reset_token', $request->token)->first(); if (!$user) { return redirect()->route('user.login')->withErrors(['token' => 'Invalid or expired token.']); } $user->password = Hash::make($request->password); $user->password_reset_token = null; $user->password_reset_sent_at = null; $user->save(); return redirect()->route('user.login')->with('message', 'Password reset successful! You can now log in.'); } public function verifyEmailAndShowResetForm($token) { $user = User::where('password_reset_token', $token)->first(); if (!$user) { return redirect()->route('user.login')->withErrors(['token' => 'Invalid or expired token.']); } return view('auth.login', ['token' => $token]); } public function updatePassword(Request $request) { $request->validate([ 'current_password' => 'required|string', 'new_password' => 'required|string', ]); $user = Auth::user(); // Check if current password is correct if (!Hash::check($request->current_password, $user->password)) { return back()->withErrors(['error' => 'Current password is incorrect']); } // Update password $user->password = Hash::make($request->new_password); $user->save(); // return redirect()->back()->with('success', 'Password changed successfully!'); return redirect()->route('myaccount.view', ['tab' => 'password']) ->with('success', 'Password changed successfully!'); } public function getprofile() { $user = Auth::user(); $orders = $user->orders()->latest()->get(); return view('myaccount', compact('user', 'orders')); // return view('myaccount', compact('user')); } // public function show($id) // { // $order = auth()->user()->orders()->findOrFail($id); // return view('order', compact('order')); // } public function show($id) { $order = auth()->user()->orders()->findOrFail($id); // Return the order view page return view('order', compact('order')); } public function profileupdate(Request $request) { $user = Auth::user(); $request->validate([ 'firstname' => 'required|string|max:255', 'lastname' => 'required|string|max:255', 'phone' => 'nullable|string|max:20', 'address' => 'nullable|string|max:500', 'city' => 'required|string|max:100', 'state' => 'required|string|max:100', 'postal_code' => 'required|string|max:20', 'country' => 'required|string', 'profile_picture' => 'nullable|image|mimes:jpg,jpeg,png|max:2048', ]); // Concatenate first and last name $user->name = $request->firstname . ' ' . $request->lastname; $user->phone = $request->phone; $user->address = $request->address; $user->city = $request->city; $user->state = $request->state; $user->postal_code = $request->postal_code; $user->country = $request->country; if ($request->hasFile('profile_picture')) { // Delete old picture if exists if ($user->profile_picture && file_exists(public_path($user->profile_picture))) { unlink(public_path($user->profile_picture)); } // Save new picture to public/uploads/profile $file = $request->file('profile_picture'); $filename = time() . '_' . $file->getClientOriginalName(); $file->move(public_path('uploads/profile'), $filename); // Save relative path to database $user->profile_picture = 'uploads/profile/' . $filename; } $user->save(); // return redirect()->back()->with('success', 'Profile updated successfully!'); return redirect()->route('myaccount.view', ['tab' => 'profile']) ->with('success', 'Profile updated successfully!'); // return view('myaccount', compact('user')); } }
Copyright ©2021 || Defacer Indonesia