Revert "Cleanup Activation.php"

This reverts commit c38db907ba.
This commit is contained in:
Austin 2021-10-31 21:42:44 -04:00
parent c1f467b613
commit f88a8edb64
1 changed files with 21 additions and 24 deletions

View File

@ -6,57 +6,54 @@
namespace Alphaland\Users { namespace Alphaland\Users {
use Alphaland\Common\HashingUtiltity;
use PDO; use PDO;
class Activation class Activation
{ {
private function generateActivationCode()
private static PDO $pdo = $GLOBALS['pdo'];
private static function GenerateActivationCode(): string
{ {
$hash = ""; $hash = "";
do { while (true) {
$hash = HashingUtiltity::GenerateByteHash(32); $hash = genHash(32);
$query = Activation::$pdo->prepare("SELECT COUNT(*) FROM `alphaland_verification` WHERE `activationcode` = :ac");
$query->bindParam(":ac", $hash, PDO::PARAM_STR);
$query->execute();
} while ($query->fetchColumn(0) != 0);
$keycheck = $GLOBALS['pdo']->prepare("SELECT * FROM `alphaland_verification` WHERE `activationcode` = :ac");
$keycheck->bindParam(":ac", $hash, PDO::PARAM_STR);
$keycheck->execute();
if ($keycheck->rowCount() == 0) {
break;
}
}
return $hash; return $hash;
} }
public static function GetUserActivationCode(int $userid): string public function getUserActivationCode(int $userid)
{ {
$query = Activation::$pdo->prepare("SELECT `activationcode` FROM `alphaland_verification` WHERE `uid` = :uid"); $query = $GLOBALS['pdo']->prepare("SELECT * FROM `alphaland_verification` WHERE `uid` = :uid");
$query->bindParam(":uid", $userid, PDO::PARAM_INT); $query->bindParam(":uid", $userid, PDO::PARAM_INT);
$query->execute(); $query->execute();
if ($query->rowCount() == 1) { if ($query->rowCount() == 1) {
return (string)$query->fetch(PDO::FETCH_OBJ)->activationcode; return $query->fetch(PDO::FETCH_OBJ)->activationcode;
} }
return null; return false;
} }
public static function IsUserActivated(int $userid): bool public function isUserActivated(int $userid)
{ {
$query = Activation::$pdo->prepare("SELECT COUNT(*) FROM `alphaland_verification` WHERE `isactivated` = 1 AND `uid` = :uid"); $query = $GLOBALS['pdo']->prepare("SELECT * FROM `alphaland_verification` WHERE `isactivated` = 1 AND `uid` = :uid");
$query->bindParam(":uid", $userid, PDO::PARAM_INT); $query->bindParam(":uid", $userid, PDO::PARAM_INT);
$query->execute(); $query->execute();
if ($query->fetchColumn(0) > 0) { if ($query->rowCount() > 0) {
return true; return true;
} }
return false; return false;
} }
public static function SetupUserActivation(int $userid): bool //this should be ran when the user first signs up public function setupUserActivation(int $userid) //this should be ran when the user first signs up
{ {
if (!Activation::IsUserActivated($userid)) { if (!$this->isUserActivated($userid)) {
$activationcode = Activation::GenerateActivationCode(); $activationcode = $this->generateActivationCode();
$n = Activation::$pdo->prepare("INSERT INTO `alphaland_verification`(`activationcode`,`uid`) VALUES(:ac, :userid)"); $n = $GLOBALS['pdo']->prepare("INSERT INTO `alphaland_verification`(`activationcode`,`uid`) VALUES(:ac, :userid)");
$n->bindParam(":ac", $activationcode, PDO::PARAM_STR); $n->bindParam(":ac", $activationcode, PDO::PARAM_STR);
$n->bindParam(":userid", $userid, PDO::PARAM_INT); $n->bindParam(":userid", $userid, PDO::PARAM_INT);
$n->execute(); $n->execute();