WordPress

Briefly unavailable for scheduled maintenance.
Check back in a some hours.
403WebShell
403Webshell
Server IP : 38.242.244.58  /  Your IP : 216.73.216.240
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1486879.contaboserver.net 5.4.0-166-generic #183-Ubuntu SMP Mon Oct 2 11:28:33 UTC 2023 x86_64
User : root ( 0)
PHP Version : 7.4.3-4ubuntu2.19
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/sura/src/Controller/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/sura/src/Controller/ReleaseController.php
<?php

namespace App\Controller;

use App\Entity\Model;
use App\Entity\ModelRelease;
use App\Entity\Release;
use App\Form\ReleaseEditType;
use App\Form\ReleaseType;
use App\Repository\ModelRepository;
use App\Repository\ReleaseRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

/**
 * @Route("/release")
 */
class ReleaseController extends AbstractController
{
    /**
     * @Route("/", name="release_index", methods={"GET"})
     * @param ReleaseRepository $releaseRepository
     * @return Response
     */
    public function index(ReleaseRepository $releaseRepository): Response
    {
        return $this->render('release/index.html.twig', [
            'releases' => $releaseRepository->findBy(['createBy'=>$this->getUser()]),
        ]);
    }
    /**
     * @return string
     */
    private function generateUniqueFileName()
    {
        // md5() reduces the similarity of the file names generated by
        // uniqid(), which is based on timestamps
        return md5(uniqid());
    }
    /**
     * @Route("/{id}/new", name="release_new", methods={"GET","POST"})
     * @param Request $request
     * @param Model $model
     * @return Response
     */
    public function new(Request $request, Model $model): Response
    {
        $currentUser=$this->getUser();
        $release = new Release();
        $release->setModel($model);
        $form = $this->createForm(ReleaseType::class, $release);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            /** @var Symfony\Component\HttpFoundation\File\UploadedFile $file */
//            $file = $release->getFileName();
            $file = $form['fileName']->getData();

            $original_file = $file->getClientOriginalName();

            $original_file_name = pathinfo($original_file, PATHINFO_FILENAME);

            $fileName = $original_file_name.'_'.date("Ymd").'.'.$file->guessExtension();

            // Move the file to the directory where brochures are stored
            try {
                $file->move(
                    $this->getParameter('releases_directory'),
                    $fileName
                );
            } catch (FileException $e) {
                // ... handle exception if something happens during file upload
            }

            // updates the 'brochure' property to store the PDF file name
            // instead of its contents

            if($request->request->get('release')['title']==="")
            {
                $release->setTitle($original_file_name);
            }else{
                $release->setTitle($request->request->get('release')['title']);
            }

            $release->setFileName($fileName);

            $release->setCreateBy($currentUser);
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($release);
            $entityManager->flush();

            //link release to model

            $model_release = new ModelRelease();
            $model_release->setModel($model);
            $model_release->setTheRelease($release);
            $model_release->setModelPivot($model);

            $entityManager->persist($model_release);
            $entityManager->flush();


            return $this->redirectToRoute('model_show',['id'=>$model->getId()]);
        }

        return $this->render('model/upload_release.html.twig', [
            'release' => $release,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}", name="release_show", methods={"GET"})
     * @param Release $release
     * @return Response
     */
    public function show(Release $release): Response
    {
        return $this->render('release/show.html.twig', [
            'release' => $release,
        ]);
    }

    /**
     * @Route("/{id}/edit", name="release_edit", methods={"GET","POST"})
     * @param Request $request
     * @param Release $release
     * @return Response
     */
    public function edit(Request $request, Release $release): Response
    {
        $release->setFileName(
            new File($this->getParameter('releases_directory').'/'.$release->getFileName())
        );

        //dd($release->getFileName());
        $form = $this->createForm(ReleaseEditType::class, $release);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {

            if($form['fileName']->getData()) {
                $file = $form['fileName']->getData();

                $original_file = $file->getClientOriginalName();

                $original_file_name = pathinfo($original_file, PATHINFO_FILENAME);

                $fileName = $original_file_name . '_' . date("Ymd") . '.' . $file->guessExtension();

                // Move the file to the directory where brochures are stored
                try {
                    $file->move(
                        $this->getParameter('releases_directory'),
                        $fileName
                    );
                } catch (FileException $e) {
                    // ... handle exception if something happens during file upload
                }

                $release->setFileName($fileName);

                if($request->request->get('title')===null)
                {

                    $release->setTitle($original_file_name);
                }
            }else{
                $release->setFileName($request->request->get('filename'));
            }

//            $release->setTitle($original_file_name);
            $release->setCreateBy($this->getUser());
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($release);
            $entityManager->flush();

            return $this->redirectToRoute('model_show',['id'=>$release->getModel()->getId()]);
            /* return $this->redirectToRoute('release_index', [
                'id' => $release->getId(),
            ]);*/
        }

        return $this->render('release/edit.html.twig', [
            'release' => $release,
            'form' => $form->createView(),
        ]);
    }

    /**
     * @Route("/{id}/add-model", name="release_add_model", methods={"GET","POST"})
     * @param Request $request
     * @param Release $release
     * @param ModelRepository $modelRepository
     * @return Response
     */
    public function addModel(Request $request, Release $release, ModelRepository $modelRepository): Response
    {

        $models = $modelRepository->findBy(['createdBy'=> $this->getUser()]);

        if($request->isMethod('post'))
        {
            $model = $modelRepository->find($request->get('model'));

            $model_release = new ModelRelease();

            //dump($model); die;

            $model_release->setModel($model);

            $model_release->setTheRelease($release);

            $model_release->setModelPivot($model);


            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($model_release);
            $entityManager->flush();

            return $this->redirectToRoute('model_show',['id'=>$model->getId()]);


        }


        return $this->render('release/add_model.html.twig', [
            'release' => $release,
            'models' => $models
        ]);
    }


    /**
     * @Route("/{id}", name="release_delete", methods={"DELETE"})
     * @param Request $request
     * @param Release $release
     * @return Response
     */
    public function delete(Request $request, Release $release): Response
    {
        if ($this->isCsrfTokenValid('delete'.$release->getId(), $request->request->get('_token'))) {
            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->remove($release);
            $entityManager->flush();
        }

        return $this->redirectToRoute('release_index');
    }



}

Youez - 2016 - github.com/yon3zu
LinuXploit