{ "info": { "author": "Godefroid Chapelle", "author_email": "gotcha@bubblenet.be", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Programming Language :: Python" ], "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\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\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]", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/collective.redirectacquired", "keywords": "traversal acquisition", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "collective.redirectacquired", "package_url": "https://pypi.org/project/collective.redirectacquired/", "platform": "", "project_url": "https://pypi.org/project/collective.redirectacquired/", "project_urls": { "Homepage": "https://github.com/collective/collective.redirectacquired" }, "release_url": "https://pypi.org/project/collective.redirectacquired/1.0a12/", "requires_dist": null, "requires_python": "", "summary": "Redirect when traversing to acquired content outside the current path.", "version": "1.0a12" }, "last_serial": 3688175, "releases": { "1.0a0": [ { "comment_text": "", "digests": { "md5": "9f5aa631c9d87cba3c9a80b591f67899", "sha256": "a4e2a20b6ee21cb9d7b4cdfae1b9f8db8a2f9f275457998b3993addbb7b03bc8" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a0.tar.gz", "has_sig": false, "md5_digest": "9f5aa631c9d87cba3c9a80b591f67899", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11476, "upload_time": "2018-01-17T15:10:40", "url": "https://files.pythonhosted.org/packages/d6/9d/ceaa82fceede1f1b2bccff65ee69b9000d592cb12d28073107a4570bd71c/collective.redirectacquired-1.0a0.tar.gz" } ], "1.0a1": [ { "comment_text": "", "digests": { "md5": "fef8226008e50c5a83480b9f3bda78e3", "sha256": "770708ed5d363d7a8b27d455b0856507bed548827da5bceb7f4670f728c64f48" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a1.tar.gz", "has_sig": false, "md5_digest": "fef8226008e50c5a83480b9f3bda78e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11511, "upload_time": "2018-01-17T16:08:38", "url": "https://files.pythonhosted.org/packages/b7/1f/0272b131e4712779d1ec4a69b078422d89441e5d53cd3f11ec8d77237bbe/collective.redirectacquired-1.0a1.tar.gz" } ], "1.0a10": [ { "comment_text": "", "digests": { "md5": "4f5f57589c06e7fd131ec7c50da3f857", "sha256": "745600284f1c8280bbbba7967788ca6d756dc1f3d5809f42c361eeeb90d104e6" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a10.tar.gz", "has_sig": false, "md5_digest": "4f5f57589c06e7fd131ec7c50da3f857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187916, "upload_time": "2018-02-26T11:10:59", "url": "https://files.pythonhosted.org/packages/74/23/86e7cfa924f0fa8b3f98a53793b23c6d4e553ccd31101ac2f66dd34d1638/collective.redirectacquired-1.0a10.tar.gz" } ], "1.0a11": [ { "comment_text": "", "digests": { "md5": "6f0c4cc8e1d1b531c7ddf948d7123af0", "sha256": "9855524c1f363db6c820182b58a6311e9db3edbf0ed5322d5ff8c4467675916b" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a11.tar.gz", "has_sig": false, "md5_digest": "6f0c4cc8e1d1b531c7ddf948d7123af0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188289, "upload_time": "2018-03-12T11:29:53", "url": "https://files.pythonhosted.org/packages/95/ad/5186e189e2436b1d32e5a4c7fc914dd68649fcf64f06459e7e1fd01c097d/collective.redirectacquired-1.0a11.tar.gz" } ], "1.0a12": [ { "comment_text": "", "digests": { "md5": "00a1d105518956faa5840515f18bfba7", "sha256": "98c6a44d873ccb2bab9cfa0b0401dbd57c9da04e6b977bb54c6eaf6863d6f184" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a12.tar.gz", "has_sig": false, "md5_digest": "00a1d105518956faa5840515f18bfba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188548, "upload_time": "2018-03-20T15:08:36", "url": "https://files.pythonhosted.org/packages/c9/c8/4434608080063c490ff8d4dc11aa215fd5ccc78ebc59ae1ee20c7e371e0e/collective.redirectacquired-1.0a12.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "31d32ec96b9c87e04954400457cd0c69", "sha256": "8110d01cea3ffd71f5a533045bac847bda2c7933901834760f29e96c775c7f15" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a2.tar.gz", "has_sig": false, "md5_digest": "31d32ec96b9c87e04954400457cd0c69", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 185450, "upload_time": "2018-01-22T16:38:32", "url": "https://files.pythonhosted.org/packages/e3/d5/1c1b100a69f5a67ba63080be411d8cb1e3ce0ce0ccd5cee4a4a769f9e48f/collective.redirectacquired-1.0a2.tar.gz" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "b855c50d0d84afb95e3f95917d2d406b", "sha256": "6450390063d897e7ace5a3b9e131ae721ce376fca52e11e308f25b4d4898bd07" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a3.tar.gz", "has_sig": false, "md5_digest": "b855c50d0d84afb95e3f95917d2d406b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186318, "upload_time": "2018-01-24T13:41:37", "url": "https://files.pythonhosted.org/packages/74/f3/f6b7970622632d7212348389ae0db044b48684e02eec98fdd5b5eaa48e92/collective.redirectacquired-1.0a3.tar.gz" } ], "1.0a4": [ { "comment_text": "", "digests": { "md5": "44972cb89dd3714a20f90fb11e11b79e", "sha256": "e4878c4d1b54280af61a6adab48c171839a331c658825dde5a5a07f7b3780b6c" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a4.tar.gz", "has_sig": false, "md5_digest": "44972cb89dd3714a20f90fb11e11b79e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186352, "upload_time": "2018-01-24T14:04:17", "url": "https://files.pythonhosted.org/packages/dd/3b/407cd51d0376499aee6ca2a9b67f9eb44d7a7073387a30901f0cc097bced/collective.redirectacquired-1.0a4.tar.gz" } ], "1.0a5": [ { "comment_text": "", "digests": { "md5": "68b5387f5766cb12a26476ef0e8f7ee7", "sha256": "091afc357db3119f6c5a5db676387ac467e8447cad4c6d076e4458c780daee3a" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a5.tar.gz", "has_sig": false, "md5_digest": "68b5387f5766cb12a26476ef0e8f7ee7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186389, "upload_time": "2018-01-24T14:12:25", "url": "https://files.pythonhosted.org/packages/37/74/403fa866a900755195d8ced85add520c690d9fccb5a2b3ddc0e1e6281925/collective.redirectacquired-1.0a5.tar.gz" } ], "1.0a6": [ { "comment_text": "", "digests": { "md5": "ec8e0a0bbe88492a002c46f61619aca7", "sha256": "0cae03b364035832cfdde8076e6404491d825c1d629d3cb33f250de9452e6434" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a6.tar.gz", "has_sig": false, "md5_digest": "ec8e0a0bbe88492a002c46f61619aca7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186455, "upload_time": "2018-01-24T14:37:12", "url": "https://files.pythonhosted.org/packages/09/b5/9fae4f89a95b9055393ba0c035c5a658864e36a7a812984bc45159747d2b/collective.redirectacquired-1.0a6.tar.gz" } ], "1.0a7": [ { "comment_text": "", "digests": { "md5": "dd00d779a0c67cfbb8359c1d818c679e", "sha256": "599fbfa3afc601fc1babc3b9fd3521c25bf06c13faae22cb00184eba585798d4" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a7.tar.gz", "has_sig": false, "md5_digest": "dd00d779a0c67cfbb8359c1d818c679e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186798, "upload_time": "2018-01-24T15:16:35", "url": "https://files.pythonhosted.org/packages/33/81/e26c63a3739eb9c7de221e13b929baa73ccfc8681c5ae6d21ad1ab1dc917/collective.redirectacquired-1.0a7.tar.gz" } ], "1.0a8": [ { "comment_text": "", "digests": { "md5": "e1fb79f1527b0d937786591aacbf4fe8", "sha256": "755ce94b33cd95cae25b42d496dd4b909eeadd7ef9e31b7e7540504988f857d1" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a8.tar.gz", "has_sig": false, "md5_digest": "e1fb79f1527b0d937786591aacbf4fe8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 186926, "upload_time": "2018-01-25T13:25:42", "url": "https://files.pythonhosted.org/packages/e3/87/8db779996645eb757bc269d19e636d9250fbe83a3984ece450139565cbe9/collective.redirectacquired-1.0a8.tar.gz" } ], "1.0a9": [ { "comment_text": "", "digests": { "md5": "f2b504f5efc413f360d7aebed5f19369", "sha256": "89dea7c491e85fe8199db759ce3ac131780aad87b58248376b7ffacadb143b1c" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a9.tar.gz", "has_sig": false, "md5_digest": "f2b504f5efc413f360d7aebed5f19369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 187671, "upload_time": "2018-02-20T16:31:55", "url": "https://files.pythonhosted.org/packages/46/06/282352416610304113a25d3a32ee198c2275c1a06cda01c8f50876d771cb/collective.redirectacquired-1.0a9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "00a1d105518956faa5840515f18bfba7", "sha256": "98c6a44d873ccb2bab9cfa0b0401dbd57c9da04e6b977bb54c6eaf6863d6f184" }, "downloads": -1, "filename": "collective.redirectacquired-1.0a12.tar.gz", "has_sig": false, "md5_digest": "00a1d105518956faa5840515f18bfba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 188548, "upload_time": "2018-03-20T15:08:36", "url": "https://files.pythonhosted.org/packages/c9/c8/4434608080063c490ff8d4dc11aa215fd5ccc78ebc59ae1ee20c7e371e0e/collective.redirectacquired-1.0a12.tar.gz" } ] }