Skip to content

Commit

Permalink
Removed plone path
Browse files Browse the repository at this point in the history
  • Loading branch information
sgeulette committed Nov 5, 2024
1 parent 843874c commit 12b3ef6
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 54 deletions.
22 changes: 12 additions & 10 deletions src/collective/contact/core/browser/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,8 @@ def get_object_from_request(request, default=None):
return context


def get_object_from_referer(referer, default=None):
def get_object_from_referer(portal, referer, default=None):
"""Returns the object from the referer"""
portal = api.portal.get()
referer = referer.replace(portal.absolute_url() + '/', '')
# remove view and parameters
referer = re.sub(r'/@@[^?]*$', '', re.sub(r'\?.*$', '', referer))
Expand All @@ -62,23 +61,26 @@ def audit_access(contact, context):
"audit_contact_types", default=[])
if filtered_pt and contact.portal_type not in filtered_pt:
return
portal = api.portal.get()
portal_path_len = len(portal.absolute_url_path())
req = contact.REQUEST
ctx = ""
case = ""
# logger.info("{}, {}, {}| {}| {}| {}".format(contact, context, req["URL"], req["HTTP_REFERER"],
# req["PARENTS"][0], req["PUBLISHED"]))
if context == "edit":
main_obj = req["PARENTS"][0]
ctx = _("contact_edit")
case = _("contact_edit")
else:
if "ajax_load" in req: # overlay
main_obj = get_object_from_referer(req["HTTP_REFERER"])
ctx = _('contact_overlay')
main_obj = get_object_from_referer(portal, req["HTTP_REFERER"])
case = _('contact_overlay')
else: # simple view
main_obj = req["PARENTS"][0]
ctx = _('contact_view')
if ctx:
extra = u"UID={} PATH={} CTX_PATH={} CASE={}".format(contact.UID(), contact.absolute_url_path(),
main_obj.absolute_url_path(), ctx)
case = _('contact_view')
if case:
extra = u"UID={} PATH={} CTX_PATH={} CASE={}".format(contact.UID(),
contact.absolute_url_path()[portal_path_len:],
main_obj.absolute_url_path()[portal_path_len:], case)
fplog("contacts", contact.portal_type, extra)


