request Model is added
This commit is contained in:
@@ -1,41 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Models\Admin;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Models\Admin;
|
||||
|
||||
|
||||
|
||||
class AdminAuthController extends Controller
|
||||
{
|
||||
// 🟢 Show login form
|
||||
/**
|
||||
* Show the admin login page
|
||||
*/
|
||||
public function showLoginForm()
|
||||
{
|
||||
return view('admin.login');
|
||||
}
|
||||
|
||||
// 🟢 Handle login request
|
||||
/**
|
||||
* Handle admin login
|
||||
*/
|
||||
public function login(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'email' => 'required|email',
|
||||
'password' => 'required|min:6',
|
||||
'email' => 'required|email',
|
||||
'password' => 'required|string|min:6',
|
||||
]);
|
||||
|
||||
$credentials = $request->only('email', 'password');
|
||||
|
||||
if (Auth::guard('admin')->attempt($credentials)) {
|
||||
return redirect()->route('admin.dashboard')->with('success', 'Login successful!');
|
||||
// Try to log in using the 'admin' guard
|
||||
if (Auth::guard('admin')->attempt($request->only('email', 'password'))) {
|
||||
return redirect()->route('admin.dashboard')->with('success', 'Welcome back, Admin!');
|
||||
}
|
||||
|
||||
return back()->withErrors(['email' => 'Invalid credentials.'])->withInput();
|
||||
return back()->withErrors(['email' => 'Invalid email or password.']);
|
||||
}
|
||||
|
||||
// 🟢 Logout
|
||||
/**
|
||||
* Logout admin
|
||||
*/
|
||||
public function logout(Request $request)
|
||||
{
|
||||
Auth::guard('admin')->logout();
|
||||
|
||||
// Destroy the session completely
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
||||
68
app/Http/Controllers/Admin/UserRequestController.php
Normal file
68
app/Http/Controllers/Admin/UserRequestController.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use App\Models\RequestModel as CustomerRequest;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class UserRequestController extends Controller
|
||||
{
|
||||
// Show all requests
|
||||
public function index()
|
||||
{
|
||||
$requests = CustomerRequest::orderBy('id', 'desc')->get();
|
||||
return view('admin.requests', compact('requests'));
|
||||
}
|
||||
|
||||
// Approve user request
|
||||
public function approve($id)
|
||||
{
|
||||
$requestData = CustomerRequest::findOrFail($id);
|
||||
|
||||
DB::beginTransaction();
|
||||
try {
|
||||
// Generate unique Customer ID
|
||||
$latestUser = User::orderBy('id', 'desc')->first();
|
||||
$nextId = $latestUser ? $latestUser->id + 1 : 1;
|
||||
$customerId = 'CID-' . date('Y') . '-' . str_pad($nextId, 6, '0', STR_PAD_LEFT);
|
||||
|
||||
// Create user record
|
||||
$user = new User();
|
||||
$user->customer_id = $customerId;
|
||||
$user->customer_name = $requestData->customer_name;
|
||||
$user->company_name = $requestData->company_name;
|
||||
$user->designation = $requestData->designation;
|
||||
$user->email = $requestData->email;
|
||||
$user->mobile_no = $requestData->mobile_no;
|
||||
$user->address = $requestData->address;
|
||||
$user->pincode = $requestData->pincode;
|
||||
$user->date = now()->format('Y-m-d');
|
||||
$user->password = Hash::make('123456'); // default password (you can change logic)
|
||||
$user->save();
|
||||
|
||||
// Update request status
|
||||
$requestData->status = 'approved';
|
||||
$requestData->save();
|
||||
|
||||
DB::commit();
|
||||
return redirect()->back()->with('success', 'Request approved and user created successfully.');
|
||||
} catch (\Exception $e) {
|
||||
DB::rollback();
|
||||
return redirect()->back()->with('error', 'Something went wrong: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Reject request
|
||||
public function reject($id)
|
||||
{
|
||||
$requestData = CustomerRequest::findOrFail($id);
|
||||
$requestData->status = 'rejected';
|
||||
$requestData->save();
|
||||
|
||||
return redirect()->back()->with('info', 'Request rejected successfully.');
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
// ✅ Register
|
||||
public function register(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|max:255',
|
||||
'email' => 'required|string|email|unique:users',
|
||||
'password' => 'required|string|min:6',
|
||||
]);
|
||||
|
||||
$user = User::create([
|
||||
'name' => $request->name,
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
]);
|
||||
|
||||
$token = JWTAuth::fromUser($user);
|
||||
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'User registered successfully',
|
||||
'user' => $user,
|
||||
'token' => $token
|
||||
]);
|
||||
}
|
||||
|
||||
// ✅ Login
|
||||
public function login(Request $request)
|
||||
{
|
||||
$credentials = $request->only('email', 'password');
|
||||
|
||||
if (!$token = Auth::guard('api')->attempt($credentials)) {
|
||||
return response()->json(['error' => 'Invalid credentials'], 401);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'Login successful',
|
||||
'token' => $token,
|
||||
'user' => Auth::guard('api')->user()
|
||||
]);
|
||||
}
|
||||
|
||||
// ✅ Logout
|
||||
public function logout()
|
||||
{
|
||||
Auth::guard('api')->logout();
|
||||
return response()->json(['message' => 'Successfully logged out']);
|
||||
}
|
||||
|
||||
// ✅ Refresh token
|
||||
public function refresh()
|
||||
{
|
||||
return response()->json([
|
||||
'token' => Auth::guard('api')->refresh()
|
||||
]);
|
||||
}
|
||||
}
|
||||
56
app/Http/Controllers/RequestController.php
Normal file
56
app/Http/Controllers/RequestController.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\RequestModel;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class RequestController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle new user signup request (registration request)
|
||||
*/
|
||||
public function usersignup(Request $request)
|
||||
{
|
||||
// ✅ Validate user input
|
||||
$request->validate([
|
||||
'customer_name' => 'required|string|max:255',
|
||||
'company_name' => 'required|string|max:255',
|
||||
'designation' => 'nullable|string|max:255',
|
||||
'email' => 'required|email|unique:requests,email',
|
||||
'mobile_no' => 'required|string|max:15',
|
||||
'priority' => 'nullable|string|max:50',
|
||||
'address' => 'nullable|string',
|
||||
'pincode' => 'nullable|string|max:10',
|
||||
]);
|
||||
|
||||
// ✅ Generate formatted request ID (e.g., REQ-2025-000001)
|
||||
$lastRequest = RequestModel::latest('id')->first();
|
||||
$nextId = $lastRequest ? $lastRequest->id + 1 : 1;
|
||||
$year = date('Y');
|
||||
$formattedRequestId = sprintf('REQ-%s-%06d', $year, $nextId);
|
||||
|
||||
// ✅ Create new request entry
|
||||
$newRequest = RequestModel::create([
|
||||
'request_id' => $formattedRequestId,
|
||||
'customer_name' => $request->customer_name,
|
||||
'company_name' => $request->company_name,
|
||||
'designation' => $request->designation,
|
||||
'email' => $request->email,
|
||||
'mobile_no' => $request->mobile_no,
|
||||
'priority' => $request->priority,
|
||||
'address' => $request->address,
|
||||
'pincode' => $request->pincode,
|
||||
'date' => Carbon::now()->toDateString(), // Auto current date
|
||||
'status' => 'pending', // Default status
|
||||
]);
|
||||
|
||||
// ✅ Response
|
||||
return response()->json([
|
||||
'status' => true,
|
||||
'message' => 'Signup request submitted successfully. Please wait for admin approval.',
|
||||
'data' => $newRequest
|
||||
]);
|
||||
}
|
||||
}
|
||||
82
app/Http/Controllers/UserAuthController.php
Normal file
82
app/Http/Controllers/UserAuthController.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
|
||||
use App\Models\User;
|
||||
|
||||
class UserAuthController extends Controller
|
||||
{
|
||||
/**
|
||||
* User Login
|
||||
*/
|
||||
public function login(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'login_id' => 'required|string', // can be email, mobile, or customer_id
|
||||
'password' => 'required|string',
|
||||
]);
|
||||
|
||||
// Find user by email OR mobile_no OR customer_id
|
||||
$user = User::where('email', $request->login_id)
|
||||
->orWhere('mobile_no', $request->login_id)
|
||||
->orWhere('customer_id', $request->login_id)
|
||||
->first();
|
||||
|
||||
if (!$user) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'User not found with given credentials.',
|
||||
], 404);
|
||||
}
|
||||
|
||||
// Check hashed password
|
||||
if (!Hash::check($request->password, $user->password)) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Incorrect password.',
|
||||
], 401);
|
||||
}
|
||||
|
||||
// Generate JWT token
|
||||
$token = JWTAuth::fromUser($user);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Login successful.',
|
||||
'token' => $token,
|
||||
'user' => [
|
||||
'id' => $user->id,
|
||||
'customer_id' => $user->customer_id,
|
||||
'customer_name' => $user->customer_name,
|
||||
'company_name' => $user->company_name,
|
||||
'email' => $user->email,
|
||||
'mobile_no' => $user->mobile_no,
|
||||
'address' => $user->address,
|
||||
'pincode' => $user->pincode,
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* User Logout
|
||||
*/
|
||||
public function logout(Request $request)
|
||||
{
|
||||
try {
|
||||
JWTAuth::invalidate(JWTAuth::getToken());
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Logout successful.',
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Failed to logout. Token may be invalid or expired.',
|
||||
], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user