Files
breadcrumb-the-shire/modules/audit/pages/admin/user-lifecycle-audit/view($id).php

34 lines
1.2 KiB
PHP
Raw Normal View History

<?php
use MintyPHP\Buffer;
use MintyPHP\Http\SessionStoreInterface;
use MintyPHP\Module\Audit\AuditAuthorizationPolicy;
use MintyPHP\Module\Audit\Domain\UserLifecycleAction;
use MintyPHP\Router;
2026-03-04 15:56:58 +01:00
use MintyPHP\Service\Access\UiAccessService;
use MintyPHP\Support\Flash;
use MintyPHP\Support\Guard;
$session = app(SessionStoreInterface::class)->all();
Guard::requireLogin();
Guard::requireAbility(AuditAuthorizationPolicy::ABILITY_USER_LIFECYCLE_VIEW);
$auditId = (int) ($id ?? 0);
$auditService = app(\MintyPHP\Module\Audit\Service\UserLifecycleAuditService::class);
2026-02-23 12:58:19 +01:00
$auditLog = $auditId > 0 ? $auditService->find($auditId) : null;
if (!$auditLog) {
Flash::error(t('Lifecycle audit entry not found'), 'admin/user-lifecycle-audit', 'user_lifecycle_audit_not_found');
Router::redirect('admin/user-lifecycle-audit');
}
$snapshot = null;
2026-03-04 15:56:58 +01:00
if ((string) ($auditLog['action'] ?? '') === UserLifecycleAction::Delete->value) {
2026-02-23 12:58:19 +01:00
$snapshot = $auditService->decryptSnapshot($auditLog);
}
2026-03-04 15:56:58 +01:00
$viewAuth['page'] = app(UiAccessService::class)->pageCapabilities(
(int) ($session['user']['id'] ?? 0),
['can_restore' => AuditAuthorizationPolicy::ABILITY_USER_LIFECYCLE_RESTORE]
2026-03-04 15:56:58 +01:00
);
Buffer::set('title', t('View user lifecycle audit entry'));