edx-rbac


Nameedx-rbac JSON
Version 1.9.0 PyPI version JSON
download
home_pagehttps://github.com/openedx/edx-rbac
SummaryLibrary to help managing role based access controls for django apps
upload_time2024-04-19 18:44:18
maintainerNone
docs_urlNone
authoredX
requires_pythonNone
licenseAGPL 3.0
keywords django edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            edx-rbac
=============================

|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|

Overview
--------

Library to help manage role based access controls for django services.

* See the `Getting started <https://github.com/openedx/edx-rbac/blob/master/docs/getting_started.rst>`_ guide to setup
  your development environment.

* See the `How To Guide <https://github.com/openedx/edx-rbac/blob/master/docs/how_to_guide.rst>`_ to learn about the
  fundamentals of edx-rbac and how to implement RBAC in your Django service.

License
-------

The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.

Please see ``LICENSE.txt`` for details.

How To Contribute
-----------------

Contributions are very welcome.

Please read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.


PR description template should be automatically applied if you are sending PR from github interface; otherwise you
can find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-rbac/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_

Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you
can find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-rbac/blob/master/.github/ISSUE_TEMPLATE.md>`_

Reporting Security Issues
-------------------------

Please do not report security issues in public. Please email security@openedx.org.

Getting Help
------------

Have a question about this repository, or about Open edX in general?  Please
refer to this `list of resources`_ if you need any assistance.

.. _list of resources: https://open.edx.org/getting-help


.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-rbac.svg
    :target: https://pypi.python.org/pypi/edx-rbac/
    :alt: PyPI

.. |ci-badge| image:: https://github.com/openedx/edx-rbac/workflows/Python%20CI/badge.svg?branch=master
    :target: https://github.com/openedx/edx-rbac/actions?query=workflow%3A%22Python+CI%22
    :alt: CI

.. |codecov-badge| image:: http://codecov.io/github/edx/edx-rbac/coverage.svg?branch=master
    :target: http://codecov.io/github/edx/edx-rbac?branch=master
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/edx-rbac/badge/?version=latest
    :target: http://edx-rbac.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-rbac.svg
    :target: https://pypi.python.org/pypi/edx-rbac/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-rbac.svg
    :target: https://github.com/openedx/edx-rbac/blob/master/LICENSE.txt
    :alt: License


Change Log
----------

..
   All enhancements and patches to edx_rbac will be documented
   in this file.  It adheres to the structure of http://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (http://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
--------------------

[1.9.0]
-------
* Add support for Python 3.11 & 3.12

[1.8.0]
-------
* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is
  deprecated
* Added support for Django 4.2

[1.7.0]
-------

* fix: ``utils.get_role_auth_claim_for_user()`` now preserves the order of (role, context) pairs
  as returned by the `get_assignment()` function.

[1.6.0] - 2022-01-19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Drop support for Django<3.2
* Replacing ugettext with gettext to resolve RemovedInDjango40 error.
* Added Django40 Support

[1.5.1] - 2021-11-01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Replacing ugettext_lazy with gettext_lazy to resolve RemovedInDjango40Warning.

[1.5.0] - 2021-07-07
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Added support for django 3.0, 3.1, 3.2

[1.4.2] - 2021-03-22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Modifies ``create_role_auth_claim_for_user`` to return a list of *unique*
  (role:context) entries, so that the JWT does not become too large
  to fit in cookies/headers.

[1.4.1] - 2021-01-22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Add a ``UserRoleAssignment.applies_to_all`` field, because explicit is better than implicit.
  See the ADR at `docs/decisions/0002-explicit-role-assignment-wildcard.rst`.

[1.4.0]
-------

* Update PyPI token.

[1.3.3] - 2020-10-02
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Removed ``python_2_unicode_compatible`` decorator.

[1.3.2] - 2020-07-28
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* ``PermissionRequiredForListingMixin.get_queryset()`` should allow falsey ``base_queryset`` properties, like
  an empty ``QuerySet`` object.  Adds tests to verify that this is the case.

[1.3.1] - 2020-06-16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Update ``get_assignments()`` to guard against AnonymousUsers.
* Update ``contexts_accessible_from_database()`` to use ``get_assignments()`` instead of building a "custom" QuerySet.

[1.3.0] - 2020-06-11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adds a PermissionRequiredForListingMixin that can be used in DRF ModelViewSets and supports a list action.
  This should allow list actions to return all of the elements from a base_queryset that
  the requesting user has access to, either via their JWT or DB-assigned roles.
* Adds/modifies utility functions that deal with permission-checking to support multiple roles and multiple contexts.

[1.2.1] - 2020-05-08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Exposes a new ``utils.feature_roles_from_jwt()`` function, which, given a decoded JWT,
  will provide a mapping of feature roles to contexts/identifiers.
* Modifies ``utils.user_has_access_via_database()`` to check for multiple database role assignments
  for a given user and role name (i.e. uses a ``filter()`` instead of a ``get()``).

[1.2.0] - 2020-04-30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Removed support for django 2.0 and 2.1
* Added Support for Python 3.8

[1.1.3] - 2020-04-13
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Added check for AnonymousUser in user_has_access_via_database to prevent 500 errors.

[1.1.2] - 2020-03-27
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Added support for Django 2.0, 2.1, and 2.2.

[1.1.1] - 2020-03-02
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Fix bug in implicit role check when the same role has multiple contexts available.

[1.1.0] - 2020-02-18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Update `PermissionRequiredMixin` to pass through an object to rule predicates, if `self.get_permision_required` exists and is callable


[1.0.5] - 2019-12-18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Updated requirements.

[1.0.4] - 2019-12-17
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Updated utils for user with multiple contexts.

[1.0.3] - 2019-09-12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Use functools.wraps to prevent the decorator from swallowing the view name

[1.0.2] - 2019-07-12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* store current request on thread local storage using crum.

[1.0.1] - 2019-05-27
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* edx-drf-extensions version upgrade.

[1.0.0] - 2019-05-20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Removed `get_request_or_stub` and `get_decoded_jwt_from_request` from utils.py

[0.2.1] - 2019-05-08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* edx-drf-extensions version upgrade.

[0.2.0] - 2019-04-30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Check for JWT presence in implicit permission.
* Refactor role retrieval to remove the dependency on django models for assigning roles.

[0.1.11] - 2019-04-08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Get JWT token from request.auth if it is not set on the cookie. This supports client credentials oauth2 flow.

[0.1.10] - 2019-04-01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Update context checks for implicit and explicit access for all resources access.

[0.1.9] - 2019-04-01
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding support for checking context for implicit and explicit access.

[0.1.8] - 2019-03-22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding an additional argument for the permission_required decorator

[0.1.7] - 2019-03-20
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding a mixin for authz permissions support.

[0.1.6] - 2019-03-19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding a decorator for authz permissions support.

[0.1.5] - 2019-03-18
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding django admin support for models extending UserRoleAssignment.

[0.1.4] - 2019-03-07
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding a number of utils for roles in JWTs and the database

[0.1.3] - 2019-03-07
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Adding get_context to the UserRoleAssignment class.

[0.1.2] - 2019-03-06
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Quality fixes

[0.1.1] - 2019-03-06
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Bumping version so we get pip updated with new models we added

[0.1.0] - 2019-02-28
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Added
_____

* First release on PyPI.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/openedx/edx-rbac",
    "name": "edx-rbac",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "Django edx",
    "author": "edX",
    "author_email": "oscm@edx.org",
    "download_url": "https://files.pythonhosted.org/packages/4b/fc/1e574e9f406fa6b45cc2f30c535bfa3bf043edfc78197f42c42e657e47a9/edx-rbac-1.9.0.tar.gz",
    "platform": null,
    "description": "edx-rbac\n=============================\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge|\n\nOverview\n--------\n\nLibrary to help manage role based access controls for django services.\n\n* See the `Getting started <https://github.com/openedx/edx-rbac/blob/master/docs/getting_started.rst>`_ guide to setup\n  your development environment.\n\n* See the `How To Guide <https://github.com/openedx/edx-rbac/blob/master/docs/how_to_guide.rst>`_ to learn about the\n  fundamentals of edx-rbac and how to implement RBAC in your Django service.\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.\n\n\nPR description template should be automatically applied if you are sending PR from github interface; otherwise you\ncan find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-rbac/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_\n\nIssue report template should be automatically applied if you are sending it from github UI as well; otherwise you\ncan find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-rbac/blob/master/.github/ISSUE_TEMPLATE.md>`_\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n------------\n\nHave a question about this repository, or about Open edX in general?  Please\nrefer to this `list of resources`_ if you need any assistance.\n\n.. _list of resources: https://open.edx.org/getting-help\n\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-rbac.svg\n    :target: https://pypi.python.org/pypi/edx-rbac/\n    :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/edx-rbac/workflows/Python%20CI/badge.svg?branch=master\n    :target: https://github.com/openedx/edx-rbac/actions?query=workflow%3A%22Python+CI%22\n    :alt: CI\n\n.. |codecov-badge| image:: http://codecov.io/github/edx/edx-rbac/coverage.svg?branch=master\n    :target: http://codecov.io/github/edx/edx-rbac?branch=master\n    :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/edx-rbac/badge/?version=latest\n    :target: http://edx-rbac.readthedocs.io/en/latest/\n    :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-rbac.svg\n    :target: https://pypi.python.org/pypi/edx-rbac/\n    :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-rbac.svg\n    :target: https://github.com/openedx/edx-rbac/blob/master/LICENSE.txt\n    :alt: License\n\n\nChange Log\n----------\n\n..\n   All enhancements and patches to edx_rbac will be documented\n   in this file.  It adheres to the structure of http://keepachangelog.com/ ,\n   but in reStructuredText instead of Markdown (for ease of incorporation into\n   Sphinx documentation and the PyPI description).\n\n   This project adheres to Semantic Versioning (http://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n--------------------\n\n[1.9.0]\n-------\n* Add support for Python 3.11 & 3.12\n\n[1.8.0]\n-------\n* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is\n  deprecated\n* Added support for Django 4.2\n\n[1.7.0]\n-------\n\n* fix: ``utils.get_role_auth_claim_for_user()`` now preserves the order of (role, context) pairs\n  as returned by the `get_assignment()` function.\n\n[1.6.0] - 2022-01-19\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Drop support for Django<3.2\n* Replacing ugettext with gettext to resolve RemovedInDjango40 error.\n* Added Django40 Support\n\n[1.5.1] - 2021-11-01\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Replacing ugettext_lazy with gettext_lazy to resolve RemovedInDjango40Warning.\n\n[1.5.0] - 2021-07-07\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Added support for django 3.0, 3.1, 3.2\n\n[1.4.2] - 2021-03-22\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Modifies ``create_role_auth_claim_for_user`` to return a list of *unique*\n  (role:context) entries, so that the JWT does not become too large\n  to fit in cookies/headers.\n\n[1.4.1] - 2021-01-22\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Add a ``UserRoleAssignment.applies_to_all`` field, because explicit is better than implicit.\n  See the ADR at `docs/decisions/0002-explicit-role-assignment-wildcard.rst`.\n\n[1.4.0]\n-------\n\n* Update PyPI token.\n\n[1.3.3] - 2020-10-02\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Removed ``python_2_unicode_compatible`` decorator.\n\n[1.3.2] - 2020-07-28\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* ``PermissionRequiredForListingMixin.get_queryset()`` should allow falsey ``base_queryset`` properties, like\n  an empty ``QuerySet`` object.  Adds tests to verify that this is the case.\n\n[1.3.1] - 2020-06-16\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Update ``get_assignments()`` to guard against AnonymousUsers.\n* Update ``contexts_accessible_from_database()`` to use ``get_assignments()`` instead of building a \"custom\" QuerySet.\n\n[1.3.0] - 2020-06-11\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adds a PermissionRequiredForListingMixin that can be used in DRF ModelViewSets and supports a list action.\n  This should allow list actions to return all of the elements from a base_queryset that\n  the requesting user has access to, either via their JWT or DB-assigned roles.\n* Adds/modifies utility functions that deal with permission-checking to support multiple roles and multiple contexts.\n\n[1.2.1] - 2020-05-08\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Exposes a new ``utils.feature_roles_from_jwt()`` function, which, given a decoded JWT,\n  will provide a mapping of feature roles to contexts/identifiers.\n* Modifies ``utils.user_has_access_via_database()`` to check for multiple database role assignments\n  for a given user and role name (i.e. uses a ``filter()`` instead of a ``get()``).\n\n[1.2.0] - 2020-04-30\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Removed support for django 2.0 and 2.1\n* Added Support for Python 3.8\n\n[1.1.3] - 2020-04-13\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Added check for AnonymousUser in user_has_access_via_database to prevent 500 errors.\n\n[1.1.2] - 2020-03-27\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Added support for Django 2.0, 2.1, and 2.2.\n\n[1.1.1] - 2020-03-02\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Fix bug in implicit role check when the same role has multiple contexts available.\n\n[1.1.0] - 2020-02-18\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Update `PermissionRequiredMixin` to pass through an object to rule predicates, if `self.get_permision_required` exists and is callable\n\n\n[1.0.5] - 2019-12-18\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Updated requirements.\n\n[1.0.4] - 2019-12-17\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Updated utils for user with multiple contexts.\n\n[1.0.3] - 2019-09-12\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Use functools.wraps to prevent the decorator from swallowing the view name\n\n[1.0.2] - 2019-07-12\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* store current request on thread local storage using crum.\n\n[1.0.1] - 2019-05-27\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* edx-drf-extensions version upgrade.\n\n[1.0.0] - 2019-05-20\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Removed `get_request_or_stub` and `get_decoded_jwt_from_request` from utils.py\n\n[0.2.1] - 2019-05-08\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* edx-drf-extensions version upgrade.\n\n[0.2.0] - 2019-04-30\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Check for JWT presence in implicit permission.\n* Refactor role retrieval to remove the dependency on django models for assigning roles.\n\n[0.1.11] - 2019-04-08\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Get JWT token from request.auth if it is not set on the cookie. This supports client credentials oauth2 flow.\n\n[0.1.10] - 2019-04-01\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Update context checks for implicit and explicit access for all resources access.\n\n[0.1.9] - 2019-04-01\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding support for checking context for implicit and explicit access.\n\n[0.1.8] - 2019-03-22\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding an additional argument for the permission_required decorator\n\n[0.1.7] - 2019-03-20\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding a mixin for authz permissions support.\n\n[0.1.6] - 2019-03-19\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding a decorator for authz permissions support.\n\n[0.1.5] - 2019-03-18\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding django admin support for models extending UserRoleAssignment.\n\n[0.1.4] - 2019-03-07\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding a number of utils for roles in JWTs and the database\n\n[0.1.3] - 2019-03-07\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Adding get_context to the UserRoleAssignment class.\n\n[0.1.2] - 2019-03-06\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Quality fixes\n\n[0.1.1] - 2019-03-06\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Bumping version so we get pip updated with new models we added\n\n[0.1.0] - 2019-02-28\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdded\n_____\n\n* First release on PyPI.\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "Library to help managing role based access controls for django apps",
    "version": "1.9.0",
    "project_urls": {
        "Homepage": "https://github.com/openedx/edx-rbac"
    },
    "split_keywords": [
        "django",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "28b8c281bcee09108972cb0a794616a70578493ab3ff9e64c903336e56ca534f",
                "md5": "556c98d1b1d75287122da352f73debd3",
                "sha256": "1e04787b9d288248a3f72065524e5e7fd99398dec392b559d8be8fb796f811e1"
            },
            "downloads": -1,
            "filename": "edx_rbac-1.9.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "556c98d1b1d75287122da352f73debd3",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": null,
            "size": 39032,
            "upload_time": "2024-04-19T18:44:16",
            "upload_time_iso_8601": "2024-04-19T18:44:16.821866Z",
            "url": "https://files.pythonhosted.org/packages/28/b8/c281bcee09108972cb0a794616a70578493ab3ff9e64c903336e56ca534f/edx_rbac-1.9.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4bfc1e574e9f406fa6b45cc2f30c535bfa3bf043edfc78197f42c42e657e47a9",
                "md5": "f551f079c049f84445c1078e3154606d",
                "sha256": "0d4be24b92abf4d6da68d889199431825418345a21fdf96aed7f63324ab98989"
            },
            "downloads": -1,
            "filename": "edx-rbac-1.9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f551f079c049f84445c1078e3154606d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 48114,
            "upload_time": "2024-04-19T18:44:18",
            "upload_time_iso_8601": "2024-04-19T18:44:18.756275Z",
            "url": "https://files.pythonhosted.org/packages/4b/fc/1e574e9f406fa6b45cc2f30c535bfa3bf043edfc78197f42c42e657e47a9/edx-rbac-1.9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-19 18:44:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openedx",
    "github_project": "edx-rbac",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "edx-rbac"
}
        
edX
Elapsed time: 0.36634s