File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/AdminUserController.php
Back
<?php /** * AdminUserController * User listing, profile viewing, suspension and reactivation */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Services/AdminUserService.php'; require_once __DIR__ . '/../Middleware/AdminMiddleware.php'; require_once __DIR__ . '/../Helpers/Auth.php'; require_once __DIR__ . '/../Helpers/Session.php'; class AdminUserController extends Controller { private AdminUserService $userService; public function __construct() { $this->userService = new AdminUserService(); } public function index(): void { AdminMiddleware::requirePermission('user.view'); $filters = [ 'q' => trim($_GET['q'] ?? ''), 'status' => $_GET['status'] ?? 'all', 'role' => $_GET['role'] ?? 'all', ]; $page = max(1, (int)($_GET['page'] ?? 1)); $data = $this->userService->getUsers($filters, $page); $this->render('admin/users/index', array_merge($data, [ 'filters' => $filters, 'pageTitle' => 'จัดการผู้ใช้งาน — CARGOO Admin', 'activeNav' => 'users', ]), 'admin'); } public function show(string $id): void { AdminMiddleware::requirePermission('user.view'); $user = $this->userService->getUserDetail((int)$id); if (!$user) { Session::setFlash('danger', 'ไม่พบผู้ใช้งาน'); $this->redirect('/admin/users'); } $this->render('admin/users/show', [ 'user' => $user, 'pageTitle' => 'ข้อมูลผู้ใช้: ' . e($user['username']) . ' — CARGOO Admin', 'activeNav' => 'users', ], 'admin'); } public function suspend(string $id): void { AdminMiddleware::requirePermission('user.suspend'); // Prevent self-suspension if ((int)$id === Auth::id()) { Session::setFlash('danger', 'ไม่สามารถระงับบัญชีของตัวเองได้'); $this->redirect('/admin/users/' . $id); } $result = $this->userService->suspendUser((int)$id, Auth::id()); Session::setFlash($result['success'] ? 'success' : 'danger', $result['message']); $this->redirect('/admin/users/' . $id); } public function reactivate(string $id): void { AdminMiddleware::requirePermission('user.suspend'); $result = $this->userService->reactivateUser((int)$id, Auth::id()); Session::setFlash($result['success'] ? 'success' : 'danger', $result['message']); $this->redirect('/admin/users/' . $id); } public function deleteRequests(): void { AdminMiddleware::requirePermission('user.view'); $filters = [ 'q' => trim($_GET['q'] ?? ''), 'status' => $_GET['status'] ?? 'pending', ]; $page = max(1, (int)($_GET['page'] ?? 1)); $data = $this->userService->getDeleteAccountRequests($filters, $page); $this->render('admin/users/deletion_requests', array_merge($data, [ 'filters' => $filters, 'pageTitle' => 'คำขอลบบัญชีผู้ใช้งาน — CARGOO Admin', 'activeNav' => 'deletion_requests', ]), 'admin'); } public function approveDeleteRequest(string $id): void { AdminMiddleware::requirePermission('user.suspend'); $note = trim($_POST['admin_note'] ?? ''); $result = $this->userService->approveDeleteRequest((int)$id, Auth::id(), $note); Session::setFlash($result['success'] ? 'success' : 'danger', $result['message']); $this->redirect('/admin/users/deletion-requests'); } public function rejectDeleteRequest(string $id): void { AdminMiddleware::requirePermission('user.suspend'); $note = trim($_POST['admin_note'] ?? ''); $result = $this->userService->rejectDeleteRequest((int)$id, Auth::id(), $note); Session::setFlash($result['success'] ? 'success' : 'danger', $result['message']); $this->redirect('/admin/users/deletion-requests'); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings