{ "info": { "author": "Simon Welker", "author_email": "simon@serioese.gmbh", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "===========================\nSerious Django: Permissions\n===========================\n\nhttps://github.com/serioeseGmbH/serious-django-permissions\n\nserious-django-permissions is a Django extension that makes it possible to define Permissions in each app,\nand Groups in a central place. It makes these Permissions ``import``-able and checkable via ``user.has_perm``::\n\n from some_app.permissions import ChangeSomethingPermission\n\n def change_something(something, user):\n if not user.has_perm(ChangeSomethingPermission):\n raise PermissionDenied(\"You can't change this something.)\n else:\n\t return something.change()\n\nBoth permissions and groups can then be created in the database with a single ``manage.py`` call (see Quick start below).\n\n\nQuick start\n-----------\n\n1. Install the package with pip::\n\n pip install serious-django-permissions\n\n2. Add \"serious_django_permissions\" to your INSTALLED_APPS setting like this::\n\n INSTALLED_APPS = [\n ...\n 'serious_django_permissions',\n ]\n\n3. Add ``serious_django_permissions.permissions.PermissionModelBackend`` to your ``AUTHENTICATION_BACKENDS`` setting. This enables you to do permission checks like ``user.has_perm(SomePermission)``::\n\n AUTHENTICATION_BACKENDS = [\n ...\n 'serious_django_permissions.permissions.PermissionModelBackend',\n ]\n\n4. In each app that should define a permission, import ``serious_django_permissions.permissions.Permission`` and create subclasses of it.\n\n The name of your subclasses must end in ``Permission``, and each subclass must define a ``description`` attribute. For instance, let's say you have the file ``myapp/permissions.py``::\n\n from serious_django_permissions.permissions import Permission\n\n from .models import MyModel\n\n class MyPermission(Permission):\n model = 'MyModel' # should be a model inside myapp.models, or not defined for global permissions.\n\t description = 'A description for this permission'\n\n5. Run ``python manage.py create_permissions`` to create all defined permissions on the database level.\n\n*New in version 0.7:* Create all permissions (including groups) programmatically by calling ``setup_permissions()``::\n\n from serious_django_permissions.helpers import setup_permissions\n\n setup_permissions()\n\n6. If you'd like to use the Groups feature as well:\n\n 1. Create a file named something like ``some_app/groups.py`` inside one of your apps, or in the folder where your settings live. An example::\n\n\tfrom serious_django_permissions.groups import Group\n\n\tfrom app_one.permissions import\\\n\t AppOnePermissionA, AppOnePermissionB\n\tfrom app_two.permissions import\\\n\t AppTwoPermission\n\n\tclass GroupA(Group):\n\t permissions = [\n\t\tAppOnePermissionA,\n\t\tAppTwoPermission\n\t ]\n\n\tclass GroupB(Group):\n\t permissions = [\n\t AppOnePermissionB,\n\t\tAppTwoPermission\n\t ]\n\n 2. Reference the defined groups file in your settings::\n\n\tDEFAULT_GROUPS_MODULE = 'some_app.groups'\n\n 3. Run ``python manage.py create_groups`` to create all permissions and assign them to the groups.\n\n\nAuthorization\n-------------\n\nSetting a permission for a model does not automatically restrict the access to the model.\nAuthorization still has to be checked via the view. Check the `Django documentation on how to authorize access to views `_ for further information.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://serioese.gmbh/", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "serious-django-permissions", "package_url": "https://pypi.org/project/serious-django-permissions/", "platform": "", "project_url": "https://pypi.org/project/serious-django-permissions/", "project_urls": { "Homepage": "https://serioese.gmbh/" }, "release_url": "https://pypi.org/project/serious-django-permissions/0.14/", "requires_dist": null, "requires_python": "", "summary": "A Django extension to define and use Groups and Permissions from a central place, per app.", "version": "0.14" }, "last_serial": 5885341, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b66a0f7ec63f23276a419af13b16d669", "sha256": "9ddf517a6dd71eb3336682e38e0e47b8f67da6a05a03fa2a7b060a10b4a3a874" }, "downloads": -1, "filename": "serious-django-permissions-0.1.tar.gz", "has_sig": false, "md5_digest": "b66a0f7ec63f23276a419af13b16d669", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5016, "upload_time": "2018-12-21T16:14:40", "url": "https://files.pythonhosted.org/packages/bd/5a/1611fe1129e0680a1018012923291bb358368e2516657f15a354b2c50cae/serious-django-permissions-0.1.tar.gz" } ], "0.10": [ { "comment_text": "", "digests": { "md5": "d372122d873060272c47f360dae2ea9e", "sha256": "846c4d6542381aa0aa05e8dcd686ec49fa4531011b0137af19a9bb1a88cb6c2d" }, "downloads": -1, "filename": "serious-django-permissions-0.10.tar.gz", "has_sig": false, "md5_digest": "d372122d873060272c47f360dae2ea9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7963, "upload_time": "2019-02-22T11:06:06", "url": "https://files.pythonhosted.org/packages/44/7c/5ccb92da8b58119a45e1f19c59096759fcbbea97dd55f650a6c5c8265650/serious-django-permissions-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "b0d15860569af8a5f81cd004104f6595", "sha256": "aa36679d1bb01838a76d3495638d13175eda394c875e67de3b8c2a0fb6864c23" }, "downloads": -1, "filename": "serious-django-permissions-0.11.tar.gz", "has_sig": false, "md5_digest": "b0d15860569af8a5f81cd004104f6595", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7970, "upload_time": "2019-02-22T14:57:25", "url": "https://files.pythonhosted.org/packages/25/66/df6ad42f3421fddd33463b47685d332dbbee650e6ee3ce26b5dbd9c0ae23/serious-django-permissions-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "95db70cefc472a7251ac0ad9a2349965", "sha256": "96f1ed021e588f6d9b3fd557345f7e4c2124a668c28b965802b5c1eb225ca971" }, "downloads": -1, "filename": "serious-django-permissions-0.12.tar.gz", "has_sig": false, "md5_digest": "95db70cefc472a7251ac0ad9a2349965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7974, "upload_time": "2019-03-08T13:55:07", "url": "https://files.pythonhosted.org/packages/e8/3f/a7f8a2fd3aeed7365946d5ede4f601a0c19eefd94ddb1341a3d44b7ad7d3/serious-django-permissions-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "2ce09c9e7e1cb85d4195cf465765e55a", "sha256": "713b7869be468f30b84d5e0a7e236217e00d5c46a019b584ef6f25a818e03687" }, "downloads": -1, "filename": "serious-django-permissions-0.13.tar.gz", "has_sig": false, "md5_digest": "2ce09c9e7e1cb85d4195cf465765e55a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7969, "upload_time": "2019-03-22T16:02:01", "url": "https://files.pythonhosted.org/packages/17/1b/cf6e127948159514beca391068d65729da7b37a39220a08eaff083f100ca/serious-django-permissions-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "5cc36bcd832dcd177c09bc2992127952", "sha256": "0a9fa29ead969cb1a3928be7cbb695df96b48404cd5185b9b54817e0df02d243" }, "downloads": -1, "filename": "serious-django-permissions-0.14.tar.gz", "has_sig": false, "md5_digest": "5cc36bcd832dcd177c09bc2992127952", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6772, "upload_time": "2019-09-25T13:28:00", "url": "https://files.pythonhosted.org/packages/00/eb/e95ecc6a359cbed30e494e04524a0597bc74e0a2f928bad4dc8d44980f3a/serious-django-permissions-0.14.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b57e9b5d4e3f4c6e4ba4d85e010d9b9a", "sha256": "68451c5e4af736e518255222e423c91456baa7695e69957417042ab31c7e0304" }, "downloads": -1, "filename": "serious-django-permissions-0.2.tar.gz", "has_sig": false, "md5_digest": "b57e9b5d4e3f4c6e4ba4d85e010d9b9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5012, "upload_time": "2018-12-21T16:28:39", "url": "https://files.pythonhosted.org/packages/e2/db/40fab068e352477956bb9dfd5b8b02d9f3b297b3d8ea805bd14abbd12a91/serious-django-permissions-0.2.tar.gz" } ], "0.2.post1": [ { "comment_text": "", "digests": { "md5": "ec3a55280683e18d28c6347ed349d50a", "sha256": "d3c914237a53d737735953f48f8078d16773e83a2dc74a5ebd3d12fc5331025b" }, "downloads": -1, "filename": "serious-django-permissions-0.2.post1.tar.gz", "has_sig": false, "md5_digest": "ec3a55280683e18d28c6347ed349d50a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5050, "upload_time": "2018-12-21T17:15:32", "url": "https://files.pythonhosted.org/packages/c2/5b/7cdccb29669b38d93df1d49acb6ae99851a8455b94c9f222d483a4ea9a47/serious-django-permissions-0.2.post1.tar.gz" } ], "0.2.post2": [ { "comment_text": "", "digests": { "md5": "ef937ff917c43adb7289d0dcce9a66de", "sha256": "35d2b4f91a04c46413af0929eb66676c7adcd5bba9f61c73ec80375fb7b0b814" }, "downloads": -1, "filename": "serious-django-permissions-0.2.post2.tar.gz", "has_sig": false, "md5_digest": "ef937ff917c43adb7289d0dcce9a66de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5041, "upload_time": "2018-12-21T17:17:56", "url": "https://files.pythonhosted.org/packages/22/e2/7179a73902fab2486d9473d45720e7b5e0e59198901907f6ef211bdfef61/serious-django-permissions-0.2.post2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "bff465ab9fad9021468d851c2ffc79f0", "sha256": "38ae24154b2eec97eab0532da322187fbd5528f332a7fa7cbc35c2c9f1097350" }, "downloads": -1, "filename": "serious-django-permissions-0.3.tar.gz", "has_sig": false, "md5_digest": "bff465ab9fad9021468d851c2ffc79f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5033, "upload_time": "2018-12-21T17:23:18", "url": "https://files.pythonhosted.org/packages/39/53/4c272f405a63213a77ee22cdf12d792684194906d582e7c22399b0e91f94/serious-django-permissions-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "22cbe1f6b1f867151bc8a5f0cf908ddc", "sha256": "36969a1c6094dee03afc5bfc03a96d691b04835aa50964d8064375f8abe29217" }, "downloads": -1, "filename": "serious-django-permissions-0.4.tar.gz", "has_sig": false, "md5_digest": "22cbe1f6b1f867151bc8a5f0cf908ddc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3245, "upload_time": "2018-12-22T10:50:41", "url": "https://files.pythonhosted.org/packages/07/a7/af33ba3244decdf49550d21a1782d77771fd8407869e97d56fe02a87cd0b/serious-django-permissions-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "69b7a35bff7e573b851f15b24543cb04", "sha256": "fe800be2924368f987bfbfbed84e79b230fe3ea1138b56f85e71d206989ac295" }, "downloads": -1, "filename": "serious-django-permissions-0.5.tar.gz", "has_sig": false, "md5_digest": "69b7a35bff7e573b851f15b24543cb04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5873, "upload_time": "2018-12-22T10:56:43", "url": "https://files.pythonhosted.org/packages/81/d3/5ec58864325f722827f3860e1c90ccc5266d4bc0424882378dc64b46ace3/serious-django-permissions-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "431ad2d614ebff90bde17b274c32fc92", "sha256": "948c63865bc7c8c1c2af339aa756a2ab86b2690e25e53e6234c56f2086db7256" }, "downloads": -1, "filename": "serious-django-permissions-0.6.tar.gz", "has_sig": false, "md5_digest": "431ad2d614ebff90bde17b274c32fc92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6248, "upload_time": "2019-02-06T11:14:27", "url": "https://files.pythonhosted.org/packages/bb/b8/c64f837df2c8b3a9037e2c381eaee0189e874ac03ac34aa53f6963e5929b/serious-django-permissions-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "49ae0817f6fc6b7580e41fad05018395", "sha256": "ec27fb86d4092035dbd6d6ce0bd28e727a80394a42797ea011f1fecde109493b" }, "downloads": -1, "filename": "serious-django-permissions-0.7.tar.gz", "has_sig": false, "md5_digest": "49ae0817f6fc6b7580e41fad05018395", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6337, "upload_time": "2019-02-12T14:38:43", "url": "https://files.pythonhosted.org/packages/8b/90/9a553b4c018163c8ac455984e37b2e396f50b03a6e1c42d4e939b6f1863e/serious-django-permissions-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "fea08f38c48d8515fc9c3dd751875197", "sha256": "8fdaeecd21cda6398db7f71702da83b77deda58c76c23ecf43d57b2968826add" }, "downloads": -1, "filename": "serious-django-permissions-0.8.tar.gz", "has_sig": false, "md5_digest": "fea08f38c48d8515fc9c3dd751875197", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6338, "upload_time": "2019-02-12T17:19:29", "url": "https://files.pythonhosted.org/packages/1e/7f/24dbc90b2ca9f4323e0e3eada096e0d1aa00af642b4f250a0b82ec2e879f/serious-django-permissions-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "5f5da4dbe1d4d38c5448f9599cffb620", "sha256": "36fbb5e97183296c5ee19282c165c0fa620723e7f033a04d44e8d6ee24597105" }, "downloads": -1, "filename": "serious-django-permissions-0.9.tar.gz", "has_sig": false, "md5_digest": "5f5da4dbe1d4d38c5448f9599cffb620", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6350, "upload_time": "2019-02-14T10:34:39", "url": "https://files.pythonhosted.org/packages/e2/8c/0f3dac58cffedd993709492f8e6b29b327c5009410338dae8a6c5ca0001f/serious-django-permissions-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5cc36bcd832dcd177c09bc2992127952", "sha256": "0a9fa29ead969cb1a3928be7cbb695df96b48404cd5185b9b54817e0df02d243" }, "downloads": -1, "filename": "serious-django-permissions-0.14.tar.gz", "has_sig": false, "md5_digest": "5cc36bcd832dcd177c09bc2992127952", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6772, "upload_time": "2019-09-25T13:28:00", "url": "https://files.pythonhosted.org/packages/00/eb/e95ecc6a359cbed30e494e04524a0597bc74e0a2f928bad4dc8d44980f3a/serious-django-permissions-0.14.tar.gz" } ] }