Redaxscript\Controller\Recover::process PHP Метод

process() публичный Метод

process the class
С версии: 3.0.0
public process ( ) : string
Результат string
    public function process()
    {
        $emailFilter = new Filter\Email();
        /* process post */
        $postArray = ['email' => $emailFilter->sanitize($this->_request->getPost('email')), 'task' => $this->_request->getPost('task'), 'solution' => $this->_request->getPost('solution')];
        /* handle error */
        $messageArray = $this->_validate($postArray);
        if ($messageArray) {
            return $this->_error(['message' => $messageArray]);
        }
        /* handle success */
        $messageArray = [];
        $users = Db::forTablePrefix('users')->where(['email' => $postArray['email'], 'status' => 1])->findMany();
        /* process users */
        foreach ($users as $user) {
            $mailArray = ['id' => $user->id, 'name' => $user->name, 'user' => $user->user, 'password' => $user->password, 'email' => $user->email];
            if ($this->_mail($mailArray)) {
                $messageArray[] = $user->name . $this->_language->get('colon') . ' ' . $this->_language->get('recovery_sent');
            }
        }
        if ($messageArray) {
            return $this->_success(['message' => $messageArray]);
        }
        return $this->_error(['message' => $this->_language->get('something_wrong')]);
    }

Usage Example

Пример #1
0
 /**
  * testProcess
  *
  * @since 3.0.0
  *
  * @param array $postArray
  * @param array $hashArray
  * @param string $expect
  *
  * @dataProvider providerProcess
  */
 public function testProcess($postArray = [], $hashArray = [], $expect = null)
 {
     /* setup */
     $this->_request->set('post', $postArray);
     $this->_request->setPost('solution', function_exists('password_verify') ? $hashArray[0] : $hashArray[1]);
     $recoverController = new Controller\Recover($this->_registry, $this->_language, $this->_request);
     /* actual */
     $actual = $recoverController->process();
     /* compare */
     $this->assertEquals($expect, $actual);
 }