403Webshell
Server IP : 37.9.174.138  /  Your IP : 216.73.216.117
Web Server : Apache
System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64
User : ftpuser ( 1001)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/html/backend-accounting.sk/app/modules/logbook/api/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/backend-accounting.sk/app/modules/logbook/api/Requests.php
<?php

namespace modules\logbook\api;

use modules\logbook\code\Event;
use modules\logbook\code\LogbookRequestContactEmailResolver;
use modules\logbook\code\LogbookRequestService;
use modules\logbook\code\LogbookRequestTypeRegistry;
use modules\logbook\code\LogbookUser;

/**
 * Authenticated endpoints for sending client data requests (non-customers only).
 */
class Requests extends \app\classes\ApiClass {

    /** @var LogbookUser */
    private $user;

    /** @var LogbookRequestService */
    private $requestService;

    public function __construct() {
        parent::__construct();
        $this->user = LogbookUser::getLoggedUser();
        $this->requestService = new LogbookRequestService();
    }

    /**
     * @includeInDoc false
     * @requestMethod "POST"
     * @RequiredPostParameters ["id"]
     * @VerifyPermissions []
     */
    public function getVehicleRequestFormData() {
        $this->requestService->assertCanSendRequests();
        $company = $this->user->getCompany((int) $this->urlReader->getUrlParam(5));
        $vehicle = $company->getVehicle((int) $this->urlReader->getPost('id'));
        $handler = LogbookRequestTypeRegistry::vehicle();

        $vehicleModel = trim((string) $vehicle->_get('model'));
        if ($vehicleModel === '') {
            $vehicleModel = trim((string) $vehicle->_get('name'));
        }

        $this->restApi->ajaxResponse([
            'vehicle_id' => (int) $vehicle->_get('id'),
            'vehicle_label' => $vehicleModel,
            'default_email' => LogbookRequestContactEmailResolver::resolveForVehicle($vehicle, $company),
            'available_fields' => $handler->getAvailableFieldsForVehicle($vehicle),
            'previous_requests' => $this->requestService->getVehicleRequestHistory($vehicle),
        ]);
    }

    /**
     * @includeInDoc false
     * @requestMethod "POST"
     * @RequiredPostParameters ["id", "client_email"]
     * @VerifyPermissions []
     */
    public function sendVehicleRequest() {
        $this->requestService->assertCanSendRequests();
        $company = $this->user->getCompany((int) $this->urlReader->getUrlParam(5));
        $vehicle = $company->getVehicle((int) $this->urlReader->getPost('id'));
        $clientEmail = trim((string) $this->urlReader->getPost('client_email'));
        $requestedFields = $this->urlReader->getPost('requested_fields');
        if (!is_array($requestedFields)) {
            $requestedFields = [];
        }

        try {
            $this->requestService->createAndSendVehicleRequest(
                    $this->user,
                    $company,
                    $vehicle,
                    $clientEmail,
                    $requestedFields
            );
        } catch (\InvalidArgumentException $ex) {
            throw new \Exception($ex->getMessage(), \app\constants\HttpReponseCodes::HTTP_BAD_REQUEST, $ex);
        }

        $this->restApi->ajaxResponse([
            'title' => $this->translator->_get('Žiadosť bola odoslaná'),
            'text' => $this->translator->_get('Klientovi bol odoslaný e-mail s odkazom na doplnenie údajov.'),
        ]);
    }

    /**
     * @includeInDoc false
     * @requestMethod "POST"
     * @RequiredPostParameters ["id"]
     * @VerifyPermissions []
     */
    public function getEventRequestFormData() {
        $this->requestService->assertCanSendRequests();
        $company = $this->user->getCompany((int) $this->urlReader->getUrlParam(5));
        $eventId = (int) $this->urlReader->getPost('id');
        $event = new Event($eventId);
        $vehicle = $company->getVehicle($event->getVehicle()->_get('id'));
        $event = $vehicle->getEvent($eventId);
        $handler = LogbookRequestTypeRegistry::event();
        $this->requestService->assertEventSupportsClientRequest($event);

        $this->restApi->ajaxResponse([
            'event_id' => (int) $event->_get('id'),
            'event_label' => $handler->buildRequestName($event, $vehicle),
            'default_email' => LogbookRequestContactEmailResolver::resolveForVehicle($vehicle, $company),
            'available_fields' => $handler->getAvailableFieldsForEvent($event),
            'previous_requests' => $this->requestService->getEventRequestHistory($event),
        ]);
    }

    /**
     * @includeInDoc false
     * @requestMethod "POST"
     * @RequiredPostParameters ["id", "client_email"]
     * @VerifyPermissions []
     */
    public function sendEventRequest() {
        $this->requestService->assertCanSendRequests();
        $company = $this->user->getCompany((int) $this->urlReader->getUrlParam(5));
        $eventId = (int) $this->urlReader->getPost('id');
        $event = new Event($eventId);
        $vehicle = $company->getVehicle($event->getVehicle()->_get('id'));
        $event = $vehicle->getEvent($eventId);
        $clientEmail = trim((string) $this->urlReader->getPost('client_email'));
        $requestedFields = $this->urlReader->getPost('requested_fields');
        if (!is_array($requestedFields)) {
            $requestedFields = [];
        }

        try {
            $this->requestService->createAndSendEventRequest(
                    $this->user,
                    $company,
                    $vehicle,
                    $event,
                    $clientEmail,
                    $requestedFields
            );
        } catch (\InvalidArgumentException $ex) {
            throw new \Exception($ex->getMessage(), \app\constants\HttpReponseCodes::HTTP_BAD_REQUEST, $ex);
        }

        $this->restApi->ajaxResponse([
            'title' => $this->translator->_get('Žiadosť bola odoslaná'),
            'text' => $this->translator->_get('Klientovi bol odoslaný e-mail s odkazom na doplnenie údajov.'),
        ]);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit