{ "info": { "author": "Jos\u00e9 Carlos L\u00f3pez", "author_email": "carlos@nopalcreativa.com", "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": "===========\nCASL-Django\n===========\n\nCASL Django is an app that converts the usual Django permissions to CASL-Style rules.\n\n\nCASL is an isomorphic authorization JavaScript library:\nhttps://github.com/stalniy/casl/\n\nExample\n-------\n\nHaving a rule called **my_app.change_item**, will generate a CASL rule:\n\n::\n\n {\n subject: 'my_app/item',\n action: 'change'\n }\n\n\nIf you have more than one rule for the same subject, for example:\n\n::\n\n my_app.change_item\n my_app.add_item\n my_app.remove_item\n\nThis will generate:\n\n::\n\n {\n subject: 'my_app/item',\n actions: ['add', 'change', 'remove']\n }\n\nConfiguration\n-------------\n\nBy default, the length for subject and action fields is 128 characters, you can\nincrease the length of them by adding to your settings file:\n\n::\n\n CASL_DJANGO = {\n 'subject-length': 256,\n 'action-length': 256\n }\n\nCustom Permissions\n------------------\n\nSometimes you'd like to have custom permissions for your users, given this, you\ncan add to your user using the Permission's `add_permission` class method::\n\n from casl_django.casl.permissions import Permissions\n\n ...\n\n my_custom_permission = Permissions.create(subject=\"navigation\", action=\"index\")\n\n ...\n\n Permissions.set_user_permission(user=user, permission=my_custom_permission)\n\n\nOr you can import `casl_django.models.UserPermission` and create objects as desired.\n\nQuick start\n-----------\n\n1. Add \"casl_django\" to your INSTALLED_APPS setting like this::\n\n INSTALLED_APPS = [\n ...\n 'casl_django',\n ]\n\n2. Run `python manage.py migrate` to create the models.\n\n\nAPI\n---\n\nBy default, your user object should contain a related relationship called `casl_permissions`.\nYou can filter by `permission__subject` and `permission__action` and finally get the rules with\nthe queryset method `bundle()`.\n\n--------\nbundle()\n--------\n\nThis method it's included in the QuerySet's for `UserPermissions` (user.casl_permissions) and for\n`CASLPermission` (CASLPermission.objects).\n\nThis method returns a list like the following::\n\n [\n // These are regular django permissions transformed to CASL-Style rules\n {'subject': 'products/item', actions: ['add', 'change']},\n // These are CASLPermissions objects\n {'subject': 'navigation', actions: ['index', 'products']}\n ]\n\nThe bundle consists in grouping same-subject rules and the actions, having less data\nto send over the wire.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/apexJCL/casl-django", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "casl-django", "package_url": "https://pypi.org/project/casl-django/", "platform": "", "project_url": "https://pypi.org/project/casl-django/", "project_urls": { "Homepage": "https://github.com/apexJCL/casl-django" }, "release_url": "https://pypi.org/project/casl-django/0.4.3/", "requires_dist": null, "requires_python": "", "summary": "Django module for converting regular django permissions to CASL-Style rules", "version": "0.4.3" }, "last_serial": 4737806, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "9babad3e7fe7c9cca5504c3fa52770c0", "sha256": "548277d19df6fb2f076a57b5a765d8e47ed03e603a9011fdc4515d75578936ef" }, "downloads": -1, "filename": "casl-django-0.1.tar.gz", "has_sig": false, "md5_digest": "9babad3e7fe7c9cca5504c3fa52770c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10305, "upload_time": "2018-08-22T14:55:54", "url": "https://files.pythonhosted.org/packages/0b/44/9052f9c9493ecd925ad43ac002d4fbe2c5a03f2b2b68281455a574b6ead7/casl-django-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "bad7593677e892f820b76b578caa5eb0", "sha256": "e22c2c8c6ff771c57da3eca150bb929fefc92170eb4d96e1693b416d349ac62b" }, "downloads": -1, "filename": "casl-django-0.2.tar.gz", "has_sig": false, "md5_digest": "bad7593677e892f820b76b578caa5eb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10753, "upload_time": "2018-09-06T16:52:17", "url": "https://files.pythonhosted.org/packages/48/82/01b3b7cc2e0bd0e7b8d85b3375d3924d08614560a70c3638b1100690acc2/casl-django-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "838d62f2af545658ee86a10dcb8537c4", "sha256": "89680c5a0598dbcdb2a8277760b856e183f562f015038748cb6d7cac37ac39e0" }, "downloads": -1, "filename": "casl-django-0.3.tar.gz", "has_sig": false, "md5_digest": "838d62f2af545658ee86a10dcb8537c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11663, "upload_time": "2018-09-07T15:42:03", "url": "https://files.pythonhosted.org/packages/8e/a1/32d18de115a3ef1f109d28b4d2fa377c9cca1d092843c42756a422363c25/casl-django-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "3ff34dd91446fb1dac35c71c90f1c807", "sha256": "331ec00f8306537e0027e2f8b4891c60a434adbe419121e8869077e374423a0b" }, "downloads": -1, "filename": "casl-django-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3ff34dd91446fb1dac35c71c90f1c807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11161, "upload_time": "2018-09-07T16:13:04", "url": "https://files.pythonhosted.org/packages/12/5f/7dd11f33c84fdf8a09e4cd328c35b9f47c949131adcc057c4c99885d2d66/casl-django-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "b9edb47a8ad55f96ef0fed28c0eff1dc", "sha256": "dd703597cab2b5a55d2b47e23c7aec183b02bc216f9f813c934412c97e331009" }, "downloads": -1, "filename": "casl-django-0.4.0.tar.gz", "has_sig": false, "md5_digest": "b9edb47a8ad55f96ef0fed28c0eff1dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11177, "upload_time": "2018-10-19T17:10:59", "url": "https://files.pythonhosted.org/packages/cd/1e/0929e11a6d465849ca0eb86b6915bc90f640aa48158cb54c7111eaa4e503/casl-django-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "54b258bc46d066ddde71763e5f9eeb86", "sha256": "ac820f4c958f2314ae15e01388c150c154821a0f07c09419bce44bd7d0c1437e" }, "downloads": -1, "filename": "casl-django-0.4.1.tar.gz", "has_sig": false, "md5_digest": "54b258bc46d066ddde71763e5f9eeb86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11177, "upload_time": "2018-10-19T21:59:05", "url": "https://files.pythonhosted.org/packages/2e/8f/858bf0baa2d259a7e95f98dac3fa685f6832578bbe6883d63c8c68e0d4a2/casl-django-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "698445000c63df6195f4a7554ecb2ff3", "sha256": "e583a9f618793ba31f1f12d15c584d66dacbea201ecd270f99dc6a4b8285d6e2" }, "downloads": -1, "filename": "casl-django-0.4.2.tar.gz", "has_sig": false, "md5_digest": "698445000c63df6195f4a7554ecb2ff3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11195, "upload_time": "2018-10-19T22:08:33", "url": "https://files.pythonhosted.org/packages/d9/2f/4bd900b6fd4a9c68557a7e4eace48510f8ce35aafe8c5294f25497d4807c/casl-django-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "d011293b663386feec77ffc3e72e8248", "sha256": "760cdee3c32b491e136c4e37bd6a4616c3b95d3e74c62e6c105a53999404b92d" }, "downloads": -1, "filename": "casl-django-0.4.3.tar.gz", "has_sig": false, "md5_digest": "d011293b663386feec77ffc3e72e8248", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11210, "upload_time": "2019-01-24T23:25:21", "url": "https://files.pythonhosted.org/packages/75/ee/6aea39a34a514aa9784624eac94a876c7d2352a1ece9b05d506d11240b34/casl-django-0.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d011293b663386feec77ffc3e72e8248", "sha256": "760cdee3c32b491e136c4e37bd6a4616c3b95d3e74c62e6c105a53999404b92d" }, "downloads": -1, "filename": "casl-django-0.4.3.tar.gz", "has_sig": false, "md5_digest": "d011293b663386feec77ffc3e72e8248", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11210, "upload_time": "2019-01-24T23:25:21", "url": "https://files.pythonhosted.org/packages/75/ee/6aea39a34a514aa9784624eac94a876c7d2352a1ece9b05d506d11240b34/casl-django-0.4.3.tar.gz" } ] }