|
@@ -4,6 +4,7 @@ namespace App\Controllers;
|
|
|
|
|
|
use App\Database\Queries\UserQuery;
|
|
use App\Database\Queries\UserQuery;
|
|
use App\Web\ValidationChecker;
|
|
use App\Web\ValidationChecker;
|
|
|
|
+use League\Flysystem\FileNotFoundException;
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use Psr\Http\Message\ResponseInterface as Response;
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
|
|
|
|
|
@@ -218,6 +219,36 @@ class UserController extends Controller
|
|
return redirect($response, route('user.index'));
|
|
return redirect($response, route('user.index'));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @param Request $request
|
|
|
|
+ * @param Response $response
|
|
|
|
+ * @param int $id
|
|
|
|
+ * @return Response
|
|
|
|
+ */
|
|
|
|
+ public function clearUserMedia(Request $request, Response $response, int $id): Response
|
|
|
|
+ {
|
|
|
|
+ $user = make(UserQuery::class)->get($request, $id, true);
|
|
|
|
+
|
|
|
|
+ $medias = $this->database->query('SELECT * FROM `uploads` WHERE `user_id` = ?', $user->id);
|
|
|
|
+
|
|
|
|
+ foreach ($medias as $media) {
|
|
|
|
+ try {
|
|
|
|
+ $this->storage->delete($media->storage_path);
|
|
|
|
+ } catch (FileNotFoundException $e) {
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $this->database->query('DELETE FROM `uploads` WHERE `user_id` = ?', $user->id);
|
|
|
|
+ $this->database->query('UPDATE `users` SET `current_disk_quota`=? WHERE `id` = ?', [
|
|
|
|
+ 0,
|
|
|
|
+ $user->id,
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ $this->session->alert(lang('account_media_deleted'), 'success');
|
|
|
|
+ return redirect($response, route('user.edit', ['id' => $id]));
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @param Request $request
|
|
* @param Request $request
|
|
* @param Response $response
|
|
* @param Response $response
|