| Server IP : 139.59.63.204 / Your IP : 216.73.217.62 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ubuntu-s-1vcpu-1gb-blr1-01 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/abyogasms.com/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;
class AuthController extends Controller
{
// Show the login form
public function showLogin()
{
return view('auth.login');
}
public function register(Request $request)
{
$validated = $request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'confirmed', 'min:8'],
'gender' => ['nullable', 'string', 'max:20'],
'mobile' => ['nullable', 'string', 'max:20'],
'address' => ['nullable', 'string', 'max:1000'],
'age' => ['nullable', 'integer', 'min:1', 'max:120'],
'yoga_teacher' => ['nullable', 'in:1,0'],
'experience' => ['nullable', 'string', 'max:1000'],
'yoga_center_name' => ['nullable', 'string', 'max:255'],
'reason_member' => ['nullable', 'string', 'max:1000'],
'aadhar' => ['nullable', 'string', 'max:255'],
'state_id' => ['required'],
]);
try {
$newUser = DB::transaction(function () use ($validated, $request) {
$lastRegistration = DB::table('users')
->lockForUpdate()
->max('registration_number');
$newRegistrationNumber = $lastRegistration ? ($lastRegistration + 1) : 27000;
$user = User::create([
'name' => $validated['name'],
'email' => $validated['email'],
'password' => Hash::make($validated['password']),
'gender' => $validated['gender'] ?? null,
'mobile' => $validated['mobile'] ?? null,
'address' => $validated['address'] ?? null,
'age' => $validated['age'] ?? null,
'yoga_teacher' => (bool) ($validated['yoga_teacher'] ?? 0),
'experience' => $validated['experience'] ?? null,
'yoga_center_name' => $validated['yoga_center_name'] ?? null,
'reason_member' => $validated['reason_member'] ?? null,
'state_id' => $validated['state_id'] ?? null,
'district_id' => $request->district_id ?? null,
'renew_date' => date('Y-m-d h:i:s'),
'membership_type' => 'normal',
'registration_number' => $newRegistrationNumber,
'id_allow' => 0,
'is_admin' => 0
]);
});
Auth::login($user);
$request->session()->regenerate();
return redirect('/dashboard')->with('status', 'Welcome! Your membership request has been received.');
} catch (\Exception $e) {
return redirect()->back()
->withInput()
->withErrors(['error' => 'Registration failed due to a server collision error. Please try again.']);
}
}
// Process the login request
public function login(Request $request)
{
$credentials = $request->validate([
'email' => ['required', 'email'],
'password' => ['required'],
]);
// Attempt authentication
if (Auth::attempt($credentials, $request->boolean('remember'))) {
$request->session()->regenerate();
// Redirect based on the database column
if (Auth::user()->is_admin) {
return redirect()->intended('/admindashboard');
}
return redirect()->intended('/dashboard');
}
// Return error if authentication fails
return back()->withErrors([
'email' => 'The provided credentials do not match our records.',
])->onlyInput('email');
}
// Process logout
public function logout(Request $request)
{
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/login');
}
}