Since: 2.2.0
Author: Henry Ruhs
Inheritance: implements Redaxscript\Filter\FilterInterface
Exemplo n.º 1
0
 /**
  * process
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     /* process post */
     $postArray = ['name' => $specialFilter->sanitize($this->_request->getPost('name')), 'user' => $specialFilter->sanitize($this->_request->getPost('user')), '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 */
     $passwordHash = new Hash(Config::getInstance());
     $passwordHash->init(uniqid());
     $createArray = ['name' => $postArray['name'], 'user' => $postArray['user'], 'password' => $passwordHash->getHash(), 'email' => $postArray['email'], 'language' => $this->_registry->get('language'), 'groups' => Db::forTablePrefix('groups')->where('alias', 'members')->findOne()->id, 'status' => Db::getSetting('verification') ? 0 : 1];
     $mailArray = ['name' => $postArray['name'], 'user' => $postArray['user'], 'password' => $passwordHash->getRaw(), 'email' => $postArray['email']];
     /* create */
     if (!$this->_create($createArray)) {
         return $this->_error(['message' => $this->_language->get('something_wrong')]);
     }
     /* mail */
     if (!$this->_mail($mailArray)) {
         return $this->_error(['message' => $this->_language->get('email_failed')]);
     }
     return $this->_success(['message' => Db::getSetting('verification') ? $this->_language->get('registration_verification') : $this->_language->get('registration_sent')]);
 }
Exemplo n.º 2
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     /* process post */
     $postArray = ['id' => $specialFilter->sanitize($this->_request->getPost('id')), 'password' => $specialFilter->sanitize($this->_request->getPost('password')), 'task' => $this->_request->getPost('task'), 'solution' => $this->_request->getPost('solution')];
     /* query user */
     $user = Db::forTablePrefix('users')->where(['id' => $postArray['id'], 'status' => 1])->findOne();
     /* handle error */
     $messageArray = $this->_validate($postArray, $user);
     if ($messageArray) {
         return $this->_error(['message' => $messageArray]);
     }
     /* handle success */
     $passwordHash = new Hash(Config::getInstance());
     $passwordHash->init(uniqid());
     $resetArray = ['id' => $user->id, 'password' => $passwordHash->getHash()];
     $mailArray = ['name' => $user->name, 'email' => $user->email, 'password' => $passwordHash->getRaw()];
     /* reset */
     if (!$this->_reset($resetArray)) {
         return $this->_error(['message' => $this->_language->get('something_wrong')]);
     }
     /* mail */
     if (!$this->_mail($mailArray)) {
         return $this->_error(['message' => $this->_language->get('email_failed')]);
     }
     return $this->_success();
 }
Exemplo n.º 3
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     $emailValidator = new Validator\Email();
     $loginValidator = new Validator\Login();
     $auth = new Auth($this->_request);
     /* process post */
     $postArray = ['password' => $specialFilter->sanitize($this->_request->getPost('password')), 'task' => $this->_request->getPost('task'), 'solution' => $this->_request->getPost('solution')];
     /* user and email */
     $users = Db::forTablePrefix('users');
     if ($emailValidator->validate($this->_request->getPost('user')) === Validator\ValidatorInterface::PASSED) {
         $postArray['user'] = $emailFilter->sanitize($this->_request->getPost('user'));
         $users->where('email', $postArray['user']);
     } else {
         if ($loginValidator->validate($this->_request->getPost('user')) === Validator\ValidatorInterface::PASSED) {
             $postArray['user'] = $specialFilter->sanitize($this->_request->getPost('user'));
             $users->where('user', $postArray['user']);
         }
     }
     $user = $users->where('status', 1)->findOne();
     /* handle error */
     $messageArray = $this->_validate($postArray, $user);
     if ($messageArray) {
         return $this->_error(['message' => $messageArray]);
     }
     /* handle success */
     if ($auth->login($user->id)) {
         return $this->_success();
     }
     return $this->_error(['message' => $this->_language->get('something_wrong')]);
 }