Expand Down
88 changes: 44 additions & 44 deletions src/collective/contact/core/tests/test_browser_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,86 +66,86 @@ def test_audit_access(self):
# check organisation view
self.call_view(self.armeedeterre, "view")
self.assertEqual(len(logged_actions), 2)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre "
"CTX_PATH=/plone/mydirectory/armeedeterre CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/plone/mydirectory/degaulle/adt "
"CTX_PATH=/plone/mydirectory/armeedeterre CASE=contact_view")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre "
"CTX_PATH=/mydirectory/armeedeterre CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/mydirectory/degaulle/adt "
"CTX_PATH=/mydirectory/armeedeterre CASE=contact_view")
# check sub organization view
logged_actions[:] = [] # clear
self.call_view(self.brigadelh, "view")
self.assertEqual(len(logged_actions), 2)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh "
"CTX_PATH=/plone/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh "
"CTX_PATH=/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
" CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/plone/mydirectory/rambo/brigadelh "
"CTX_PATH=/plone/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
self.assertEqual(rmv_uid(1), "PATH=/mydirectory/rambo/brigadelh "
"CTX_PATH=/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
" CASE=contact_view")
# check person view
logged_actions[:] = [] # clear
self.call_view(self.degaulle, "view")
self.assertEqual(len(logged_actions), 5)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/plone/mydirectory/degaulle/adt "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(2), "PATH=/plone/mydirectory/armeedeterre "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(3), "PATH=/plone/mydirectory/degaulle/gadt "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(4), "PATH=/plone/mydirectory/armeedeterre "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/mydirectory/degaulle/adt "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(2), "PATH=/mydirectory/armeedeterre "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(3), "PATH=/mydirectory/degaulle/gadt "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(4), "PATH=/mydirectory/armeedeterre "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
# check position view
logged_actions[:] = [] # clear
self.call_view(self.general_adt, "view")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/plone/mydirectory/armeedeterre/general_adt CASE=contact_view")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/mydirectory/armeedeterre/general_adt CASE=contact_view")
# check held_position view
logged_actions[:] = [] # clear
# necessary for z3c.formwidget.query widget initialization... to avoid NoInteraction error
newInteraction()
self.call_view(self.gadt, "view")
endInteraction()
self.assertEqual(len(logged_actions), 2)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/plone/mydirectory/degaulle/gadt CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/plone/mydirectory/degaulle/gadt "
"CTX_PATH=/plone/mydirectory/degaulle/gadt CASE=contact_view")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/mydirectory/degaulle/gadt CASE=contact_view")
self.assertEqual(rmv_uid(1), "PATH=/mydirectory/degaulle/gadt "
"CTX_PATH=/mydirectory/degaulle/gadt CASE=contact_view")
# # EDIT
# check organisation edit
logged_actions[:] = [] # clear
self.call_view(self.armeedeterre, "@@edit")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre "
"CTX_PATH=/plone/mydirectory/armeedeterre CASE=contact_edit")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre "
"CTX_PATH=/mydirectory/armeedeterre CASE=contact_edit")
# check sub organization edit
logged_actions[:] = [] # clear
self.call_view(self.brigadelh, "@@edit")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh "
"CTX_PATH=/plone/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh "
"CTX_PATH=/mydirectory/armeedeterre/corpsa/divisionalpha/regimenth/brigadelh"
" CASE=contact_edit")
# check person edit
logged_actions[:] = [] # clear
self.call_view(self.degaulle, "@@edit")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_edit")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle "
"CTX_PATH=/mydirectory/degaulle CASE=contact_edit")
# check position edit
logged_actions[:] = [] # clear
self.call_view(self.general_adt, "@@edit")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/plone/mydirectory/armeedeterre/general_adt CASE=contact_edit")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre/general_adt "
"CTX_PATH=/mydirectory/armeedeterre/general_adt CASE=contact_edit")
# check held_position edit
logged_actions[:] = [] # clear
# necessary for z3c.formwidget.query widget initialization... to avoid NoInteraction error
newInteraction()
self.call_view(self.gadt, "@@edit")
endInteraction()
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle/gadt "
"CTX_PATH=/plone/mydirectory/degaulle/gadt CASE=contact_edit")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle/gadt "
"CTX_PATH=/mydirectory/degaulle/gadt CASE=contact_edit")
# # OVERLAY
# check directory overlay
logged_actions[:] = []
Expand All @@ -156,10 +156,10 @@ def test_audit_access(self):
self.armeedeterre.REQUEST["ajax_load"] = "12345678"
self.call_view(self.armeedeterre, "view")
self.assertEqual(len(logged_actions), 2)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/armeedeterre "
"CTX_PATH=/plone/mydirectory CASE=contact_overlay")
self.assertEqual(rmv_uid(1), "PATH=/plone/mydirectory/degaulle/adt "
"CTX_PATH=/plone/mydirectory CASE=contact_overlay")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/armeedeterre "
"CTX_PATH=/mydirectory CASE=contact_overlay")
self.assertEqual(rmv_uid(1), "PATH=/mydirectory/degaulle/adt "
"CTX_PATH=/mydirectory CASE=contact_overlay")
# # # we filter on person only
api.portal.set_registry_record("collective.contact.core.interfaces.IContactCoreParameters.audit_contact_types",
["person"])
Expand All @@ -177,8 +177,8 @@ def test_audit_access(self):
logged_actions[:] = [] # clear
self.call_view(self.degaulle, "view")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_view")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle "
"CTX_PATH=/mydirectory/degaulle CASE=contact_view")
# check position view
logged_actions[:] = [] # clear
self.call_view(self.general_adt, "view")
Expand All @@ -203,8 +203,8 @@ def test_audit_access(self):
logged_actions[:] = [] # clear
self.call_view(self.degaulle, "@@edit")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle "
"CTX_PATH=/plone/mydirectory/degaulle CASE=contact_edit")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle "
"CTX_PATH=/mydirectory/degaulle CASE=contact_edit")
# check position edit
logged_actions[:] = [] # clear
self.call_view(self.general_adt, "@@edit")
Expand All @@ -226,5 +226,5 @@ def test_audit_access(self):
self.armeedeterre.REQUEST["ajax_load"] = "12345678"
self.call_view(self.degaulle, "view")
self.assertEqual(len(logged_actions), 1)
self.assertEqual(rmv_uid(0), "PATH=/plone/mydirectory/degaulle "
"CTX_PATH=/plone/mydirectory CASE=contact_overlay")
self.assertEqual(rmv_uid(0), "PATH=/mydirectory/degaulle "
"CTX_PATH=/mydirectory CASE=contact_overlay")

0 comments on commit 12b3ef6

Please sign in to comment.