]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/User.php
Merge pull request #13541 from MrPetovan/bug/13534-image-blurred
[friendica.git] / src / Model / User.php
index 79e23863812da56d02cfdf98ec849d8855a62d86..f985dc2a67cce1480349a1b8d30d37f0e4e61189 100644 (file)
@@ -37,11 +37,10 @@ use Friendica\Database\DBA;
 use Friendica\DI;
 use Friendica\Module;
 use Friendica\Network\HTTPClient\Client\HttpClientAccept;
-use Friendica\Network\HTTPException\InternalServerErrorException;
-use Friendica\Security\TwoFactor\Model\AppSpecificPassword;
 use Friendica\Network\HTTPException;
 use Friendica\Object\Image;
 use Friendica\Protocol\Delivery;
+use Friendica\Security\TwoFactor\Model\AppSpecificPassword;
 use Friendica\Util\Crypto;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Images;
@@ -1638,16 +1637,24 @@ class User
         * @param int $uid user to remove
         * @return bool
         * @throws HTTPException\InternalServerErrorException
+        * @throws HTTPException\NotFoundException
         */
        public static function remove(int $uid): bool
        {
                if (empty($uid)) {
-                       return false;
+                       throw new \InvalidArgumentException('uid needs to be greater than 0');
                }
 
                Logger::notice('Removing user', ['user' => $uid]);
 
-               $user = DBA::selectFirst('user', [], ['uid' => $uid]);
+               $user = self::getById($uid);
+               if (!$user) {
+                       throw new HTTPException\NotFoundException('User not found with uid: ' . $uid);
+               }
+
+               if (DBA::exists('user', ['parent-uid' => $uid])) {
+                       throw new \RuntimeException(DI::l10n()->t("User with delegates can't be removed, please remove delegate users first"));
+               }
 
                Hook::callAll('remove_user', $user);