ACC SHELL

Path : /srv/www/vhosts/duklavysco/app/presenters/
File Upload :
Current File : //srv/www/vhosts/duklavysco/app/presenters/PridatUzivatelePresenter.php

<?php

/**
 * Nastaveni presenter.
 */
class PridatUzivatelePresenter extends BasePresenter
{
    
    private $name = 'přidat uživatele';
    private $presenter = 'PridatUzivatele';
    private $table = 'uzivatele';
    private $resource = 'uzivatel';
    
	public function renderDefault()
	{
        if (!$this->user->isAllowed($this->resource, 'add'))
        {
            $this->flashMessage("K prohlížení sekce " . ucfirst($this->name) . " nemáš oprávnění!", 'error');
            $this->redirect('Homepage:default');
        }
	}
    
    protected function createComponentNovyUzivatelForm()
    {
        $form = new Nette\Application\UI\Form;
        
        $form->addHidden('clenemOd', date('Y-m-d'));
        $form->addText('email', 'Email:', 30)
            ->setAttribute('class', 'qtip exclamationmark')
            ->setAttribute('title', 'Pokud nevložíš email, uživatel se nebude moci přihlásit.')
            ->addCondition(Nette\Application\UI\Form::FILLED)
            ->addRule(Nette\Application\UI\Form::EMAIL, 'Zadej platný email!');
        $form->addText('jmeno', 'Jméno:', 30)
            ->setRequired('Jméno nesmí zůstat prázdné.');
        $form->addText('prijmeni', 'Příjmení:', 30)
            ->setRequired('Příjmení nesmí zůstat prázdné.');
        $form->addText('prezdivka', 'Přezdívka:', 20);
        
        $form->addSubmit('submit', 'Uložit')
            ->onClick[] = callback($this, 'novyUzivatelFormSubmitted');
        
        return $form;
    }
    
    public function novyUzivatelFormSubmitted(Nette\Forms\Controls\SubmitButton $submitButton)
    {
        $newPass = 'duklavysco';
        
        $values = $submitButton->getForm()->getValues();
        
        if (strlen($values["email"]) == 0)
        {
            unset($values["email"]);
        }
        if (strlen($values["prezdivka"]) == 0)
        {
            $values["prezdivka"] = $values["jmeno"];
        }
        
        $values["heslo"] = md5($newPass);
        $values["role"] = 'registered';
        
        try {
            
            $this->db->table($this->table)->insert($values);
            $this->flashMessage("Uživatel $values[jmeno] $values[prijmeni] byl přidán! Jeho heslo je '$newPass'.", 'success');
            $this->redirect("Ucet:spravovat", $this->db->lastInsertId());
            
        } catch (PDOException $e)
        {
            
            $this->flashMessage("Uživatel $values[jmeno] $values[prijmeni] nemohl být přidán!", 'error');
            if ($e->errorInfo[1] == 1062)
            {
                $this->flashMessage("Uživatel s emailem $values[email] už existuje.", 'error');
            }
            else
            {
                $this->flashMessage($e->errorInfo[2], 'error');
            }
            
        }
            
    }

}

ACC SHELL 2018