X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FRegister.php;h=f4d409bc328fda3931dda68c961555a79d8626a2;hb=818c064c0a5d75b25e1977d336e319e8e9464577;hp=e54db87a6b7fee15643a02e62fe4f4fe052566d0;hpb=9c9ebfc7c97016881d9ad2bb3c3b54a5640d2f08;p=friendica.git diff --git a/src/Model/Register.php b/src/Model/Register.php index e54db87a6b..f4d409bc32 100644 --- a/src/Model/Register.php +++ b/src/Model/Register.php @@ -1,51 +1,73 @@ . + * */ + namespace Friendica\Model; +use Friendica\Content\Pager; use Friendica\Database\DBA; use Friendica\Util\DateTimeFormat; +use Friendica\Util\Strings; /** * Class interacting with the register database table - * - * @author Hypolite Petovan */ class Register { /** * Return the list of pending registrations * + * @param int $start Start count (Default is 0) + * @param int $count Count of the items per page (Default is @see Pager::ITEMS_PER_PAGE) + * * @return array + * @throws \Exception + */ + public static function getPending($start = 0, $count = Pager::ITEMS_PER_PAGE) + { + return DBA::selectToArray('pending-view', [], [], ['limit' => [$start, $count]]); + } + + /** + * Returns the pending user based on a given user id + * + * @param int $uid The user id + * + * @return array The pending user information + * + * @throws \Exception */ - public static function getPending() + public static function getPendingForUser(int $uid) { - $stmt = DBA::p( - "SELECT `register`.*, `contact`.`name`, `user`.`email` - FROM `register` - INNER JOIN `contact` ON `register`.`uid` = `contact`.`uid` - INNER JOIN `user` ON `register`.`uid` = `user`.`uid`" - ); - - return DBA::toArray($stmt); + return DBA::selectFirst('pending-view', [], ['uid' => $uid, 'self' => true]); } /** * Returns the pending registration count * * @return int + * @throws \Exception */ public static function getPendingCount() { - $register = DBA::fetchFirst( - "SELECT COUNT(*) AS `count` - FROM `register` - INNER JOIN `contact` ON `register`.`uid` = `contact`.`uid` AND `contact`.`self`" - ); - - return $register['count']; + return DBA::count('pending-view', ['self' => true]); } /** @@ -53,6 +75,7 @@ class Register * * @param string $hash * @return array + * @throws \Exception */ public static function getByHash($hash) { @@ -62,8 +85,9 @@ class Register /** * Returns true if a register record exists with the provided hash * - * @param string $hash + * @param string $hash * @return boolean + * @throws \Exception */ public static function existsByHash($hash) { @@ -74,10 +98,11 @@ class Register * Creates a register record for an invitation and returns the auto-generated code for it * * @return string + * @throws \Exception */ public static function createForInvitation() { - $code = autoname(8) . srand(1000, 9999); + $code = Strings::getRandomName(8) . random_int(1000, 9999); $fields = [ 'hash' => $code, @@ -97,10 +122,11 @@ class Register * @param string $language The registration language * @param string $note An additional message from the user * @return boolean + * @throws \Exception */ public static function createForApproval($uid, $language, $note = '') { - $hash = random_string(); + $hash = Strings::getRandomHex(); if (!User::exists($uid)) { return false; @@ -121,8 +147,9 @@ class Register /** * Deletes a register record by the provided hash and returns the success of the database deletion * - * @param string $hash + * @param string $hash * @return boolean + * @throws \Exception */ public static function deleteByHash($hash) {