Advertisement
Guest User

Untitled

a guest
Feb 17th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.17 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Presenters;
  4.  
  5. class UsersPresenter extends SecuredPresenter {
  6.  
  7.     /** @var \App\Forms\UserFormFactory @inject */
  8.     public $userForm;
  9.    
  10.    
  11.     public function renderDefault() {
  12.         $this->template->users = $this->userFacade->all();
  13.     }
  14.    
  15.     public function renderEdit($id) {
  16.         $user = $this->userFacade->byId($id);
  17.         if(!is_object($user)) {
  18.             $this->redirect('default');
  19.         }
  20.     }
  21.    
  22.     public function createComponentUserForm() {
  23.         $this->userForm->setPresenter($this);
  24.         $form = $this->userForm->create();
  25.        
  26.        
  27.         if(!\Nette\Utils\Validators::isNone($this->getParameter('id'))) {
  28.             $form->setDefaults(\App\Model\Utils\EntityToArray::get($this->userFacade->byId($this->getParameter('id'))));
  29.         }
  30.        
  31.         $form->onSuccess[] = function(\Nette\Application\UI\Form $form) {
  32.             $user = $this->userFacade->request($form->getValues(true), $this->getParameter('id'));
  33.             $this->em->flush();
  34.            
  35.             if(\Nette\Utils\Validators::isNone($this->getParameter('id'))) {
  36.                 $this->mSender->setSenders(['to' => $user->instance->email])
  37.                         ->setSubject('Nový užívatel')
  38.                         ->setRenderer("new_user.latte", ['user' => $user, 'token' => $this->link("//Login:activate", ['email' => $user->instance->email, 'hash' => $user->instance->access_token])])
  39.                         ->send();
  40.             }
  41.            
  42.             $this->flashMessage(\Nette\Utils\Validators::isNone($this->getParameter('id')) ? 'Užívatel byl úspěšne vytvořený' : 'Užívatel byl úspěšne upravený', 'success');
  43.             $this->redirect('default');
  44.         };
  45.        
  46.         return $form;
  47.     }
  48.    
  49.     public function handleRemove($id) {
  50.         $user = $this->userFacade->byId($id);
  51.         if(is_object($user)) {
  52.             /** @todo dorobiť pre ostatné entity */
  53.            
  54.             $this->em->remove($user);
  55.             $this->em->flush();
  56.            
  57.             $this->flashMessage('Užívatel byl úspěšne smazán', 'success');
  58.         }
  59.        
  60.         $this->redirect('default');
  61.     }
  62.    
  63.     public function handleRegeneratePassword($id) {
  64.         $user = $this->userFacade->byId($id);
  65.         if(is_object($user)) {
  66.             $user->access_token = \Nette\Utils\Random::generate(100);
  67.             $user->access_token_created = (new \Nette\Utils\DateTime())->modify('+1 days');
  68.            
  69.             $this->em->flush();
  70.            
  71.             $password = \Nette\Utils\Random::generate();
  72.            
  73.             $this->mSender->setSenders(['to' => $user->email])
  74.                     ->setSubject('Nové heslo')
  75.                     ->setRenderer("new_password.latte", ['user' => $user, 'token' => $this->link("//Login:newPassword", ['email' => $user->email, 'token' => $user->access_token, 'password' => $password]), 'password' => $password])
  76.                     ->send();
  77.            
  78.             $this->flashMessage('Užívateli byl úspěšne vygenerováno nové heslo', 'success');
  79.         }
  80.        
  81.         $this->redirect('default');
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement