]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/User.php
Merge pull request #7762 from nupplaphil/task/mod_ignored
[friendica.git] / src / Model / User.php
index b6121ad04e07c46098f2eeec60b8cf8e17dbf07f..499c55330bd5516c7be0dbe816b868a53e9fb4d0 100644 (file)
@@ -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;
+               }
        }
 
        /**