node.ext.ugm


Namenode.ext.ugm JSON
Version 1.1 PyPI version JSON
download
home_pagehttps://github.com/conestack/node.ext.ugm
SummaryNode-based user and group management
upload_time2022-12-05 11:52:03
maintainer
docs_urlNone
authorNode Contributors
requires_python
licenseSimplified BSD
keywords node user group role
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            node.ext.ugm
============

.. image:: https://img.shields.io/pypi/v/node.ext.ugm.svg
    :target: https://pypi.python.org/pypi/node.ext.ugm
    :alt: Latest PyPI version

.. image:: https://img.shields.io/pypi/dm/node.ext.ugm.svg
    :target: https://pypi.python.org/pypi/node.ext.ugm
    :alt: Number of PyPI downloads

.. image:: https://github.com/conestack/node.ext.ugm/actions/workflows/test.yaml/badge.svg
    :target: https://github.com/conestack/node.ext.ugm/actions/workflows/test.yaml
    :alt: Test node.ext.ugm


Overview
--------

``node.ext.ugm`` provides an API for node based managing of users and groups.

See ``node.ext.ugm.interfaces`` for a description of the API.

A file based default implementation can be found at ``node.ext.ugm.file``.

Base objects for writing UGM implementations can be found at
``node.ext.ugm._api``.

For more information on nodes see `node <http://pypi.python.org/pypi/node>`_
package.

For more information on plumbing see
`plumber <http://pypi.python.org/pypi/plumber>`_ package.


Python Versions
===============

- Python 2.7, 3.7+
- May work with other versions (untested)


Contributors
============

- Robert Niederreiter
- Florian Friesdorf
- Jens W. Klein
- Philipp Auersperg-Castell


Changes
=======

1.1 (2022-12-05)
----------------

- Extend ``node.ext.ugm.interfaces.IUser`` by ``expires`` and ``expired``
  attributes and provide default values on ``node.ext.ugm._api.User``.
  [rnix]

- Implement ``expires`` and ``expired`` on ``node.ext.ugm.file.UserBehavior``.
  Extend ``node.ext.ugm.file.UgmBehavior`` by ``user_expires_attr`` which
  enables used expiration support.
  [rnix]


1.0 (2022-03-18)
----------------

- Remove usage of ``Nodespaces`` behavior.
  [rnix]

- Replace deprecated use of ``Storage`` by ``MappingStorage``.
  [rnix]

- Replace deprecated use of ``Nodify`` by ``MappingNode``.
  [rnix]

- Replace deprecated use of ``NodeChildValidate`` by ``MappingConstraints``.
  [rnix]

- Replace deprecated use of ``Adopt`` by ``MappingAdopt``.
  [rnix]

- Replace deprecated use of ``allow_non_node_children`` by ``child_constraints``.
  [rnix]


0.9.13 (2021-11-08)
-------------------

- Rename deprecated ``FileStorage.allow_non_node_childs`` to
  ``allow_non_node_children``
  [rnix]


0.9.12 (2020-07-09)
-------------------

- ``node.ext.ugm.file.GroupBehavior.add`` properly raises ``KeyError`` if given
  user not exists.
  [rnix]

- Also call parent in ``node.ext.ugm.file.UserBehavior.__call__`` and
  ``node.ext.ugm.file.GroupBehavior.__call__`` if not called from parent.
  [rnix]

- ``node.ext.ugm.file.FileStorage.invalidate`` gets set with
  ``plumber.override`` instead of ``plumber.default`` to work on
  ``node.ext.ugm.file.Users`` and ``node.ext.ugm.file.Groups``.
  [rnix]

- ``node.ext.ugm.file.FileStorage`` values can be ``node.utils.UNSET``.
  [rnix]


0.9.11 (2020-05-28)
-------------------

- Implement ``invalidate`` on ``node.ext.ugm.file.Ugm``.
  [rnix, 2020-05-16]

- ``node.ext.ugm.interfaces.IUgm`` inherits from
  ``node.interfaces.IInvalidate`` now.
  [rnix, 2020-05-16]

- Describe behavior of ``__getitem__``, ``__delitem__`` and ``__iter__`` on
  ``IGroup`` interface.
  [rnix, 2020-05-11]

- Fix file based ``GroupBehavior.__getitem__`` to properly raise ``KeyError``
  when accessing user which is no member of group.
  [rnix, 2020-05-11]

- Make clear on ``User`` and ``Group`` behaviors which not impelented functions
  are abstract and which are not supported.
  [rnix, 2020-05-11]


0.9.10 (2019-11-07)
-------------------

- Also derive ``IPrincipals`` interface from ``node.interfaces.IInvalidate``.
  Implement ``invalidate`` function on ``FileStorage``.
  [rnix, 2019-06-30]

