Metadata-Version: 2.1
Name: node.ext.ugm
Version: 1.1
Summary: Node-based user and group management
Home-page: https://github.com/conestack/node.ext.ugm
Author: Node Contributors
Author-email: dev@conestack.org
License: Simplified BSD
Description: 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.
        
Keywords: node user group role
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Provides-Extra: test