Exemplo n.º 4
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     $urlFilter = new Filter\Url();
     $htmlFilter = new Filter\Html();
     /* process post */
     $postArray = ['author' => $specialFilter->sanitize($this->_request->getPost('author')), 'email' => $emailFilter->sanitize($this->_request->getPost('email')), 'url' => $urlFilter->sanitize($this->_request->getPost('url')), 'text' => $htmlFilter->sanitize($this->_request->getPost('text')), 'article' => $specialFilter->sanitize($this->_request->getPost('article')), 'task' => $this->_request->getPost('task'), 'solution' => $this->_request->getPost('solution')];
     $route = build_route('articles', $postArray['article']);
     /* handle error */
     $messageArray = $this->_validate($postArray);
     if ($messageArray) {
         return $this->_error(['route' => $route, 'message' => $messageArray]);
     }
     /* handle success */
     $createArray = ['author' => $postArray['author'], 'email' => $postArray['email'], 'url' => $postArray['url'], 'text' => $postArray['text'], 'language' => Db::forTablePrefix('articles')->whereIdIs($postArray['article'])->findOne()->language, 'article' => $postArray['article'], 'status' => Db::getSetting('verification') ? 0 : 1];
     $mailArray = ['email' => $postArray['email'], 'url' => $postArray['url'], 'route' => $route, 'author' => $postArray['author'], 'text' => $postArray['text'], 'article' => Db::forTablePrefix('articles')->whereIdIs($postArray['article'])->findOne()->title];
     /* create */
     if (!$this->_create($createArray)) {
         return $this->_error(['route' => $route, 'message' => $this->_language->get('something_wrong')]);
     }
     /* mail */
     if (!$this->_mail($mailArray)) {
         return $this->_warning(['route' => $route, 'message' => $this->_language->get('email_failed')]);
     }
     return $this->_success(['route' => $route, 'timeout' => Db::getSetting('notification') ? 2 : 0, 'message' => Db::getSetting('moderation') ? $this->_language->get('comment_moderation') : $this->_language->get('comment_sent')]);
 }
Exemplo n.º 5
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $secondParameter = $specialFilter->sanitize($this->_registry->get('secondParameter'));
     $thirdParameter = $specialFilter->sanitize($this->_registry->get('thirdParameter'));
     /* process query */
     $queryArray = [];
     if (!$thirdParameter) {
         $queryArray = ['table' => $this->tableArray, 'search' => $secondParameter];
     } else {
         if (in_array($secondParameter, $this->tableArray)) {
             $queryArray = ['table' => [$secondParameter], 'search' => $thirdParameter];
         }
     }
     /* process search */
     $resultArray = $this->_search(['table' => $queryArray['table'], 'search' => $queryArray['search']]);
     /* handle info */
     $messageArray = $this->_validate($queryArray, $resultArray);
     if ($messageArray) {
         return $this->_info(['message' => $messageArray]);
     }
     /* handle result */
     $output = $this->_renderResult($resultArray);
     if ($output) {
         return $output;
     }
     return $this->_info(['message' => $this->_language->get('search_no')]);
 }
Exemplo n.º 6
0
 /**
  * testSpecial
  *
  * @since 2.2.0
  *
  * @param string $special
  * @param string $expect
  *
  * @dataProvider providerSpecial
  */
 public function testSpecial($special = null, $expect = null)
 {
     /* setup */
     $filter = new Filter\Special();
     /* actual */
     $actual = $filter->sanitize($special);
     /* compare */
     $this->assertEquals($expect, $actual);
 }
Exemplo n.º 7
0
 /**
  * process the class
  *
  * @since 3.0.0
  *
  * @return string
  */
 public function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     /* process post */
     $postArray = ['dbType' => $this->_request->getPost('db-type'), 'dbHost' => $this->_request->getPost('db-host'), 'dbName' => $this->_request->getPost('db-name'), 'dbUser' => $this->_request->getPost('db-user'), 'dbPassword' => $this->_request->getPost('db-password'), 'dbPrefix' => $this->_request->getPost('db-prefix'), 'dbSalt' => $this->_request->getPost('db-salt'), 'adminName' => $specialFilter->sanitize($this->_request->getPost('admin-name')), 'adminUser' => $specialFilter->sanitize($this->_request->getPost('admin-user')), 'adminPassword' => $specialFilter->sanitize($this->_request->getPost('admin-password')), 'adminEmail' => $emailFilter->sanitize($this->_request->getPost('admin-email')), 'refreshConnection' => $this->_request->getPost('refresh-connection')];
     /* handle error */
     $messageArray = $this->_validateDatabase($postArray);
     if ($messageArray) {
         return $this->_error(['url' => 'install.php', 'title' => $this->_language->get('database'), 'message' => $messageArray]);
     }
     $messageArray = $this->_validateAccount($postArray);
     if ($messageArray) {
         return $this->_error(['url' => 'install.php', 'title' => $this->_language->get('account'), 'message' => $messageArray]);
     }
     /* handle success */
     $configArray = ['dbType' => $postArray['dbType'], 'dbHost' => $postArray['dbHost'], 'dbName' => $postArray['dbName'], 'dbUser' => $postArray['dbUser'], 'dbPassword' => $postArray['dbPassword'], 'dbPrefix' => $postArray['dbPrefix'], 'dbSalt' => $postArray['dbSalt']];
     $adminArray = ['adminUser' => $postArray['adminUser'], 'adminName' => $postArray['adminName'], 'adminEmail' => $postArray['adminEmail'], 'adminPassword' => $postArray['adminPassword']];
     /* touch file */
     if ($configArray['dbType'] === 'sqlite' && !touch($configArray['dbHost']) && !unlink($configArray['dbHost'])) {
         return $this->_error(['url' => 'install.php', 'message' => $this->_language->get('directory_permission_grant') . $this->_language->get('point')]);
     }
     /* write config */
     if (!$this->_write($configArray)) {
         return $this->_error(['url' => 'install.php', 'message' => $this->_language->get('file_permission_grant') . $this->_language->get('colon') . ' config.php']);
     }
     /* refresh connection */
     if ($postArray['refreshConnection']) {
         $this->_refresh();
     }
     /* database status */
     if (!Db::getStatus()) {
         return $this->_error(['url' => 'install.php', 'message' => $this->_language->get('database_failed')]);
     }
     /* install */
     if (!$this->_install($adminArray)) {
         return $this->error(['url' => 'install.php', 'message' => $this->_language->get('installation_failed')]);
     }
     /* mail */
     if (!$this->_mail($adminArray)) {
         return $this->_warning(['url' => $this->_registry->get('root'), 'message' => $this->_language->get('email_failed')]);
     }
     return $this->_success(['url' => $this->_registry->get('root'), 'message' => $this->_language->get('installation_completed')]);
 }
