Ejemplo n.º 1
0
    public function forgotPassword()
    {
        if ($this->getRequest()->getMethod() == 'POST') {
            $email = $this->getParam('email');
            $user = $this->userStore->getByEmail($email);
            if (is_null($user)) {
                $this->view->error = 'No user exists with that email address, please try again.';
                return;
            }
            $userId = $user->getId();
            $key = md5(date('Y-m-d') . $user->getHash());
            $name = $user->getName();
            $siteName = $this->config->get('site.name');
            $url = $this->config->get('site.full_admin_url');
            $message = <<<OUT
Dear {$name},

You have received this email because you, or someone else, has requested a password reset for {$siteName}.

If this was you, please click the following link to reset your password: {$url}/session/reset-password/{$userId}/{$key}

Otherwise, please ignore this email and no action will be taken.

Thank you,
{$siteName}
OUT;
            $mailTo = $name . ' <' . $user->getEmail() . '>';
            @mail($mailTo, $siteName . ' Password Reset', $message, 'From: ' . $this->config->get('site.email_from'));
            $this->view->emailed = true;
        }
    }
Ejemplo n.º 2
0
 public function edit($userId)
 {
     $user = $this->userStore->getById($userId);
     $this->setTitle('Edit User: '******'/user/edit/' . $userId);
     if ($this->request->getMethod() == 'POST') {
         $form = $this->userForm($this->getParams(), 'edit');
         if ($form->validate()) {
             $emailChanged = $this->getParam('email') !== $user->getEmail();
             if ($emailChanged && $this->userStore->getByEmail($this->getParam('email'))) {
                 $error = 'This email address already belongs to a registered user.';
                 $form->getChild('fieldset')->getChild('email')->setError($error);
                 $this->view->form = $form->render();
                 return;
             }
             try {
                 $params = $this->getParams();
                 if ($params['password'] != '') {
                     $params['hash'] = password_hash($params['password'], PASSWORD_DEFAULT);
                 }
                 $user->setValues($params);
                 $listenData = [$user, $params];
                 Event::trigger('beforeUserSave', $listenData);
                 list($user, $params) = $listenData;
                 $user = $this->userStore->save($user);
                 return $this->redirect('/user')->success($params['name'] . ' was edited successfully.');
             } catch (Exception $e) {
                 $this->errorMessage('There was an error editing the user. Please try again.');
             }
         } else {
             $this->errorMessage('There was an error editing the user. Please try again.');
         }
     }
     $this->view->form = $this->userForm($user->toArray(), 'edit')->render();
 }