Should call PendingRegist for DB operations

This commit is contained in:
Pellaeon Lin 2014-08-31 10:13:36 +00:00
parent e25165eaa6
commit 6b75d5a394
3 changed files with 13 additions and 7 deletions

View File

@ -16,6 +16,7 @@ use \OCP\AppFramework\App;
use \OCA\Registration\Controller\RegisterController;
use \OCA\Registration\Wrapper;
use \OCA\Registration\Db\PendingRegist;
class Application extends App {
@ -31,7 +32,11 @@ class Application extends App {
$container->registerService('RegisterController', function($c) {
return new RegisterController(
$c->query('AppName'),
$c->query('Request')
$c->query('Request'),
$c->query('Mail'),
$c->query('L10N'),
$c->query('URLGenerator'),
$c->query('PendingRegist')
);
});

View File

@ -21,14 +21,15 @@ class RegisterController extends Controller {
private $mail;
private $l10n;
private $db;
private $urlgenerator;
private $pendingreg;
public function __construct($appName, IRequest $request, Mail $mail, $l10n, $db, $urlgenerator){
public function __construct($appName, IRequest $request, Mail $mail, $l10n, $urlgenerator,
$pendingreg){
$this->mail = $mail;
$this->l10n = $l10n;
$this->db = $db;
$this->urlgenerator = $urlgenerator;
$this->pendingreg = $pendingreg;
parent::__construct($appName, $request);
}
@ -57,14 +58,14 @@ class RegisterController extends Controller {
return;
}
if ( $this->db->find($email) ) {
if ( $this->pendingreg->find($email) ) {
$this->displayRegisterPage($this->l10n->t('There is already a pending registration with this email'), true);
return;
}
// FEATURE: allow only from specific email domain
$token = $this->db->savePendingRegistration($email);
$token = $this->pendingreg->save($email);
$link = $this->urlgenerator->linkToRoute('registration.verify.token', array('token' => $token));
$link = OC_Helper::makeURLAbsolute($link);
$from = OCP\Util::getDefaultEmailAddress('register');

View File

@ -12,7 +12,7 @@ class PendingRegist {
$this->db = $db;
}
public function savePendingRegistration($email) {
public function save($email) {
$query = $this->db->prepareQuery( 'INSERT INTO `*PREFIX*registration`'
.' ( `email`, `token`, `requested` ) VALUES( ?, ?, ? )' );
$token = hash('sha256', generateRandomBytes(30).OC_Config::getValue('passwordsalt', ''));