{ "info": { "author": "Reimund Klain", "author_email": "reimund.klain@condevtec.de", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Flask-Casbin\n============\n\n[![Build Status](https://travis-ci.org/daymien/Flask-Casbin.png?branch=master)](https://travis-ci.org/daymien/Flask-Casbin)\n\n\nFlask-Casbin is an extension that provide Casbin ACL functionality to your Flask project\n\nInstallation\n------------\n\nInstall Flask-Casbin with `pip`:\n\n pip install Flask-Casbin\n\nInstall Flask-Casbin with `poetry`:\n\n poetry add Flask-Casbin\n\nExample\n-------\n\nThis is an example Flask application:\n\n```python\nfrom flask import Flask\nfrom flask_casbin import Casbin\n\napp = Flask(__name__)\n\n# config\napp.config[\"CASBIN_MODEL_CONF\"] = \"./model.conf\"\napp.config[\"CASBIN_POLICY_CSV\"] = \"./policy.csv\"\n\n# create acl\nacl = Casbin(app)\n\n@app.route('/data/')\ndef get_data(id_):\n # curent_user ist global authenticated user\n acl.enforce(\"user:%s\" % current_user.name, \"data:%d\" % id_, \"read\") or abort(401)\n\n # Get data\n data = db.get_data(id_)\n return { data_id: data.id, data: data.payload }\n\n```\n\nTodo\n----\n\n* Decorators for ACL check\n* Policy adapters\n* Dynamic Policy Adapter (Flask-SQLAlchemy)\n* More tests\n\nResources\n---------\n\n- [pypi](https://pypi.python.org/pypi/Flask-Casbin)\n- [casbin](https://casbin.org/)\n- [pycasbin](https://github.com/casbin/pycasbin)\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/daymien/Flask-Casbin", "keywords": "flask,casbin,acl,rbac,abac,auth,authz,authorization,access control,permission", "license": "", "maintainer": "Reimund Klain", "maintainer_email": "reimund.klain@condevtec.de", "name": "flask-casbin", "package_url": "https://pypi.org/project/flask-casbin/", "platform": "", "project_url": "https://pypi.org/project/flask-casbin/", "project_urls": { "Homepage": "https://github.com/daymien/Flask-Casbin", "Repository": "https://github.com/daymien/Flask-Casbin" }, "release_url": "https://pypi.org/project/flask-casbin/0.1.0/", "requires_dist": [ "flask (>=1.1,<2.0)", "casbin (>=0.8.1,<0.9.0)" ], "requires_python": ">=3.5,<4.0", "summary": "Flask Casbin Integration", "version": "0.1.0" }, "last_serial": 5956917, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "815c29dbdb99a06d2f94f86c75acb63e", "sha256": "ede584d3eae9a128d49fdf583ab89c48303fb8b83c875710a69a810ac01603f7" }, "downloads": -1, "filename": "Flask_Casbin-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "815c29dbdb99a06d2f94f86c75acb63e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 6516, "upload_time": "2019-10-10T20:49:54", "url": "https://files.pythonhosted.org/packages/da/f9/c00a2aa579119e1b6fc885d4072d9fe8f30cf39f31f3d9638fb045060a6e/Flask_Casbin-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "532651caa8ed344607fc6d6f4019de4e", "sha256": "38be992dcc4c762f3d14ccc2f7bfe04d9492ff73c812f7de4593daea77a169f0" }, "downloads": -1, "filename": "Flask-Casbin-0.1.0.tar.gz", "has_sig": false, "md5_digest": "532651caa8ed344607fc6d6f4019de4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 6426, "upload_time": "2019-10-10T20:49:51", "url": "https://files.pythonhosted.org/packages/c8/e7/d2c23a6cd9052d979e910b351218ae50ada9a5a06f1a234b82903e449fca/Flask-Casbin-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "815c29dbdb99a06d2f94f86c75acb63e", "sha256": "ede584d3eae9a128d49fdf583ab89c48303fb8b83c875710a69a810ac01603f7" }, "downloads": -1, "filename": "Flask_Casbin-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "815c29dbdb99a06d2f94f86c75acb63e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 6516, "upload_time": "2019-10-10T20:49:54", "url": "https://files.pythonhosted.org/packages/da/f9/c00a2aa579119e1b6fc885d4072d9fe8f30cf39f31f3d9638fb045060a6e/Flask_Casbin-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "532651caa8ed344607fc6d6f4019de4e", "sha256": "38be992dcc4c762f3d14ccc2f7bfe04d9492ff73c812f7de4593daea77a169f0" }, "downloads": -1, "filename": "Flask-Casbin-0.1.0.tar.gz", "has_sig": false, "md5_digest": "532651caa8ed344607fc6d6f4019de4e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 6426, "upload_time": "2019-10-10T20:49:51", "url": "https://files.pythonhosted.org/packages/c8/e7/d2c23a6cd9052d979e910b351218ae50ada9a5a06f1a234b82903e449fca/Flask-Casbin-0.1.0.tar.gz" } ] }