X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FUser.php;h=499c55330bd5516c7be0dbe816b868a53e9fb4d0;hb=ee1954f2944f3996f4320a48b68fad7e2174da34;hp=b6121ad04e07c46098f2eeec60b8cf8e17dbf07f;hpb=27eaffd7fb4713491dbb72410b0adc55d4c9a6aa;p=friendica.git diff --git a/src/Model/User.php b/src/Model/User.php index b6121ad04e..499c55330b 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -18,7 +18,6 @@ use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; -use Friendica\Model\Photo; use Friendica\Model\TwoFactor\AppSpecificPassword; use Friendica\Object\Image; use Friendica\Util\Crypto; @@ -105,6 +104,27 @@ class User return DBA::selectFirst('user', $fields, ['uid' => $uid]); } + /** + * Returns a user record based on it's GUID + * + * @param string $guid The guid of the user + * @param array $fields The fields to retrieve + * @param bool $active True, if only active records are searched + * + * @return array|boolean User record if it exists, false otherwise + * @throws Exception + */ + public static function getByGuid(string $guid, array $fields = [], bool $active = true) + { + if ($active) { + $cond = ['guid' => $guid, 'account_expired' => false, 'account_removed' => false]; + } else { + $cond = ['guid' => $guid]; + } + + return DBA::selectFirst('user', $fields, $cond); + } + /** * @param string $nickname * @param array $fields @@ -412,6 +432,7 @@ class User * * @param string $password * @return bool + * @throws Exception */ public static function isPasswordExposed($password) { @@ -420,9 +441,20 @@ class User 'cacheDirectory' => get_temppath() . '/password-exposed-cache/', ]); - $PasswordExposedCHecker = new PasswordExposed\PasswordExposedChecker(null, $cache); + try { + $passwordExposedChecker = new PasswordExposed\PasswordExposedChecker(null, $cache); + + return $passwordExposedChecker->passwordExposed($password) === PasswordExposed\PasswordStatus::EXPOSED; + } catch (\Exception $e) { + Logger::error('Password Exposed Exception: ' . $e->getMessage(), [ + 'code' => $e->getCode(), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => $e->getTraceAsString() + ]); - return $PasswordExposedCHecker->passwordExposed($password) === PasswordExposed\PasswordStatus::EXPOSED; + return false; + } } /**