getUser()->isAdmin()) { throw new Forbidden(); } return parent::actionList($params, $data, $request); } public function postActionGetAttachmentFromImageUrl($params, $data) { if (empty($data->url)) { throw new BadRequest(); } if (empty($data->field)) { throw new BadRequest('postActionGetAttachmentFromImageUrl: No field specified'); } return $this->getRecordService()->getAttachmentFromImageUrl($data)->getValueMap(); } public function postActionGetCopiedAttachment($params, $data) { if (empty($data->id)) { throw new BadRequest(); } if (empty($data->field)) { throw new BadRequest('postActionGetCopiedAttachment copy: No field specified'); } return $this->getRecordService()->getCopiedAttachment($data)->getValueMap(); } public function getActionFile(Request $request, Response $response) { $id = $request->getRouteParam('id'); if (!$id) { throw new BadRequest(); } $fileData = $this->getRecordService()->getFileData($id); $response ->setHeader('Content-Type', $fileData->type) ->setHeader('Content-Disposition', 'attachment; filename="' . $fileData->name . '"') ->setHeader('Content-Length', (string) $fileData->size) ->setBody($fileData->stream); } }