collective-folderprotection


Namecollective-folderprotection JSON
Version 2.4.3 PyPI version JSON
download
home_pagehttps://github.com/collective/collective_folderprotection
SummaryProvide delete, rename and password protection for Plone items.
upload_time2024-04-18 22:23:16
maintainerNone
docs_urlNone
authorEnfold Systems, Inc.
requires_pythonNone
licensegpl
keywords folder protection plone
VCS
bugtrack_url
requirements zc.buildout
Travis-CI
coveralls test coverage No coveralls.
            .. contents::

Introduction
============

This package provides 3 behaviors to secure your Dexterity content types in 3 ways:

  * "Password Protected": Will allow you to set a password to specific object so any user, except manager or its owner, needs to provide it to access it or its children (if the protected content type is a folderish)

  * "Delete Protection": Intended for folderish content types, this behavior will protect the content's children for being removed.

  * "Rename Protection": Intended for folderish content types, this behavior will protect the content's children for being renamed. Note: For this particular behavior, this only protects renaming through the UI, and does not protect the object if it is renamed using manage_renameObjects programatically from its parent.


Installation
============

Just add 'collective_folderprotection' to your eggs list in your buildout and re-run buildout. The dexterity is included by the use of the 'dexterity' extra, so make sure to include that, or to pull dexterity separatedly.


Usage
=====

After installing this product, you should be provided with 3 new behaviors to activate from the "Dexterity content types" tool.
If you want to enable them from your type XML, just add any of the following:

  * collective_folderprotection.behaviors.interfaces.IPasswordProtected

  * collective_folderprotection.behaviors.interfaces.IDeleteProtected

  * collective_folderprotection.behaviors.interfaces.IRenameProtected


Password protection
===================

There are 3 different ways in which you can assign a password to your "Password protected" enabled content.

Through the add/edit views
++++++++++++++++++++++++++

When adding or editing a content type which has the behavior enabled, you should see a new field along the schema, with the "Password" label.
Enter your password here to assign it. Leave it blank, to remove password protection for this specific object.
NOTE: This is not available for Archetypes.

Through the "Assign password" view
++++++++++++++++++++++++++++++++++

You should see a new tab for an object which has the behavior enabled. Going to this view and entering any password will assign it. Leave it blank, to remove password protection for this specific object. This view is independent from the add/edit ones, you can use either one.

Programatically on content creation
+++++++++++++++++++++++++++++++++++

If you are creating content programatically, you can assign a password when calling the function, just by adding the optional "password" argumnent.


.. code-block:: python

    from plone.dexterity.utils import createContentInContainer
    ...
    ...
    createContentInContainer(self.portal, "your.app.dexterity.fti.information", title=title, password=pw)


Delete protection
=================

When the behavior is enabled for a given content type, a new checkbox will be shown in both the add and the edit screens, when creating or editing that specific content type. Marking the checkbox will protect this element and its direct children (if this is a folderish type) from being deleted.

Rename protection
=================

When the behavior is enabled for a given content type, a new checkbox will be shown in both the add and the edit screens, when creating or editing that specific content type. Marking the checkbox will protect this element and its direct children (if this is a folderish type) from being renamed.
Contributors
============

- Franco Pellegrini, Original Author

Lock Icons provided by http://www.danilodemarco.com/

Changelog
=========

2.4.3 (2024-04-18)
++++++++++++++++++

- Add a bit of logging
  [frapell]


2.4.2 (2024-04-17)
++++++++++++++++++

- Only set a status message when there is a request
  [frapell]


2.4.1 (2024-04-17)
++++++++++++++++++

- Add event on folders
  [frapell]


2.4 (2024-04-17)
++++++++++++++++

- Add Plone 6 support
  [frapell]


2.3 (2021-01-11)
++++++++++++++++

- Bugfix: Infinite loop when context is the actual Plone site
  [frapell]


2.2 (2021-01-06)
++++++++++++++++

- Remove the password protection field from the edit and add forms, to avoid
  issues with browsers password auto-fill causing issues
  [frapell]

- Create a new password widget to use the autocomplete attribute in the
  <input> field, to prevent browser auto filling passwords
  [frapell]

- Replace the checkbox to clear password protection with a clear red button
  [frapell]

- Include a viewlet that will show up when the given folder or a parent folder
  is password protected
  [frapell]

- Include a richtext field to provide the ability to include a reason on why
  the folder is password protected
  [frapell]


2.1 (2019-12-10)
++++++++++++++++++

- Raise exceptions if a protected item is renamed or deleted
  [frapell]

- Include uninstall profile and add post_install routines to ignore exceptions
  [frapell]


2.0.1 (2019-08-06)
++++++++++++++++++

