3 // TODO - Replace this with setting-level handling
4 // Since won't be part of image manager handling
6 namespace BookStack\Http\Controllers\Images;
8 use BookStack\Exceptions\ImageUploadException;
9 use BookStack\Uploads\ImageRepo;
10 use Illuminate\Http\Request;
11 use BookStack\Http\Controllers\Controller;
13 class SystemImageController extends Controller
18 * SystemImageController constructor.
19 * @param ImageRepo $imageRepo
21 public function __construct(ImageRepo $imageRepo)
23 $this->imageRepo = $imageRepo;
24 parent::__construct();
28 * Get a list of system images, in a list.
29 * @param Request $request
30 * @return \Illuminate\Http\JsonResponse
32 public function list(Request $request)
34 $this->checkPermission('settings-manage');
35 $page = $request->get('page', 1);
36 $searchTerm = $request->get('search', null);
38 $imgData = $this->imageRepo->getPaginatedByType('system', $page, 24, null, $searchTerm);
39 return response()->json($imgData);
43 * Store a new system image.
44 * @param Request $request
45 * @return Illuminate\Http\JsonResponse
48 public function create(Request $request)
50 $this->checkPermission('image-create-all');
51 $this->checkPermission('settings-manage');
53 $this->validate($request, [
54 'file' => $this->imageRepo->getImageValidationRules()
58 $imageUpload = $request->file('file');
59 $image = $this->imageRepo->saveNew($imageUpload, 'system', 0);
60 } catch (ImageUploadException $e) {
61 return response($e->getMessage(), 500);
64 return response()->json($image);