/** * 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(); }
/** * 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')]); }
/** * testGetRaw * * @since 2.6.0 * * @param string $raw * * @dataProvider providerHash */ public function testGetRaw($raw = null) { /* setup */ $hash = new Hash($this->_config); $hash->init($raw); /* expect and actual */ $expect = $raw; $actual = $hash->getRaw(); /* compare */ $this->assertEquals($expect, $actual); }