Exemplo n.º 8
0
 /**
  * process
  *
  * @since 3.0.0
  *
  * @return string
  */
 public static function process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     $urlFilter = new Filter\Url();
     $htmlFilter = new Filter\Html();
     /* process post */
     $postArray = ['author' => $specialFilter->sanitize(Request::getPost('author')), 'email' => $emailFilter->sanitize(Request::getPost('email')), 'url' => $urlFilter->sanitize(Request::getPost('url')), 'text' => nl2br($htmlFilter->sanitize(Request::getPost('text'))), 'task' => Request::getPost('task'), 'solution' => Request::getPost('solution')];
     /* handle error */
     $messageArray = self::_validate($postArray);
     if ($messageArray) {
         return self::_error(['message' => $messageArray]);
     }
     /* handle success */
     $mailArray = ['author' => $postArray['author'], 'email' => $postArray['email'], 'url' => $postArray['url'], 'text' => $postArray['text']];
     /* mail */
     if (self::_mail($mailArray)) {
         return self::_success();
     }
     return self::_error(['message' => Language::get('something_wrong')]);
 }
Exemplo n.º 9
0
 /**
  * process
  *
  * @since 2.6.0
  */
 public static function _process()
 {
     $specialFilter = new Filter\Special();
     $emailFilter = new Filter\Email();
     $urlFilter = new Filter\Url();
     $htmlFilter = new Filter\Html();
     $emailValidator = new Validator\Email();
     $urlValidator = new Validator\Url();
     $captchaValidator = new Validator\Captcha();
     /* process post */
     $postData = array('author' => $specialFilter->sanitize(Request::getPost('author')), 'email' => $emailFilter->sanitize(Request::getPost('email')), 'url' => $urlFilter->sanitize(Request::getPost('url')), 'text' => nl2br($htmlFilter->sanitize(Request::getPost('text'))), 'task' => Request::getPost('task'), 'solution' => Request::getPost('solution'));
     /* validate post */
     if (!$postData['author']) {
         $errorData['author'] = Language::get('author_empty');
     }
     if (!$postData['email']) {
         $errorData['email'] = Language::get('email_empty');
     } else {
         if ($emailValidator->validate($postData['email']) === Validator\ValidatorInterface::FAILED) {
             $errorData['email'] = Language::get('email_incorrect');
         }
     }
     if ($errorData['url'] && $urlValidator->validate($postData['url']) === Validator\ValidatorInterface::FAILED) {
         $errorData['url'] = Language::get('url_incorrect');
     }
     if (!$postData['text']) {
         $errorData['text'] = Language::get('message_empty');
     }
     if ($captchaValidator->validate($postData['task'], $postData['solution']) === Validator\ValidatorInterface::FAILED) {
         $errorData['captcha'] = Language::get('captcha_incorrect');
     }
     /* handle error */
     if ($errorData) {
         notification(Language::get('error_occurred'), $errorData, Language::get('home'), Registry::get('root'));
     } else {
         notification(Language::get('operation_completed'), Language::get('message_sent', '_contact'), Language::get('home'), Registry::get('root'));
         self::_send($postData);
     }
 }