110 lines
2.8 KiB
PHP
110 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace Admin;
|
|
|
|
use CheckCSRF;
|
|
|
|
class TicketOptionsController extends \BaseController
|
|
{
|
|
|
|
use CheckCSRF;
|
|
|
|
public function listPriorities()
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin(); // Added admin check
|
|
|
|
$model = new \TicketPriority($this->getDB());
|
|
$priorities = $model->findAll();
|
|
|
|
$this->renderView('views/admin/priorities/index.html', [
|
|
'priorities' => $priorities
|
|
]);
|
|
}
|
|
|
|
public function createPriorityForm()
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin(); // Added admin check
|
|
$this->renderView('views/admin/priorities/create.html');
|
|
}
|
|
|
|
public function createPriority($f3)
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin(); // Added admin check
|
|
$this->checkCSRF($f3, '/admin/priority/create');
|
|
|
|
$p = new \TicketPriority($this->getDB());
|
|
$p->name = $this->f3->get('POST.name');
|
|
$p->sort_order = $this->f3->get('POST.sort_order');
|
|
$p->save();
|
|
|
|
// Redirect after save
|
|
$this->f3->reroute('/admin/priorities');
|
|
}
|
|
|
|
public function editPriorityForm($f3, $params)
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin();
|
|
$priorityId = $params['id'];
|
|
|
|
$model = new \TicketPriority($this->getDB());
|
|
$priority = $model->load(['id = ?', $priorityId]);
|
|
|
|
if (!$priority) {
|
|
$f3->error(404, 'Priority not found');
|
|
return;
|
|
}
|
|
|
|
$this->renderView('views/admin/priorities/edit.html', [
|
|
'priority' => $priority
|
|
]);
|
|
}
|
|
|
|
public function updatePriority($f3, $params)
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin();
|
|
$this->checkCSRF($f3, '/admin/priority/', $params['id'] . '/edit');
|
|
$priorityId = $params['id'];
|
|
|
|
$model = new \TicketPriority($this->getDB());
|
|
$priority = $model->load(['id = ?', $priorityId]);
|
|
|
|
if (!$priority) {
|
|
$f3->error(404, 'Priority not found');
|
|
return;
|
|
}
|
|
|
|
$priority->name = $this->f3->get('POST.name');
|
|
$priority->sort_order = $this->f3->get('POST.sort_order');
|
|
$priority->save();
|
|
|
|
// Redirect after update
|
|
$this->f3->reroute('/admin/priorities');
|
|
}
|
|
|
|
public function deletePriority($f3, $params)
|
|
{
|
|
$this->requireLogin();
|
|
$this->requireAdmin();
|
|
$priorityId = $params['id'];
|
|
|
|
$model = new \TicketPriority($this->getDB());
|
|
$priority = $model->load(['id = ?', $priorityId]);
|
|
|
|
if (!$priority) {
|
|
// Optionally show an error message or just redirect
|
|
$this->f3->reroute('/admin/priorities');
|
|
return;
|
|
}
|
|
|
|
$priority->erase();
|
|
|
|
// Redirect after delete
|
|
$this->f3->reroute('/admin/priorities');
|
|
}
|
|
|
|
} |