Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
admin_panel
/
app
/
Http
/
Middleware
:
DemoMiddleware.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Session; class DemoMiddleware { /** * Handle an incoming request. * * @param Request $request * @param Closure(Request): (Response|RedirectResponse) $next * @return JsonResponse */ public function handle(Request $request, Closure $next) { // echo $request->getRequestUri(); $school_database_name = Session::get('school_database_name'); if ($school_database_name) { DB::setDefaultConnection('school'); Config::set('database.connections.school.database', $school_database_name); DB::purge('school'); DB::connection('school')->reconnect(); DB::setDefaultConnection('school'); } else { DB::purge('school'); DB::connection('mysql')->reconnect(); DB::setDefaultConnection('mysql'); } $exclude_uri = array( '/login', '/api/student/login', '/api/parent/login', '/api/teacher/login', '/contact', '/api/student/submit-online-exam-answers', '/students/generate-id-card', '/certificate', '/certificate/staff-certificate', '/staff/generate-id-card', '/session-year/set-session-year' ); $excludeEmails = [ "info@crestwoodacademy.com", "alex.johnson@elementary.org", "jamie.smith@gmail.com", "thor@gmail.com", "2024-2571", "subhamsharma5961@gmail.com" ]; // Demo school mode $isSuperAdminLogin = Session::get('super_admin_login_with_demo_school') ?? false; if ((Auth::user() && Auth::user()->school && Auth::user()->school->domain == 'demo') && !$request->isMethod('get') && !in_array($request->getRequestUri(), $exclude_uri) && !$isSuperAdminLogin) { $message = "This is not allowed in the Demo Version."; // If API / AJAX request if ($request->expectsJson()) { return response()->json([ 'error' => true, 'message' => $message, 'code' => 112 ], 403); } // Normal web request → redirect back return redirect()->back()->with('error', $message); } if (env('DEMO_MODE') && !$request->isMethod('get') && Auth::user() && !in_array(Auth::user()->email, $excludeEmails) && !in_array($request->getRequestUri(), $exclude_uri)) { $excluded_ips = ['103.30.227.53', '103.30.227.54', '103.30.226.49']; // replace with the IPs you want to exclude $test_school_panel = ['jamie.smith@gmail.com', 'thor@gmail.com', '2024-2571', 'subhamsharma5961@gmail.com']; // Add testing school user email if (!in_array($request->ip(), $excluded_ips)) { // return response()->json(array( // 'error' => true, // 'message' => "This is not allowed in the Demo Version.", // 'code' => 112 // )); $message = "This is not allowed in the Demo Version."; // If API / AJAX request if ($request->expectsJson()) { return response()->json([ 'error' => true, 'message' => $message, 'code' => 112 ], 403); } // Normal web request → redirect back return redirect()->back()->with('error', $message); } } return $next($request); } }