+ /**
+ * Attach a link to a page as a file.
+ * @param Request $request
+ * @return mixed
+ */
+ public function attachLink(Request $request)
+ {
+ $this->validate($request, [
+ 'uploaded_to' => 'required|integer|exists:pages,id',
+ 'name' => 'string',
+ 'link' => 'url'
+ ]);
+
+ $pageId = $request->get('uploaded_to');
+ $page = $this->pageRepo->getById($pageId);
+
+ $this->checkPermission('file-create-all');
+ $this->checkOwnablePermission('page-update', $page);
+
+ $fileName = $request->get('name');
+ $link = $request->get('link');
+ $file = $this->fileService->saveNewFromLink($fileName, $link, $pageId);
+
+ return response()->json($file);
+ }
+