{ "info": { "author": "Daniel 'Vector' Kerr", "author_email": "vector@vector.id.au", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2" ], "description": "# Flask Google App Engine Users\r\n\r\nProvide route decorators for Google App Engine users.\r\n\r\n\r\n# Author\r\n\r\nDaniel 'Vector' Kerr ()\r\n\r\n\r\n# License\r\n\r\nRefer to [LICENSE.txt](LICENSE.txt).\r\n\r\n\r\n# Installation\r\n\r\npip install flask-gae-users\r\n\r\n\r\n# Sample Usage\r\n\r\n## Python Code\r\n\r\n`main.py`\r\n```python\r\nfrom flask import Flask, request, Response, jsonify\r\nfrom flask_gae_users import GAEUsers\r\nfrom flask_gae_users import GAENoUserException\r\nfrom flask_gae_users import GAENotAdminException\r\n\r\n\r\napp = Flask()\r\nGAEUsers( app = app )\r\n\r\n# Provide a response when a user is not logged in\r\n@app.errorhandler( GAENoUserException )\r\ndef onAppNoUser( e ):\r\n body = \"

You must log in to continue

\"\r\n body = body + \"

Sign in

\"\r\n return Response( body, status = 401 )\r\n\r\n# Provide a response when a user is not an administrator\r\n@app.errorhandler( GAENotAdminException )\r\ndef onAppNoUser( e ):\r\n body = \"

You are not authorized to access this resource

\"\r\n body = body + \"

Sign in as a different user

\"\r\n return Response( body, status = 403 )\r\n\r\n\r\n# Create a user-protected route by adding the `require_user` decorator\r\n@app.route( '/home', methods = [ 'GET' ] )\r\n@app.require_user()\r\ndef routeHome():\r\n user = app.get_user()\r\n return jsonify( { 'user': repr( user ) } )\r\n\r\n# Create an admin-protected route by adding the `require_admin` decorator\r\n@app.route( '/admin', methods = [ 'GET' ] )\r\n@app.require_admin()\r\ndef routeAdmin():\r\n admin = app.get_user()\r\n return jsonify( { 'admin': repr( admin ) } )\r\n\r\n\r\n# Run the flask application\r\nif __name__ == '__main__':\r\n app.run( port = 8080 )\r\n```\r\n\r\n\r\n\r\n## Run Server\r\n\r\n```sh\r\npython main.py\r\n```\r\n\r\n\r\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/vector.kerr/flask-gae-users", "keywords": "flask google app engine gae user users decorator", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flask-gae-users", "package_url": "https://pypi.org/project/flask-gae-users/", "platform": "", "project_url": "https://pypi.org/project/flask-gae-users/", "project_urls": { "Homepage": "https://gitlab.com/vector.kerr/flask-gae-users" }, "release_url": "https://pypi.org/project/flask-gae-users/0.0.1/", "requires_dist": [ "flask" ], "requires_python": "", "summary": "Provide route decorators for Google App Engine users", "version": "0.0.1" }, "last_serial": 3969510, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "985925f3d7bedebf4fac876ddb6ff5f8", "sha256": "2248b55d74cbd7746be58e9d33159a9b5a214c69614bac8318630dfccec0fd18" }, "downloads": -1, "filename": "flask_gae_users-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "985925f3d7bedebf4fac876ddb6ff5f8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2932, "upload_time": "2018-06-16T14:29:43", "url": "https://files.pythonhosted.org/packages/9c/35/0ce794a96f2c68e9550198c57aeac11f71bc79f591bf31abe701e00c0736/flask_gae_users-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cf9337d56689f839a5ab6088c8cdb3b", "sha256": "2938e141b1b4e84119a6b99b02aada9a342ffaf9dbfc89606851193b2f48b711" }, "downloads": -1, "filename": "flask-gae-users-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0cf9337d56689f839a5ab6088c8cdb3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2498, "upload_time": "2018-06-16T14:29:44", "url": "https://files.pythonhosted.org/packages/98/16/53b111ff5461f88fa3ed7848034f3b03efe7e316a838d78c77ed63a06f6e/flask-gae-users-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "985925f3d7bedebf4fac876ddb6ff5f8", "sha256": "2248b55d74cbd7746be58e9d33159a9b5a214c69614bac8318630dfccec0fd18" }, "downloads": -1, "filename": "flask_gae_users-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "985925f3d7bedebf4fac876ddb6ff5f8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 2932, "upload_time": "2018-06-16T14:29:43", "url": "https://files.pythonhosted.org/packages/9c/35/0ce794a96f2c68e9550198c57aeac11f71bc79f591bf31abe701e00c0736/flask_gae_users-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cf9337d56689f839a5ab6088c8cdb3b", "sha256": "2938e141b1b4e84119a6b99b02aada9a342ffaf9dbfc89606851193b2f48b711" }, "downloads": -1, "filename": "flask-gae-users-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0cf9337d56689f839a5ab6088c8cdb3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2498, "upload_time": "2018-06-16T14:29:44", "url": "https://files.pythonhosted.org/packages/98/16/53b111ff5461f88fa3ed7848034f3b03efe7e316a838d78c77ed63a06f6e/flask-gae-users-0.0.1.tar.gz" } ] }