Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Presenters;
- class UsersPresenter extends SecuredPresenter {
- /** @var \App\Forms\UserFormFactory @inject */
- public $userForm;
- public function renderDefault() {
- $this->template->users = $this->userFacade->all();
- }
- public function renderEdit($id) {
- $user = $this->userFacade->byId($id);
- if(!is_object($user)) {
- $this->redirect('default');
- }
- }
- public function createComponentUserForm() {
- $this->userForm->setPresenter($this);
- $form = $this->userForm->create();
- if(!\Nette\Utils\Validators::isNone($this->getParameter('id'))) {
- $form->setDefaults(\App\Model\Utils\EntityToArray::get($this->userFacade->byId($this->getParameter('id'))));
- }
- $form->onSuccess[] = function(\Nette\Application\UI\Form $form) {
- $user = $this->userFacade->request($form->getValues(true), $this->getParameter('id'));
- $this->em->flush();
- if(\Nette\Utils\Validators::isNone($this->getParameter('id'))) {
- $this->mSender->setSenders(['to' => $user->instance->email])
- ->setSubject('Nový užívatel')
- ->setRenderer("new_user.latte", ['user' => $user, 'token' => $this->link("//Login:activate", ['email' => $user->instance->email, 'hash' => $user->instance->access_token])])
- ->send();
- }
- $this->flashMessage(\Nette\Utils\Validators::isNone($this->getParameter('id')) ? 'Užívatel byl úspěšne vytvořený' : 'Užívatel byl úspěšne upravený', 'success');
- $this->redirect('default');
- };
- return $form;
- }
- public function handleRemove($id) {
- $user = $this->userFacade->byId($id);
- if(is_object($user)) {
- /** @todo dorobiť pre ostatné entity */
- $this->em->remove($user);
- $this->em->flush();
- $this->flashMessage('Užívatel byl úspěšne smazán', 'success');
- }
- $this->redirect('default');
- }
- public function handleRegeneratePassword($id) {
- $user = $this->userFacade->byId($id);
- if(is_object($user)) {
- $user->access_token = \Nette\Utils\Random::generate(100);
- $user->access_token_created = (new \Nette\Utils\DateTime())->modify('+1 days');
- $this->em->flush();
- $password = \Nette\Utils\Random::generate();
- $this->mSender->setSenders(['to' => $user->email])
- ->setSubject('Nové heslo')
- ->setRenderer("new_password.latte", ['user' => $user, 'token' => $this->link("//Login:newPassword", ['email' => $user->email, 'token' => $user->access_token, 'password' => $password]), 'password' => $password])
- ->send();
- $this->flashMessage('Užívateli byl úspěšne vygenerováno nové heslo', 'success');
- }
- $this->redirect('default');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement