collective.redirectacquired
===========================
This Plone addon aims to solve the very common issue of having a lot of different URLs that publish the same content item via acquisition.
It supports Plone 6. See 1.x branch for Plone 4 support.
Zope implicit acquisition leads to many use case where URLs that are valid for the publisher are produced but are not the URLs meant by the users of the system.
This addon modifies the publication process to ensure that instead of allowing traversal from a content item to another content item
via acquisition, we redirect to the URL of the traversed content item.
In the previous paragraph, an item is considered a content item if and only if it provides ``Products.CMFCore.IContentish``.
This should avoid false positive redirects for URL path item that are acquired but are actually parts of the software rather than content items.
If you need to enable publication of content items via acquisition, mark them with
``collective.redirectacquired.interfaces.IPublishableThroughAcquisition``.
Changelog
=========
2.0a1 (2024-02-08)
------------------
- Plone 6 support (Plone 4 support dropped)
[gotcha]
- NotFound when acquiring site only raised when redirect is activated in zope.conf
[gotcha]
1.0a12 (2018-03-20)
-------------------
- less noisy logging
[gotcha]
- NotFound when acquiring a site
[gotcha]
1.0a11 (2018-03-12)
-------------------
- Be defensive against circular redirects caused by broken Link objects or broken plone.folders
[gotcha]
1.0a10 (2018-02-26)
-------------------
- Get rid of code made useless by refactoring.
More tests
[gotcha]
1.0a9 (2018-02-20)
------------------
- Refactor for more complex acquisition
https://github.com/collective/collective.redirectacquired/issues/3
[gotcha]
- Do not break redirector
https://github.com/collective/collective.redirectacquired/issues/2
[gotcha]
- Do not allow to cache permanent redirection
https://github.com/collective/collective.redirectacquired/issues/1
[gotcha]
1.0a8 (2018-01-25)
------------------
- Redirect permanently (301)
[gotcha]
1.0a7 (2018-01-24)
------------------
- Take care of QUERY_STRING.
[gotcha]
- Do not redirect if REQUEST_METHOD is not GET.
[gotcha]
1.0a6 (2018-01-24)
------------------
- Fix and test when logging only.
[gotcha]
1.0a5 (2018-01-24)
------------------
- Fix rushed code.
[gotcha]
1.0a4 (2018-01-24)
------------------
- Logging is back.
[gotcha]
1.0a3 (2018-01-24)
------------------
- More tests and refactoring
[gotcha]
1.0a2 (2018-01-22)
------------------
- More tests
[gotcha]
- Much simpler implementation
[gotcha]
1.0a1 (2018-01-17)
------------------
- Remove useless inclusion of CMFPlone in configure.zcml
[gotcha]
1.0a0 (2018-01-17)
------------------
- Initial release
[gotcha]
Raw data
{
"_id": null,
"home_page": "https://github.com/collective/collective.redirectacquired",
"name": "collective.redirectacquired",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "traversal acquisition",
"author": "Godefroid Chapelle",
"author_email": "gotcha@bubblenet.be",
"download_url": "https://files.pythonhosted.org/packages/b5/35/85842079f6b0578373496f3047fb4e964544bf889a00cd6860ed9ede767c/collective.redirectacquired-2.0a1.tar.gz",
"platform": null,
"description": "collective.redirectacquired\n===========================\n\nThis Plone addon aims to solve the very common issue of having a lot of different URLs that publish the same content item via acquisition.\n\nIt supports Plone 6. See 1.x branch for Plone 4 support.\n\nZope implicit acquisition leads to many use case where URLs that are valid for the publisher are produced but are not the URLs meant by the users of the system.\n\nThis addon modifies the publication process to ensure that instead of allowing traversal from a content item to another content item\nvia acquisition, we redirect to the URL of the traversed content item.\n\nIn the previous paragraph, an item is considered a content item if and only if it provides ``Products.CMFCore.IContentish``.\n\nThis should avoid false positive redirects for URL path item that are acquired but are actually parts of the software rather than content items.\n\nIf you need to enable publication of content items via acquisition, mark them with\n``collective.redirectacquired.interfaces.IPublishableThroughAcquisition``.\n\nChangelog\n=========\n\n\n2.0a1 (2024-02-08)\n------------------\n\n- Plone 6 support (Plone 4 support dropped)\n [gotcha]\n\n- NotFound when acquiring site only raised when redirect is activated in zope.conf\n [gotcha]\n\n\n1.0a12 (2018-03-20)\n-------------------\n\n- less noisy logging\n [gotcha]\n\n- NotFound when acquiring a site\n [gotcha]\n\n\n1.0a11 (2018-03-12)\n-------------------\n\n- Be defensive against circular redirects caused by broken Link objects or broken plone.folders\n [gotcha]\n\n\n1.0a10 (2018-02-26)\n-------------------\n\n- Get rid of code made useless by refactoring.\n More tests\n [gotcha]\n\n\n1.0a9 (2018-02-20)\n------------------\n\n- Refactor for more complex acquisition\n https://github.com/collective/collective.redirectacquired/issues/3\n [gotcha]\n\n- Do not break redirector\n https://github.com/collective/collective.redirectacquired/issues/2\n [gotcha]\n\n- Do not allow to cache permanent redirection\n https://github.com/collective/collective.redirectacquired/issues/1\n [gotcha]\n\n\n1.0a8 (2018-01-25)\n------------------\n\n- Redirect permanently (301)\n [gotcha]\n\n\n1.0a7 (2018-01-24)\n------------------\n\n- Take care of QUERY_STRING.\n [gotcha]\n\n- Do not redirect if REQUEST_METHOD is not GET.\n [gotcha]\n\n1.0a6 (2018-01-24)\n------------------\n\n- Fix and test when logging only.\n [gotcha]\n\n\n1.0a5 (2018-01-24)\n------------------\n\n- Fix rushed code.\n [gotcha]\n\n\n1.0a4 (2018-01-24)\n------------------\n\n- Logging is back.\n [gotcha]\n\n\n1.0a3 (2018-01-24)\n------------------\n\n- More tests and refactoring\n [gotcha]\n\n\n1.0a2 (2018-01-22)\n------------------\n\n- More tests\n [gotcha]\n\n- Much simpler implementation\n [gotcha]\n\n\n1.0a1 (2018-01-17)\n------------------\n\n- Remove useless inclusion of CMFPlone in configure.zcml\n [gotcha]\n\n\n1.0a0 (2018-01-17)\n------------------\n\n- Initial release\n [gotcha]\n",
"bugtrack_url": null,
"license": "GPL",
"summary": "Redirect when traversing to acquired content outside the current path.",
"version": "2.0a1",
"project_urls": {
"Homepage": "https://github.com/collective/collective.redirectacquired"
},
"split_keywords": [
"traversal",
"acquisition"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15d30df6e607913248cc8bbdda4ce6ec653da3119ec9314e822d71461b310530",
"md5": "65636e330cb44177b2bb7efa71c3858e",
"sha256": "b0a128c5000a1f14e8b3a830cce5977c712dd5207a2f454a9f8d70539d401ced"
},
"downloads": -1,
"filename": "collective.redirectacquired-2.0a1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "65636e330cb44177b2bb7efa71c3858e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 182915,
"upload_time": "2024-02-08T16:32:14",
"upload_time_iso_8601": "2024-02-08T16:32:14.762822Z",
"url": "https://files.pythonhosted.org/packages/15/d3/0df6e607913248cc8bbdda4ce6ec653da3119ec9314e822d71461b310530/collective.redirectacquired-2.0a1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b53585842079f6b0578373496f3047fb4e964544bf889a00cd6860ed9ede767c",
"md5": "ad098553622acfde72105133615fa724",
"sha256": "9d6420bacd3f5695784b3755be242e44785e4ef29c15a9ef82d078e266d11d32"
},
"downloads": -1,
"filename": "collective.redirectacquired-2.0a1.tar.gz",
"has_sig": false,
"md5_digest": "ad098553622acfde72105133615fa724",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 190928,
"upload_time": "2024-02-08T16:32:16",
"upload_time_iso_8601": "2024-02-08T16:32:16.449013Z",
"url": "https://files.pythonhosted.org/packages/b5/35/85842079f6b0578373496f3047fb4e964544bf889a00cd6860ed9ede767c/collective.redirectacquired-2.0a1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-08 16:32:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "collective",
"github_project": "collective.redirectacquired",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "zc.buildout",
"specs": [
[
"==",
"3.0.1"
]
]
}
],
"lcname": "collective.redirectacquired"
}