{ "info": { "author": "Diogo Laginha", "author_email": "diogo.laginha.machado@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2" ], "description": "Basic Usage\r\n------------\r\n\r\nAdd ``userroles`` do `INSTALLED_APPS`\r\n\r\n::\r\n\r\n INSTALLED_APPS = (\r\n ...\r\n 'userroles',\r\n )\r\n\r\n\r\nAdd the ``USER_ROLES`` setting\r\n\r\n::\r\n\r\n USER_ROLES = (\r\n 'manager',\r\n 'moderator',\r\n 'client',\r\n )\r\n\r\n\r\nDefine your Custom User model (optional)\r\n\r\n::\r\n\r\n AUTH_USER_MODEL = 'custom_user.EmailUser'\r\n\r\n\r\nAdd subroles for any of the roles defined in the `USER_ROLES` setting (optional)\r\n\r\n::\r\n\r\n MANAGER_ROLES = (\r\n 'staff_manager', 'business_manager'\r\n )\r\n\r\n\r\nSubroles can have sub-subroles and so on. But be careful not to repeat the names!\r\n\r\n\r\nThe `role_required` decorator provides similar behavior to Django's `login_required` and `permission_required` decorators. If the user accessing the view does not have the required roles, they will be redirected to the login page.\r\n\r\n::\r\n\r\n from userroles.decorators import role_required\r\n\r\n @role_required('manager', 'moderator')\r\n def view(request):\r\n ...\r\n\r\n\r\nor\r\n\r\n::\r\n\r\n from userroles.decorators import role_required\r\n from userroles import roles\r\n\r\n @role_required(roles.manager, roles.moderator)\r\n def view(request):\r\n ...\r\n\r\n\r\nIf user has a subrole of the required role, it passes de user test as well!", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/laginha/django-user-roles", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "custom-user-roles", "package_url": "https://pypi.org/project/custom-user-roles/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/custom-user-roles/", "project_urls": { "Homepage": "https://github.com/laginha/django-user-roles" }, "release_url": "https://pypi.org/project/custom-user-roles/1.1.0/", "requires_dist": null, "requires_python": null, "summary": "Simple role-based user permissions for Django.", "version": "1.1.0" }, "last_serial": 1634469, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "e78c959cd64f61b989a1ed2029e11fde", "sha256": "ac8a578edd0410729f09e6859bfdedb4d1c0acc75c264da885d698df37e197ff" }, "downloads": -1, "filename": "custom_user_roles-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e78c959cd64f61b989a1ed2029e11fde", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6733, "upload_time": "2015-03-10T16:10:03", "url": "https://files.pythonhosted.org/packages/29/68/31a0e08ee6e658e224076b0b8cc9e1bd8b13c82d4e0b7f7a6432c07b6cf8/custom_user_roles-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d911b0a770e8255cec5152c46b89826", "sha256": "d35bd060524c03f16255bd3c9522e1a39d816c87e495e06a3a6e02cf6b4c9e8f" }, "downloads": -1, "filename": "custom-user-roles-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0d911b0a770e8255cec5152c46b89826", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4325, "upload_time": "2015-03-10T16:10:00", "url": "https://files.pythonhosted.org/packages/b4/5c/03108775f2bf0ba6b5ec1083d4f310e09b28d13f0a52f6fd795944633495/custom-user-roles-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b30b3982105b4d45f538dc7416e95a01", "sha256": "b6b2bdb1522686891596205a4b33e23f7f6452bc4c7a279220b632808896d13a" }, "downloads": -1, "filename": "custom_user_roles-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b30b3982105b4d45f538dc7416e95a01", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7484, "upload_time": "2015-07-15T14:19:11", "url": "https://files.pythonhosted.org/packages/fb/3a/17c2a3b91a2303745656c6b21e31e4dfa296d22f4e12656f29da22b06897/custom_user_roles-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85721fdc669e2698808f95949a0dd00f", "sha256": "6d995563f8fe5c6d3167687af65cceae54a4e603057b20541dc8352541a2615a" }, "downloads": -1, "filename": "custom-user-roles-1.1.0.tar.gz", "has_sig": false, "md5_digest": "85721fdc669e2698808f95949a0dd00f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4628, "upload_time": "2015-07-15T14:19:07", "url": "https://files.pythonhosted.org/packages/4f/34/b5c3d04001078ded898e0a5daeb12237316b693c4080f184da8cd34d5c8d/custom-user-roles-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b30b3982105b4d45f538dc7416e95a01", "sha256": "b6b2bdb1522686891596205a4b33e23f7f6452bc4c7a279220b632808896d13a" }, "downloads": -1, "filename": "custom_user_roles-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b30b3982105b4d45f538dc7416e95a01", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7484, "upload_time": "2015-07-15T14:19:11", "url": "https://files.pythonhosted.org/packages/fb/3a/17c2a3b91a2303745656c6b21e31e4dfa296d22f4e12656f29da22b06897/custom_user_roles-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85721fdc669e2698808f95949a0dd00f", "sha256": "6d995563f8fe5c6d3167687af65cceae54a4e603057b20541dc8352541a2615a" }, "downloads": -1, "filename": "custom-user-roles-1.1.0.tar.gz", "has_sig": false, "md5_digest": "85721fdc669e2698808f95949a0dd00f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4628, "upload_time": "2015-07-15T14:19:07", "url": "https://files.pythonhosted.org/packages/4f/34/b5c3d04001078ded898e0a5daeb12237316b693c4080f184da8cd34d5c8d/custom-user-roles-1.1.0.tar.gz" } ] }