From cd1e6aca9cf257feb72a7825204d44a5710f2ddd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20Duch=C3=AAne?= Date: Tue, 15 Oct 2024 12:48:11 +0200 Subject: [PATCH] Fixed issue in DXDocumentGenerationHelperView.check_permission --- CHANGES.rst | 2 ++ src/collective/documentgenerator/helper/dexterity.py | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 792332e8..d75170cb 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,6 +8,8 @@ Changelog [aduchene] - Fixed an issue when odt_file.filename could be None when searching and replacing. [aduchene] +- Fixed an issue with `helper.dexterity.DXDocumentGenerationHelperView.check_permission` raising when it should not. + [aduchene] 3.43 (2024-04-10) ----------------- diff --git a/src/collective/documentgenerator/helper/dexterity.py b/src/collective/documentgenerator/helper/dexterity.py index 736d21e5..522310d9 100644 --- a/src/collective/documentgenerator/helper/dexterity.py +++ b/src/collective/documentgenerator/helper/dexterity.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- """Helper view for dexterity content types.""" - from ..interfaces import IFieldRendererForDocument from .base import DisplayProxyObject from .base import DocumentGenerationHelperView +from AccessControl import getSecurityManager from bs4 import BeautifulSoup as Soup from collective.excelexport.exportables.dexterityfields import get_ordered_fields from imio.helpers.content import get_relations as ih_get_relations @@ -81,8 +81,10 @@ def check_permission(self, field_name): if permission is None: return True - user = api.user.get_current() - return api.user.has_permission(permission, user=user, obj=self.real_context) + # We can't use plone.api.user.has_permission anymore since + # https://github.com/plone/plone.api/pull/526 as we pass a permission id and if + # we don't have the perm, it raises now + return bool(getSecurityManager().checkPermission(permission, self.real_context)) def get_value(self, field_name, obj=None, default=None, as_utf8=False, strict=True): """Get value of field_name for obj