Files
XC_VM/src/Public/Controllers/Admin/TicketViewController.php
T
Divarion-D 42d9ca8ea0 chore(psr4): phase 3 — namespace Domain layer
Namespace all of Domain into XcVm\Domain\<Subdir> (33 classes across Bouquet,
Device, Epg, Line, Security, Server, Stream, User, Vod).

- Add namespace to every Domain class; add use to referrers across src/ and
  tests/; convert the leading-backslash refs qualified in earlier Core commits
  (\UserRepository, \ServerRepository, \BouquetService, \CategoryService,
  \ConnectionTracker, \BlocklistService, ...) to their FQCNs.
- Qualify still-global / built-in deps inside Domain with leading backslash
  (\RedisManager, \TMDB, \WatchService, \FFprobeRunner, \ProcessChecker,
  \Exception, \DateTime, \PDO, ...) — Infrastructure/Streaming/module classes
  migrate later.
- BruteforceGuard: string guards class_exists('ServerRepository'/'BlocklistService')
  → ::class FQCN; drop the now-always-true method_exists check.
- phpstan-baseline.neon regenerated (292→291).

Verified: php -l clean; PHPStan no errors; PHPUnit 295/295; leading-backslash
re-sweep across Domain classes is clean.
2026-06-25 18:39:28 +03:00

40 lines
1.2 KiB
PHP

<?php
use XcVm\Domain\User\TicketRepository;
use XcVm\Core\Http\RequestManager;
/**
* Контроллер просмотра тикета (admin/ticket_view.php)
*
* @renders Views/admin/ticket_view.php
*
* @package XC_VM_Public_Controllers_Admin
* @author Divarion_D <https://github.com/Divarion-D>
* @copyright 2025-2026 Vateron Media
* @link https://github.com/Vateron-Media/XC_VM
* @license AGPL-3.0 https://www.gnu.org/licenses/agpl-3.0.html
*/
class TicketViewController extends BaseAdminController {
public function index() {
global $db, $rUserInfo;
$this->requirePermission();
$rTicketInfo = null;
if (isset(RequestManager::getAll()['id'])) {
$rTicketInfo = TicketRepository::getById(RequestManager::getAll()['id']);
}
if (!$rTicketInfo) {
$this->redirect('tickets');
return;
}
if ($rUserInfo['id'] != $rTicketInfo['member_id']) {
$db->query('UPDATE `tickets` SET `admin_read` = 1 WHERE `id` = ?;', RequestManager::getAll()['id']);
}
$this->setTitle('View Ticket');
$this->render('ticket_view', compact('rTicketInfo'));
}
}