Pellaeon Lin 2017-05-01 17:33:21 +08:00
parent 96787478dd
commit 324c218c8d
2 changed files with 14 additions and 9 deletions

View File

@ -87,7 +87,7 @@ class Application extends App {
}); });
$container->registerService('PendingRegist', function(SimpleContainer $c) { $container->registerService('PendingRegist', function(SimpleContainer $c) {
return new PendingRegist($c->query('ServerContainer')->getDb(), return new PendingRegist($c->query('ServerContainer')->getDatabaseConnection(),
$c->query('ServerContainer')->getSecureRandom()->getMediumStrengthGenerator()); $c->query('ServerContainer')->getSecureRandom()->getMediumStrengthGenerator());
}); });

View File

@ -1,7 +1,7 @@
<?php <?php
namespace OCA\Registration\Db; namespace OCA\Registration\Db;
use \OCP\IDb; use \OCP\IDbConnection;
use \OCP\Util; use \OCP\Util;
use \OCP\Security\ISecureRandom; use \OCP\Security\ISecureRandom;
@ -12,13 +12,13 @@ class PendingRegist {
/** @var \OCP\Security\ISecureRandom */ /** @var \OCP\Security\ISecureRandom */
protected $random; protected $random;
public function __construct(IDb $db, ISecureRandom $random) { public function __construct(IDbConnection $db, ISecureRandom $random) {
$this->db = $db; $this->db = $db;
$this->random = $random; $this->random = $random;
} }
public function save($email) { public function save($email) {
$query = $this->db->prepareQuery( 'INSERT INTO `*PREFIX*registration`' $query = $this->db->prepare( 'INSERT INTO `*PREFIX*registration`'
.' ( `email`, `token`, `requested` ) VALUES( ?, ?, NOW() )' ); .' ( `email`, `token`, `requested` ) VALUES( ?, ?, NOW() )' );
$token = $this->random->generate(6, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS); $token = $this->random->generate(6, ISecureRandom::CHAR_UPPER.ISecureRandom::CHAR_DIGITS);
@ -27,18 +27,23 @@ class PendingRegist {
return $token; return $token;
} }
public function find($email) { public function find($email) {
$query = $this->db->prepareQuery('SELECT `email` FROM `*PREFIX*registration` WHERE `email` = ? '); $query = $this->db->prepare('SELECT `email` FROM `*PREFIX*registration` WHERE `email` = ? ');
return $query->execute(array($email))->fetchAll(); $query->execute(array($email));
return $query->fetchAll();
} }
public function delete($email) { public function delete($email) {
$query = $this->db->prepareQuery('DELETE FROM `*PREFIX*registration` WHERE `email` = ? '); $query = $this->db->prepare('DELETE FROM `*PREFIX*registration` WHERE `email` = ? ');
return $query->execute(array($email)); return $query->execute(array($email));
} }
/**
* @return string|false
*/
public function findEmailByToken($token) { public function findEmailByToken($token) {
$query = $this->db->prepareQuery('SELECT `email` FROM `*PREFIX*registration` WHERE `token` = ? '); $query = $this->db->prepare('SELECT `email` FROM `*PREFIX*registration` WHERE `token` = ? ');
return $query->execute(array($token))->fetchOne(); $query->execute(array($token));
return $query->fetch()['email'];
} }
} }