- Persist users file on password change.
  [rnix, 2019-06-30]

- Add ``UserAttributes`` and ``GroupAttributes`` classes deriving from
  ``FileAttributes`` and handle reserved attributes expected by ``cone.ugm``
  there. This might change in future.
  [rnix, 2019-06-27]

- File based principals support binary attributes now.
  [rnix, 2019-06-26]

- Return all principals in file based UGM imlementation if no search criteria
  given.
  [rnix, 2019-06-26]

- Remove superfluous ``configure.zcml`` file.
  [rnix, 2019-04-13]

- Remove ``cone.app`` main hook for initializing file based UGM implementation.
  This is handled in ``cone.app`` itself as of version 1.0
  [rnix, 2019-03-28]


0.9.9
-----

- ``node.ext.ugm.file.FileStorage`` no longer provides ``unicode_keys`` and
  ``unicode_values``, files are always read and written encoded by encoding
  defined at ``node.ext.ugm.file.ENCODING``, keys and values are always decoded
  to unicode on read.
  [rnix, 2017-06-07]

- Python 3 Support.
  [rnix, 2017-06-07]


0.9.8
-----

- Fix bug where non related principal data has been overwritten when adding
  principal on partial loaded ugm tree.
  [rnix, 2015-04-12]

- Also delete user and group corresponding data if user or group is deleted.
  [rnix, 2015-04-11]

- Fix ``node.ext.ugm.file.UsersBehavior.passwd`` behavior.
  [rnix, 2015-04-11]


0.9.7
-----

- Create user and group data directories recursiv if not exists.
  [rnix, 2014-12-02]


0.9.6
-----

- Encode plain passwd for comparing with hash.
  [rnix, 2014-09-10]


0.9.5
-----

- Use ``plumbing`` decorator instead of ``plumber`` metaclass.
  [rnix, 2014-08-01]


0.9.4
-----

- Use better password hashing for file based default UGM implementation.
  **Warning** - all existing passwords in user table do not work any longer
  and must be reset.
  [rnix, 2014-06-13]


0.9.3
-----

- Rename parts to behaviors.
  [rnix, 2012-07-29]

- adopt to ``node`` 0.9.8.
  [rnix, 2012-07-29]

- Adopt to ``plumber`` 1.2.
  [rnix, 2012-07-29]

- Add ``User.group_ids``.
  [rnix, 2012-07-26]


0.9.2
-----

- Remove outdated stuff.
  [rnix, 2012-05-18]

- Use ``zope.interface.implementer`` instead of ``zope.interface.implements``.
  [rnix, 2012-05-18]


0.9.1
-----

- add ``Users.id_for_login``.
  [rnix, 2012-01-18]

- Implement ``search`` function for file based UGM as described in interface.
  [rnix, 2011-11-22]

- Adopt application startup hook for cone.ugm only setting auth implementation
  if explicitely defined.
  [rnix, 2011-11-21]


0.9
---

- make it work
  [rnix, chaoflow]


License
=======

