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($params, $data, $request, $response) { $id = $params['id'] ?? null; if (!$id) throw new BadRequest(); $fileData = $this->getRecordService()->getFileData($id); $response->headers->set('Content-Type', $fileData->type); $response->headers->set('Content-Disposition', 'Content-Disposition: attachment; filename="'.$fileData->name.'"'); if ($fileData->size) { $response->headers->set('Content-Length', $fileData->size); } return $fileData->contents; } }