{ "info": { "author": "Django roles access", "author_email": "django.roles.access@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Framework :: Django :: 2.2", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Security" ], "description": "![Django roles access](https://django-roles-access.github.io/_images/django-roles-access.png \"Django roles access\") \n# Django Roles Access\n![](https://img.shields.io/badge/release-v0.9.4-blue.svg)\n![](https://img.shields.io/badge/state-beta-brightgreen.svg)\n[![Build Status](https://travis-ci.org/django-roles-access/master.svg?branch=master)](https://travis-ci.org/django-roles-access/master)\n[![codecov](https://codecov.io/gh/django-roles-access/master/branch/master/graph/badge.svg)](https://codecov.io/gh/django-roles-access/master)\n\nApplication for securing access to views with roles \n(*Django contrib Groups*). \n\n**django_roles_access** is a Django app for securing access to views. It's \nbuilt on top of Django contrib Groups interpreted as role. The objective of\nthe app are:\n\n* Provide secure access to views.\n\n* Be able to administrate access to views without the need to restart the\n server (at run time).\n\n* Minimize the need of new code, or eliminate it at all (when using\n **django_roles_access** middleware). Also free developers from the task \n of coding any view access.\n\n* **django_roles_access** also provides a security report by registering\n **checkviewaccess** action.\n\nWorks with:\n\n* Django 1.10+ (Python 2.7, Python 3.5+)\n\n* Django 2 (Python 3.5+)\n\n* [Documentation](https://django-roles-access.github.io)\n\n\n## Requirements\n\n\nDjango roles access use *Django contrib Groups*, *Django contrib User*. Also\n*Django\nadmin interface* is necessary to create and administrate *views access*\n([django_roles_access.models.ViewAccess](https://django-roles-access.github.io/reference.html#django_roles_access.models.ViewAccess)).\nSo Django roles access is dependent of *Django admin site* and because of\nthis it has the same requirements than it. This can be checked in the\n[official documentation:](https://docs.djangoproject.com/en/dev/ref/contrib/admin/)\n\n\n## Quick start\n\n\n### Installation and configuration\n\n\n1. Install **django_roles_access** from pypi:\n\n\n pip install django-roles-access\n\n2. Add **'django_roles_access'** to your INSTALLED_APPS setting:\n \n \n INSTALLED_APPS = [\n ...\n 'django_roles_access',\n ]\n \n3. Run migrations to create the **django_roles_access** models:\n\n\n python manage.py migrate\n\n\n>Note:\n>\n> If nothing else is done, then Django site security keeps without\n> modification.\n\n\n### Access configuration\n\n\nQuick view access configuration in two steps.\n\n#### Step 1\n\n\nIn *Django admin* interface create a \n[django_roles_access.models.ViewAccess](https://django-roles-access.github.io/reference.html#django_roles_access.models.ViewAccess)\nobject and configure it:\n\n1. **view** attribute: name of the view you to be secured. Format used: \n ``(\n [Namespaces and View name](https://django-roles-access.github.io/advanced.html#namespaces-and-view-name)).\n\n2. **type** attribute: select the *access type* for the view:\n\n * **Public**: Any visitor can access the view.\n\n * **Authorized**: Only authorized (logged) *Django contrib User* can access\n the view.\n\n * **By roles**: Only *Django contrib User* belonging to any added *Django \n contrib user* will access the view.\n\n3. **roles** attribute: When *By roles* is selected as *access type*, this\n attribute hold any *Django contrib Group* whose members will access the view.\n\n\n#### Step 2\n\nIn the view to be secured use: \n\n* **access_by_roles** decorator in case of view function\n ([django_roles_access.decorators.access_by_roles](https://django-roles-access.github.io/reference.html#django_roles_access.decorator.check_view_acces)) \n \n* **RolesMixin** mixin in case of classes based views\n ([django_roles_access.mixin.RolesMixin](https://django-roles-access.github.io/reference.html#django_roles_access.mixin.RolesMixin)) \n\nFor example:\n\nIn case of view is a function:\n\n\n from django_roles_access.decorators import access_by_role\n\n @access_by_role()\n myview(request):\n ...\n\n\nIn case of classes based views use mixin:\n\n\n from django_roles_access.mixin import RolesMixin\n\n class MyView(RolesMixin, View):\n\n ...\n\n\n>Note:\n>\n> When user has no access to a view, by default **django_roles_access**\n> response with *django.http.HttpResponseForbidden*.\n\n>Warning:\n>\n> Pre existent security behavior can be modified if a **django_roles_access**\n> configuration for the same view results in a more restricted view access.\n\n\n## Test Django roles access\n\nYou can check the **django_roles_access** test execution at \n[Travis CI integration](https://travis-ci.org/django-roles-access/master)\n([![Build Status](https://travis-ci.org/django-roles-access/master.svg?branch=master)](https://travis-ci.org/django-roles-access/master))\n\nYou can also check **dajngo_roles_access** test coverage at\n[Coverage](https://django-roles-access.github.io/coverage.html)\n([![codecov](https://codecov.io/gh/django-roles-access/master/branch/master/graph/badge.svg)](https://codecov.io/gh/django-roles-access/master))\n\nOr:\n\n1. Create a virtual environment.\n\n2. Get into and activate virtual environment.\n\n3. Clone **django_roles_access**:\n\n\n git clone https://github.com/django-roles-access/master.git\n\n\n2. Install tox:\n\n\n pip install tox\n\n\n3. Run the tests:\n\n\n tox\n\n\n## Related sites\n\n* [Documentation](https://django-roles-access.github.io)\n\n* [Package at pypi.org](https://pypi.org/project/django-roles-access/)\n\n* [source code](https://github.com/django-roles-access/master)\n\n* [Travis CI integration](https://travis-ci.org/django-roles-access/master)\n\n* [Codecov](https://codecov.io/gh/django-roles-access/master)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://django-roles-access.github.io", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-roles-access", "package_url": "https://pypi.org/project/django-roles-access/", "platform": "", "project_url": "https://pypi.org/project/django-roles-access/", "project_urls": { "Homepage": "https://django-roles-access.github.io" }, "release_url": "https://pypi.org/project/django-roles-access/0.9.4/", "requires_dist": null, "requires_python": "", "summary": "Django view access security by roles (groups).", "version": "0.9.4" }, "last_serial": 5302966, "releases": { "0.8": [ { "comment_text": "", "digests": { "md5": "e024b38da2e6fcebf1f0a80112da35da", "sha256": "30e4936720a89810275339ba28a2edb32b6885348cb8b07188947ee1ebb71793" }, "downloads": -1, "filename": "django_roles_access-0.8.tar.gz", "has_sig": false, "md5_digest": "e024b38da2e6fcebf1f0a80112da35da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 644580, "upload_time": "2019-03-19T19:55:06", "url": "https://files.pythonhosted.org/packages/34/35/827cf51a8bfe4e3c3f7b060bab491edae541607562da2f23403e8a21ae93/django_roles_access-0.8.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "8f50a0494053c83b406b41c928620474", "sha256": "3c84964557087addd27adabdd0459d478f2d5fea095b67ae94071d3cc10a3a30" }, "downloads": -1, "filename": "django_roles_access-0.8.1.tar.gz", "has_sig": false, "md5_digest": "8f50a0494053c83b406b41c928620474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 644971, "upload_time": "2019-03-19T21:44:18", "url": "https://files.pythonhosted.org/packages/8b/dd/080de9b162ddf5bb4289c88b1d0cdd8521c028df68a427fb39e4eec336c1/django_roles_access-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "0f730b41f330e184398f034b85dcdf0e", "sha256": "0bd61571d7981289e07d8b844dbb96449241a3195729e83ce58f82d0640cb3c0" }, "downloads": -1, "filename": "django_roles_access-0.8.2.tar.gz", "has_sig": false, "md5_digest": "0f730b41f330e184398f034b85dcdf0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 644954, "upload_time": "2019-03-19T21:48:51", "url": "https://files.pythonhosted.org/packages/55/63/c5682e37bfe95ef5ba442fb226db70b376d3b12a3536319c160c59445d96/django_roles_access-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "8df33b2c8cc7129512dbd10c75e4bd08", "sha256": "133f2176fbe60f56ef34d6034b78498a9ff884884bfce1bed1f0d6d91a83ac31" }, "downloads": -1, "filename": "django_roles_access-0.8.3.tar.gz", "has_sig": false, "md5_digest": "8df33b2c8cc7129512dbd10c75e4bd08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26816, "upload_time": "2019-03-22T15:06:42", "url": "https://files.pythonhosted.org/packages/8b/f8/55aa77a97449533afa569c42a35019d6ce0db4eff514f5bb7422261f2ef7/django_roles_access-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "e0aff927eb1537cd63473ed23d68425e", "sha256": "665364c28f5760ea4dac08c80ef3cc2218b4ec1189ba9f745f7769a55eaf61ea" }, "downloads": -1, "filename": "django_roles_access-0.8.4.tar.gz", "has_sig": false, "md5_digest": "e0aff927eb1537cd63473ed23d68425e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27443, "upload_time": "2019-04-03T17:22:58", "url": "https://files.pythonhosted.org/packages/90/5a/c3b8aed354b54d28d381aaaccc25868ba26c3aa4fb0470e032efc68b36db/django_roles_access-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "c41563e698279c5b0a15c0da7345e01f", "sha256": "cda9119c179b01938eafcdb8e8d8be7fbbd42384aafc970e28b9f4cc3c1fc8de" }, "downloads": -1, "filename": "django_roles_access-0.8.5.tar.gz", "has_sig": false, "md5_digest": "c41563e698279c5b0a15c0da7345e01f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27335, "upload_time": "2019-04-03T17:34:24", "url": "https://files.pythonhosted.org/packages/53/4a/76ff09d65d4b8a89f1ffb138ac0109f162dd6adb9f3fc0a21e5c5db38285/django_roles_access-0.8.5.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "79fae778fc48ae7d138ccabc53fc748c", "sha256": "6b3eda9b186a3ef93af720d46af956c7332c88908d3ebc07c01bc6cf6be34057" }, "downloads": -1, "filename": "django_roles_access-0.9.tar.gz", "has_sig": false, "md5_digest": "79fae778fc48ae7d138ccabc53fc748c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47309, "upload_time": "2019-04-09T16:21:55", "url": "https://files.pythonhosted.org/packages/83/90/5df3f0b1b1f785fc0f1f8cd715c723848046a3a4d040df08ee46ddefc0a1/django_roles_access-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "5fd21b7801bf77a08efdb04c55313d5c", "sha256": "c9d54d0ac6a0946df27adec873c86120ea4df54242b6abe86601564afdb8a951" }, "downloads": -1, "filename": "django_roles_access-0.9.1.tar.gz", "has_sig": false, "md5_digest": "5fd21b7801bf77a08efdb04c55313d5c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47343, "upload_time": "2019-04-09T16:26:48", "url": "https://files.pythonhosted.org/packages/7e/d7/a76e67df0c64a52e7205f22a4f42fc4ac7dd257149e2edc2e0708a10b5ed/django_roles_access-0.9.1.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "d24d1c666def124190e74a7386d17330", "sha256": "7dedd19701ac3e8d1a052507a8c9b72ae69f9827c61576a3bca7333440a38f7e" }, "downloads": -1, "filename": "django_roles_access-0.9.4.tar.gz", "has_sig": false, "md5_digest": "d24d1c666def124190e74a7386d17330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56575, "upload_time": "2019-05-22T14:29:21", "url": "https://files.pythonhosted.org/packages/09/39/4d7b17f78ab4480f77aa1bd43ebbd97012dea6a2c9cee27019009fb1aae8/django_roles_access-0.9.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d24d1c666def124190e74a7386d17330", "sha256": "7dedd19701ac3e8d1a052507a8c9b72ae69f9827c61576a3bca7333440a38f7e" }, "downloads": -1, "filename": "django_roles_access-0.9.4.tar.gz", "has_sig": false, "md5_digest": "d24d1c666def124190e74a7386d17330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56575, "upload_time": "2019-05-22T14:29:21", "url": "https://files.pythonhosted.org/packages/09/39/4d7b17f78ab4480f77aa1bd43ebbd97012dea6a2c9cee27019009fb1aae8/django_roles_access-0.9.4.tar.gz" } ] }