Copyright (c) 2011-2021, BlueDynamics Alliance, Austria
Copyright (c) 2021-2022, Node Contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice, this
  list of conditions and the following disclaimer in the documentation and/or
  other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/conestack/node.ext.ugm",
    "name": "node.ext.ugm",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "node user group role",
    "author": "Node Contributors",
    "author_email": "dev@conestack.org",
    "download_url": "https://files.pythonhosted.org/packages/f8/f9/b22bd9540c604aa5c798519a08b12c3f81f1901c850a8c713a25da6fdaee/node.ext.ugm-1.1.tar.gz",
    "platform": null,
    "description": "node.ext.ugm\n============\n\n.. image:: https://img.shields.io/pypi/v/node.ext.ugm.svg\n    :target: https://pypi.python.org/pypi/node.ext.ugm\n    :alt: Latest PyPI version\n\n.. image:: https://img.shields.io/pypi/dm/node.ext.ugm.svg\n    :target: https://pypi.python.org/pypi/node.ext.ugm\n    :alt: Number of PyPI downloads\n\n.. image:: https://github.com/conestack/node.ext.ugm/actions/workflows/test.yaml/badge.svg\n    :target: https://github.com/conestack/node.ext.ugm/actions/workflows/test.yaml\n    :alt: Test node.ext.ugm\n\n\nOverview\n--------\n\n``node.ext.ugm`` provides an API for node based managing of users and groups.\n\nSee ``node.ext.ugm.interfaces`` for a description of the API.\n\nA file based default implementation can be found at ``node.ext.ugm.file``.\n\nBase objects for writing UGM implementations can be found at\n``node.ext.ugm._api``.\n\nFor more information on nodes see `node <http://pypi.python.org/pypi/node>`_\npackage.\n\nFor more information on plumbing see\n`plumber <http://pypi.python.org/pypi/plumber>`_ package.\n\n\nPython Versions\n===============\n\n- Python 2.7, 3.7+\n- May work with other versions (untested)\n\n\nContributors\n============\n\n- Robert Niederreiter\n- Florian Friesdorf\n- Jens W. Klein\n- Philipp Auersperg-Castell\n\n\nChanges\n=======\n\n1.1 (2022-12-05)\n----------------\n\n- Extend ``node.ext.ugm.interfaces.IUser`` by ``expires`` and ``expired``\n  attributes and provide default values on ``node.ext.ugm._api.User``.\n  [rnix]\n\n- Implement ``expires`` and ``expired`` on ``node.ext.ugm.file.UserBehavior``.\n  Extend ``node.ext.ugm.file.UgmBehavior`` by ``user_expires_attr`` which\n  enables used expiration support.\n  [rnix]\n\n\n1.0 (2022-03-18)\n----------------\n\n- Remove usage of ``Nodespaces`` behavior.\n  [rnix]\n\n- Replace deprecated use of ``Storage`` by ``MappingStorage``.\n  [rnix]\n\n- Replace deprecated use of ``Nodify`` by ``MappingNode``.\n  [rnix]\n\n- Replace deprecated use of ``NodeChildValidate`` by ``MappingConstraints``.\n  [rnix]\n\n- Replace deprecated use of ``Adopt`` by ``MappingAdopt``.\n  [rnix]\n\n- Replace deprecated use of ``allow_non_node_children`` by ``child_constraints``.\n  [rnix]\n\n\n0.9.13 (2021-11-08)\n-------------------\n\n- Rename deprecated ``FileStorage.allow_non_node_childs`` to\n  ``allow_non_node_children``\n  [rnix]\n\n\n0.9.12 (2020-07-09)\n-------------------\n\n- ``node.ext.ugm.file.GroupBehavior.add`` properly raises ``KeyError`` if given\n  user not exists.\n  [rnix]\n\n- Also call parent in ``node.ext.ugm.file.UserBehavior.__call__`` and\n  ``node.ext.ugm.file.GroupBehavior.__call__`` if not called from parent.\n  [rnix]\n\n- ``node.ext.ugm.file.FileStorage.invalidate`` gets set with\n  ``plumber.override`` instead of ``plumber.default`` to work on\n  ``node.ext.ugm.file.Users`` and ``node.ext.ugm.file.Groups``.\n  [rnix]\n\n- ``node.ext.ugm.file.FileStorage`` values can be ``node.utils.UNSET``.\n  [rnix]\n\n\n0.9.11 (2020-05-28)\n-------------------\n\n- Implement ``invalidate`` on ``node.ext.ugm.file.Ugm``.\n  [rnix, 2020-05-16]\n\n- ``node.ext.ugm.interfaces.IUgm`` inherits from\n  ``node.interfaces.IInvalidate`` now.\n  [rnix, 2020-05-16]\n\n- Describe behavior of ``__getitem__``, ``__delitem__`` and ``__iter__`` on\n  ``IGroup`` interface.\n  [rnix, 2020-05-11]\n\n- Fix file based ``GroupBehavior.__getitem__`` to properly raise ``KeyError``\n  when accessing user which is no member of group.\n  [rnix, 2020-05-11]\n\n- Make clear on ``User`` and ``Group`` behaviors which not impelented functions\n  are abstract and which are not supported.\n  [rnix, 2020-05-11]\n\n\n0.9.10 (2019-11-07)\n-------------------\n\n- Also derive ``IPrincipals`` interface from ``node.interfaces.IInvalidate``.\n  Implement ``invalidate`` function on ``FileStorage``.\n  [rnix, 2019-06-30]\n\n- Persist users file on password change.\n  [rnix, 2019-06-30]\n\n- Add ``UserAttributes`` and ``GroupAttributes`` classes deriving from\n  ``FileAttributes`` and handle reserved attributes expected by ``cone.ugm``\n  there. This might change in future.\n  [rnix, 2019-06-27]\n\n- File based principals support binary attributes now.\n  [rnix, 2019-06-26]\n\n- Return all principals in file based UGM imlementation if no search criteria\n  given.\n  [rnix, 2019-06-26]\n\n- Remove superfluous ``configure.zcml`` file.\n  [rnix, 2019-04-13]\n\n- Remove ``cone.app`` main hook for initializing file based UGM implementation.\n  This is handled in ``cone.app`` itself as of version 1.0\n  [rnix, 2019-03-28]\n\n\n0.9.9\n-----\n\n- ``node.ext.ugm.file.FileStorage`` no longer provides ``unicode_keys`` and\n  ``unicode_values``, files are always read and written encoded by encoding\n  defined at ``node.ext.ugm.file.ENCODING``, keys and values are always decoded\n  to unicode on read.\n  [rnix, 2017-06-07]\n\n- Python 3 Support.\n  [rnix, 2017-06-07]\n\n\n0.9.8\n-----\n\n- Fix bug where non related principal data has been overwritten when adding\n  principal on partial loaded ugm tree.\n  [rnix, 2015-04-12]\n\n- Also delete user and group corresponding data if user or group is deleted.\n  [rnix, 2015-04-11]\n\n- Fix ``node.ext.ugm.file.UsersBehavior.passwd`` behavior.\n  [rnix, 2015-04-11]\n\n\n0.9.7\n-----\n\n- Create user and group data directories recursiv if not exists.\n  [rnix, 2014-12-02]\n\n\n0.9.6\n-----\n\n- Encode plain passwd for comparing with hash.\n  [rnix, 2014-09-10]\n\n\n0.9.5\n-----\n\n- Use ``plumbing`` decorator instead of ``plumber`` metaclass.\n  [rnix, 2014-08-01]\n\n\n0.9.4\n-----\n\n- Use better password hashing for file based default UGM implementation.\n  **Warning** - all existing passwords in user table do not work any longer\n  and must be reset.\n  [rnix, 2014-06-13]\n\n\n0.9.3\n-----\n\n- Rename parts to behaviors.\n  [rnix, 2012-07-29]\n\n- adopt to ``node`` 0.9.8.\n  [rnix, 2012-07-29]\n\n- Adopt to ``plumber`` 1.2.\n  [rnix, 2012-07-29]\n\n- Add ``User.group_ids``.\n  [rnix, 2012-07-26]\n\n\n0.9.2\n-----\n\n- Remove outdated stuff.\n  [rnix, 2012-05-18]\n\n- Use ``zope.interface.implementer`` instead of ``zope.interface.implements``.\n  [rnix, 2012-05-18]\n\n\n0.9.1\n-----\n\n- add ``Users.id_for_login``.\n  [rnix, 2012-01-18]\n\n- Implement ``search`` function for file based UGM as described in interface.\n  [rnix, 2011-11-22]\n\n- Adopt application startup hook for cone.ugm only setting auth implementation\n  if explicitely defined.\n  [rnix, 2011-11-21]\n\n\n0.9\n---\n\n- make it work\n  [rnix, chaoflow]\n\n\nLicense\n=======\n\nCopyright (c) 2011-2021, BlueDynamics Alliance, Austria\nCopyright (c) 2021-2022, Node Contributors\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice, this\n  list of conditions and the following disclaimer in the documentation and/or\n  other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\nANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n",
    "bugtrack_url": null,
    "license": "Simplified BSD",
    "summary": "Node-based user and group management",
    "version": "1.1",
    "split_keywords": [
        "node",
        "user",
        "group",
        "role"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "83b05c2e3db3f7ae63711eda8e716e4a",
                "sha256": "3a8644f5e464988fb7506a046ec4f154933e7edb51cf3b6e19a8e2c6c03389ca"
            },
            "downloads": -1,
            "filename": "node.ext.ugm-1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "83b05c2e3db3f7ae63711eda8e716e4a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 20349,
            "upload_time": "2022-12-05T11:52:01",
            "upload_time_iso_8601": "2022-12-05T11:52:01.249499Z",
            "url": "https://files.pythonhosted.org/packages/4f/2b/2ae0dd470dcfcc035cb86fcb66fd1ecb47ffba2a03a5d626498933beee51/node.ext.ugm-1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "954cfe1d8aefa34b3a4f372f8edffa1b",
                "sha256": "bf7e96da8efd2880507c3ffacd2bd2ca3200a8a46a578166be1c938e2ff559bb"
            },
            "downloads": -1,
            "filename": "node.ext.ugm-1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "954cfe1d8aefa34b3a4f372f8edffa1b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 21270,
            "upload_time": "2022-12-05T11:52:03",
            "upload_time_iso_8601": "2022-12-05T11:52:03.079316Z",
            "url": "https://files.pythonhosted.org/packages/f8/f9/b22bd9540c604aa5c798519a08b12c3f81f1901c850a8c713a25da6fdaee/node.ext.ugm-1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-12-05 11:52:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "conestack",
    "github_project": "node.ext.ugm",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "node.ext.ugm"
}
        
Elapsed time: 0.01429s