File manager - Edit - /home/webapp69.cm.in.th/u69319090039/Shop39/public/core/Auth.php
Back
<?php class Auth { /** * Check if user is logged in */ public static function check(): bool { return Session::has('user_id'); } /** * Get logged-in user array */ public static function user(): ?array { if (!self::check()) { return null; } static $cachedUser = null; if ($cachedUser === null) { $userModel = new User(); $cachedUser = $userModel->findById(Session::get('user_id')); } return $cachedUser; } /** * Get seller profile array if user is an approved/pending seller */ public static function sellerProfile(): ?array { $user = self::user(); if (!$user) return null; static $cachedSeller = null; if ($cachedSeller === null) { $sellerModel = new SellerProfile(); $cachedSeller = $sellerModel->findOneWhere(['user_id' => $user['id']]); } return $cachedSeller; } /** * Check if current user is Admin */ public static function isAdmin(): bool { $user = self::user(); return $user && $user['role'] === 'admin'; } /** * Check if current user is an Approved Seller */ public static function isApprovedSeller(): bool { $seller = self::sellerProfile(); return $seller && in_array($seller['status'], ['approved', 'suspended']) && $seller['deleted_at'] === null; } /** * Middleware: Require logged in user */ public static function requireAuth(): void { if (!self::check()) { Session::setFlash('warning', 'Please login to access this page.'); header('Location: ' . APP_URL . '/login'); exit; } } /** * Middleware: Require Admin */ public static function requireAdmin(): void { self::requireAuth(); if (!self::isAdmin()) { Session::setFlash('danger', 'Access denied. Administrator privileges required.'); header('Location: ' . APP_URL . '/'); exit; } } /** * Middleware: Require Approved Seller */ public static function requireSeller(): void { self::requireAuth(); if (!self::isApprovedSeller()) { Session::setFlash('danger', 'Access denied. You must be an approved seller to access the seller dashboard.'); header('Location: ' . APP_URL . '/seller/apply'); exit; } } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings