Skip to content

Commit

Permalink
Merge pull request #418 from collective/fix-permission-for-saved-data…
Browse files Browse the repository at this point in the history
…-restapi-serializer

Fix permission for saved data restapi serializer
  • Loading branch information
mauritsvanrees committed Nov 3, 2023
2 parents b5c2a4e + 91b9ab7 commit 8ef8abf
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
3 changes: 2 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Changelog
4.1.5 (unreleased)
------------------

- Nothing changed yet.
- check for "collective.easyform.DownloadSavedInput" permission, before including the saved data in serializer.
[MrTango]


4.1.4 (2023-07-27)
Expand Down
9 changes: 9 additions & 0 deletions api.http
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
@baseUrl = http://localhost:8080/Plone

###

get {{baseUrl}}/form

###
get {{baseUrl}}/form
Authorization: Basic admin:admin
6 changes: 4 additions & 2 deletions src/collective/easyform/serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from zope.schema import getFieldsInOrder
from zope.schema.interfaces import ISet, IDate, IDatetime

from plone import api
from plone.restapi.serializer.dxcontent import SerializeToJson as DXContentToJson
from plone.restapi.deserializer.dxcontent import (
DeserializeFromJson as DXContentFromJson,
Expand All @@ -24,6 +25,7 @@

from collective.easyform.api import get_actions
from collective.easyform.api import get_schema
from collective.easyform.config import DOWNLOAD_SAVED_PERMISSION
from collective.easyform.interfaces import IEasyForm
from collective.easyform.interfaces import ISaveData
from Products.CMFPlone.utils import safe_unicode
Expand All @@ -37,8 +39,8 @@
class SerializeToJson(DXContentToJson):
def __call__(self, version=None, include_items=True):
result = super(SerializeToJson, self).__call__(version, include_items)
self.serializeSavedData(result)

if api.user.has_permission(DOWNLOAD_SAVED_PERMISSION, obj=self.context):
self.serializeSavedData(result)
return result

def serializeSavedData(self, result):
Expand Down

0 comments on commit 8ef8abf

Please sign in to comment.