File manager - Edit - /home/webapp69.cm.in.th/u69319090028/Shop/app/Controllers/SecurityController.php
Back
<?php /** * SecurityController * Handles Login History viewing and Account Deletion Request workflow */ require_once __DIR__ . '/../Core/Controller.php'; require_once __DIR__ . '/../Models/LoginHistory.php'; require_once __DIR__ . '/../Models/DeleteAccountRequest.php'; require_once __DIR__ . '/../Models/User.php'; require_once __DIR__ . '/../Models/ActivityLog.php'; require_once __DIR__ . '/../Helpers/Auth.php'; require_once __DIR__ . '/../Helpers/Session.php'; require_once __DIR__ . '/../Helpers/Url.php'; class SecurityController extends Controller { private LoginHistory $historyModel; private DeleteAccountRequest $deleteRequestModel; private User $userModel; private ActivityLog $activityLog; public function __construct() { $this->historyModel = new LoginHistory(); $this->deleteRequestModel = new DeleteAccountRequest(); $this->userModel = new User(); $this->activityLog = new ActivityLog(); } public function loginHistory(): void { $userId = Auth::id(); $logs = $this->historyModel->getByUserId($userId, 50); $this->render('account/login_history', [ 'pageTitle' => __('login_history') . ' - CARGOO', 'logs' => $logs, 'activeTab' => 'login_history' ], 'account'); } public function showDeleteAccount(): void { $userId = Auth::id(); $pendingRequest = $this->deleteRequestModel->getPendingRequestByUserId($userId); $this->render('account/delete_account', [ 'pageTitle' => __('delete_account') . ' - CARGOO', 'pendingRequest' => $pendingRequest, 'activeTab' => 'delete_account' ], 'account'); } public function submitDeleteRequest(): void { $userId = Auth::id(); $password = $_POST['password'] ?? ''; $reason = trim($_POST['reason'] ?? ''); $confirmCheckbox = !empty($_POST['confirm_delete']); if (!$confirmCheckbox) { Session::setFlash('danger', 'กรุณายอมรับเงื่อนไขและทำความเข้าใจผลกระทบก่อนขอลบบัญชี'); $this->redirect('/account/delete-account'); } $user = $this->userModel->findById($userId); if (!$user || !password_verify($password, $user['password'])) { Session::setFlash('danger', __('current_password_incorrect')); $this->redirect('/account/delete-account'); } // Check if there is already a pending request $existing = $this->deleteRequestModel->getPendingRequestByUserId($userId); if ($existing) { Session::setFlash('warning', 'คุณมีคำขอลบบัญชีที่อยู่ระหว่างดำเนินการอยู่แล้ว'); $this->redirect('/account/delete-account'); } $this->deleteRequestModel->createRequest($userId, $reason); $this->activityLog->record($userId, 'account_delete_requested', 'delete_account_request', null, 'User requested account deletion'); Session::setFlash('success', __('delete_request_submitted')); $this->redirect('/account/delete-account'); } public function cancelDeleteRequest(): void { $userId = Auth::id(); $pending = $this->deleteRequestModel->getPendingRequestByUserId($userId); if ($pending) { $this->deleteRequestModel->cancelRequest((int)$pending['id'], $userId); $this->activityLog->record($userId, 'account_delete_cancelled', 'delete_account_request', (int)$pending['id'], 'User cancelled account deletion request'); Session::setFlash('success', __('delete_request_cancelled')); } $this->redirect('/account/delete-account'); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.23 |
proxy
|
phpinfo
|
Settings