93 lines
3.3 KiB
PHP
93 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class StudentPortalController extends Controller
|
|
{
|
|
|
|
public function studentlogin(Request $request)
|
|
{
|
|
|
|
$request->validate([
|
|
'username' => 'required|string',
|
|
'password' => 'required|string',
|
|
'pin' => 'required|numeric',
|
|
]);
|
|
|
|
|
|
$student = DB::table('student_portal_logs')
|
|
->where('email', $request->username)
|
|
->orWhere('studentid', $request->username)
|
|
->first();
|
|
|
|
|
|
if ($student && Hash::check($request->password, $student->password) && $student->pin == $request->pin) {
|
|
|
|
if ($student->status !== 'active' && $student->status !== '' && !is_null($student->status)) {
|
|
return redirect()->back()->with('error', 'Your account is inactive!');
|
|
}
|
|
|
|
|
|
$request->session()->put('student_id', $student->studentid);
|
|
$request->session()->put('student_log_id', $student->id ?? null);
|
|
|
|
$name = trim(($student->first_name ?? '') . ' ' . ($student->last_name ?? ''));
|
|
$request->session()->put('student_name', $name ?: ($student->email ?? $student->studentid));
|
|
|
|
return redirect()->route('student.portal')->with('success', 'Logged in successfully!');
|
|
}
|
|
|
|
return redirect()->back()->with('error', 'Invalid Email/Username, Password, or PIN!');
|
|
}
|
|
|
|
public function showProfile(Request $request)
|
|
{
|
|
|
|
$log_id = $request->session()->get('student_log_id');
|
|
$student_code = $request->session()->get('student_id');
|
|
|
|
if (!$log_id && !$student_code) {
|
|
return redirect('/')->with('error', 'Please login first!');
|
|
}
|
|
|
|
|
|
$student = DB::table('student_details')
|
|
->where(function ($query) use ($log_id, $student_code) {
|
|
if ($log_id) {
|
|
$query->where('student_portal_log_id', $log_id);
|
|
}
|
|
if ($student_code) {
|
|
|
|
if ($log_id) {
|
|
$query->orWhere('student_id', $student_code);
|
|
} else {
|
|
$query->where('student_id', $student_code);
|
|
}
|
|
}
|
|
})
|
|
->first();
|
|
|
|
|
|
if (!$student) {
|
|
return redirect()->route('student.portal')->with('error', 'Student details not found in database!');
|
|
}
|
|
|
|
|
|
return view('StudentProfile', compact('student'));
|
|
}
|
|
|
|
public function studentlogout(Request $request)
|
|
{
|
|
$request->session()->forget(['student_id', 'student_log_id', 'student_name']);
|
|
$request->session()->invalidate();
|
|
$request->session()->regenerateToken();
|
|
|
|
return response()->json(['success' => true]);
|
|
}
|
|
|
|
|
|
} |