- Fix rst format for pkg description
  [frapell]


2.0 (2019-08-06)
++++++++++++++++

- As of this version, this product only supports Plone 5.0+

- Remove support for Archetypes
  [enfold-josh]

- Support Python 3 and Plone 5.2
  [enfold-josh,frapell]

- Catch exception raised when inserting post_traverse hook during a
  non-publishing traversal.
  [enfold-josh]

- Fix tests.
  [enfold-josh]

- Change functional test files extensions to .robot
  [enfold-josh]


1.0-dev (unreleased)
++++++++++++++++++++

- Add support for Archetypes [frapell]

- Make Dexterity an optional dependency [frapell]

- Include behavior to prevent removing items from a folderish [frapell]

- Include behavior to prevent renaming items in a folderish (only through UI). [frapell]

- Include behavior to allow setting a password for viewing a folder [frapell]

- Package created using templer
  [frapell]


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/collective_folderprotection",
    "name": "collective-folderprotection",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "folder protection plone",
    "author": "Enfold Systems, Inc.",
    "author_email": "info@enfoldsystems.com",
    "download_url": "https://files.pythonhosted.org/packages/72/c8/24930860600736e26425c93b21e2737c1fac674084dfbc8fd854b4893e2a/collective_folderprotection-2.4.3.tar.gz",
    "platform": null,
    "description": ".. contents::\n\nIntroduction\n============\n\nThis package provides 3 behaviors to secure your Dexterity content types in 3 ways:\n\n  * \"Password Protected\": Will allow you to set a password to specific object so any user, except manager or its owner, needs to provide it to access it or its children (if the protected content type is a folderish)\n\n  * \"Delete Protection\": Intended for folderish content types, this behavior will protect the content's children for being removed.\n\n  * \"Rename Protection\": Intended for folderish content types, this behavior will protect the content's children for being renamed. Note: For this particular behavior, this only protects renaming through the UI, and does not protect the object if it is renamed using manage_renameObjects programatically from its parent.\n\n\nInstallation\n============\n\nJust add 'collective_folderprotection' to your eggs list in your buildout and re-run buildout. The dexterity is included by the use of the 'dexterity' extra, so make sure to include that, or to pull dexterity separatedly.\n\n\nUsage\n=====\n\nAfter installing this product, you should be provided with 3 new behaviors to activate from the \"Dexterity content types\" tool.\nIf you want to enable them from your type XML, just add any of the following:\n\n  * collective_folderprotection.behaviors.interfaces.IPasswordProtected\n\n  * collective_folderprotection.behaviors.interfaces.IDeleteProtected\n\n  * collective_folderprotection.behaviors.interfaces.IRenameProtected\n\n\nPassword protection\n===================\n\nThere are 3 different ways in which you can assign a password to your \"Password protected\" enabled content.\n\nThrough the add/edit views\n++++++++++++++++++++++++++\n\nWhen adding or editing a content type which has the behavior enabled, you should see a new field along the schema, with the \"Password\" label.\nEnter your password here to assign it. Leave it blank, to remove password protection for this specific object.\nNOTE: This is not available for Archetypes.\n\nThrough the \"Assign password\" view\n++++++++++++++++++++++++++++++++++\n\nYou should see a new tab for an object which has the behavior enabled. Going to this view and entering any password will assign it. Leave it blank, to remove password protection for this specific object. This view is independent from the add/edit ones, you can use either one.\n\nProgramatically on content creation\n+++++++++++++++++++++++++++++++++++\n\nIf you are creating content programatically, you can assign a password when calling the function, just by adding the optional \"password\" argumnent.\n\n\n.. code-block:: python\n\n    from plone.dexterity.utils import createContentInContainer\n    ...\n    ...\n    createContentInContainer(self.portal, \"your.app.dexterity.fti.information\", title=title, password=pw)\n\n\nDelete protection\n=================\n\nWhen the behavior is enabled for a given content type, a new checkbox will be shown in both the add and the edit screens, when creating or editing that specific content type. Marking the checkbox will protect this element and its direct children (if this is a folderish type) from being deleted.\n\nRename protection\n=================\n\nWhen the behavior is enabled for a given content type, a new checkbox will be shown in both the add and the edit screens, when creating or editing that specific content type. Marking the checkbox will protect this element and its direct children (if this is a folderish type) from being renamed.\nContributors\n============\n\n- Franco Pellegrini, Original Author\n\nLock Icons provided by http://www.danilodemarco.com/\n\nChangelog\n=========\n\n2.4.3 (2024-04-18)\n++++++++++++++++++\n\n- Add a bit of logging\n  [frapell]\n\n\n2.4.2 (2024-04-17)\n++++++++++++++++++\n\n- Only set a status message when there is a request\n  [frapell]\n\n\n2.4.1 (2024-04-17)\n++++++++++++++++++\n\n- Add event on folders\n  [frapell]\n\n\n2.4 (2024-04-17)\n++++++++++++++++\n\n- Add Plone 6 support\n  [frapell]\n\n\n2.3 (2021-01-11)\n++++++++++++++++\n\n- Bugfix: Infinite loop when context is the actual Plone site\n  [frapell]\n\n\n2.2 (2021-01-06)\n++++++++++++++++\n\n- Remove the password protection field from the edit and add forms, to avoid\n  issues with browsers password auto-fill causing issues\n  [frapell]\n\n- Create a new password widget to use the autocomplete attribute in the\n  <input> field, to prevent browser auto filling passwords\n  [frapell]\n\n- Replace the checkbox to clear password protection with a clear red button\n  [frapell]\n\n- Include a viewlet that will show up when the given folder or a parent folder\n  is password protected\n  [frapell]\n\n- Include a richtext field to provide the ability to include a reason on why\n  the folder is password protected\n  [frapell]\n\n\n2.1 (2019-12-10)\n++++++++++++++++++\n\n- Raise exceptions if a protected item is renamed or deleted\n  [frapell]\n\n- Include uninstall profile and add post_install routines to ignore exceptions\n  [frapell]\n\n\n2.0.1 (2019-08-06)\n++++++++++++++++++\n\n- Fix rst format for pkg description\n  [frapell]\n\n\n2.0 (2019-08-06)\n++++++++++++++++\n\n- As of this version, this product only supports Plone 5.0+\n\n- Remove support for Archetypes\n  [enfold-josh]\n\n- Support Python 3 and Plone 5.2\n  [enfold-josh,frapell]\n\n- Catch exception raised when inserting post_traverse hook during a\n  non-publishing traversal.\n  [enfold-josh]\n\n- Fix tests.\n  [enfold-josh]\n\n- Change functional test files extensions to .robot\n  [enfold-josh]\n\n\n1.0-dev (unreleased)\n++++++++++++++++++++\n\n- Add support for Archetypes [frapell]\n\n- Make Dexterity an optional dependency [frapell]\n\n- Include behavior to prevent removing items from a folderish [frapell]\n\n- Include behavior to prevent renaming items in a folderish (only through UI). [frapell]\n\n- Include behavior to allow setting a password for viewing a folder [frapell]\n\n- Package created using templer\n  [frapell]\n\n",
    "bugtrack_url": null,
    "license": "gpl",
    "summary": "Provide delete, rename and password protection for Plone items.",
    "version": "2.4.3",
    "project_urls": {
        "Homepage": "https://github.com/collective/collective_folderprotection"
    },
    "split_keywords": [
        "folder",
        "protection",
        "plone"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "06f4e546f0874311b40403ac0853d12b4bc9a575527e51d9d559ed6a6cf98f02",
                "md5": "055946b6baf5dce37140dfc7f5cea1bc",
                "sha256": "d0cf7d2dcb729d2b4f5aff7a2ce5adeeebaf41b534d59d8c1dced6003b5ee3bd"
            },
            "downloads": -1,
            "filename": "collective_folderprotection-2.4.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "055946b6baf5dce37140dfc7f5cea1bc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 43791,
            "upload_time": "2024-04-18T22:23:12",
            "upload_time_iso_8601": "2024-04-18T22:23:12.095718Z",
            "url": "https://files.pythonhosted.org/packages/06/f4/e546f0874311b40403ac0853d12b4bc9a575527e51d9d559ed6a6cf98f02/collective_folderprotection-2.4.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "72c824930860600736e26425c93b21e2737c1fac674084dfbc8fd854b4893e2a",
                "md5": "139d15cdab6717c566dfd2b4d0dde552",
                "sha256": "c0fbb3f6a38bc521ea772b6725ad5a5bdcdc038da8717f624c6bb2132f870da2"
            },
            "downloads": -1,
            "filename": "collective_folderprotection-2.4.3.tar.gz",
            "has_sig": false,
            "md5_digest": "139d15cdab6717c566dfd2b4d0dde552",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 41049,
            "upload_time": "2024-04-18T22:23:16",
            "upload_time_iso_8601": "2024-04-18T22:23:16.368478Z",
            "url": "https://files.pythonhosted.org/packages/72/c8/24930860600736e26425c93b21e2737c1fac674084dfbc8fd854b4893e2a/collective_folderprotection-2.4.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-18 22:23:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "collective",
    "github_project": "collective_folderprotection",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "zc.buildout",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "collective-folderprotection"
}
        
Elapsed time: 0.23200s