From f22b3bfde1a3f36a0f2c5d99dd4b2d79a961d59f Mon Sep 17 00:00:00 2001 From: Oleh Kuchuk Date: Tue, 12 Sep 2017 12:47:50 +0300 Subject: [PATCH] init --- .editorconfig | 18 ++++++++++++++++++ .gitattributes | 0 .gitignore | 0 CHANGELOG.md | 0 LICENSE | 0 aiohttp_jwt/__init__.py | 2 ++ aiohttp_jwt/decorators.py | 23 +++++++++++++++++++++++ aiohttp_jwt/middleware.py | 13 +++++++++++++ setup.py | 0 9 files changed, 56 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 aiohttp_jwt/__init__.py create mode 100644 aiohttp_jwt/decorators.py create mode 100644 aiohttp_jwt/middleware.py create mode 100644 setup.py diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..293f4880 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.py] +indent_size = 4 + +[Makefile] +indent_style = tab + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..e69de29b diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e69de29b diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..e69de29b diff --git a/aiohttp_jwt/__init__.py b/aiohttp_jwt/__init__.py new file mode 100644 index 00000000..0b434f1b --- /dev/null +++ b/aiohttp_jwt/__init__.py @@ -0,0 +1,2 @@ + +__version__ = '0.0.1b' diff --git a/aiohttp_jwt/decorators.py b/aiohttp_jwt/decorators.py new file mode 100644 index 00000000..7654aae5 --- /dev/null +++ b/aiohttp_jwt/decorators.py @@ -0,0 +1,23 @@ +import json +import logging + +from aiohttp.web import HTTPForbidden + +logger = logging.getLogger(__name__) + + +def check_scopes(scopes=list()): + def factory(func): + async def wrapped(self, request): + if not request.get('user'): + return HTTPForbidden( + content_type='application/json', + body=json.dumps({ + 'error': 'Insufficient scopes' + }) + ) + + return await func(self, request) + return wrapped + + return factory diff --git a/aiohttp_jwt/middleware.py b/aiohttp_jwt/middleware.py new file mode 100644 index 00000000..8d8e80b1 --- /dev/null +++ b/aiohttp_jwt/middleware.py @@ -0,0 +1,13 @@ +import aiohttp +import asyncio + +def jwt_middleware(secret=None, token_getter=None, options=dict()): + if not ( secret and type(secret) is str ): + raise Exception('\'secret\' should be provided') + + async def factory(app, handler): + async def middleware(request): + pass + return middleware + + return factory diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..e69de29b