diff options
author | Jessica Tallon <jessica@megworld.co.uk> | 2014-07-23 00:23:23 +0100 |
---|---|---|
committer | Jessica Tallon <jessica@megworld.co.uk> | 2014-07-23 00:23:23 +0100 |
commit | aab62394773c27e73996e8cb8fb425db3fa62d49 (patch) | |
tree | 5f7e8a14f557f9917179fc8f2d4e9987ef98097a /mediagoblin/tools/request.py | |
parent | 59ff4790c9f33fe13ee0a411d4152bd256eaa06a (diff) | |
parent | a14d90c2db5ff96bdd72009a07f1afc0e8ef3595 (diff) | |
download | mediagoblin-aab62394773c27e73996e8cb8fb425db3fa62d49.tar.lz mediagoblin-aab62394773c27e73996e8cb8fb425db3fa62d49.tar.xz mediagoblin-aab62394773c27e73996e8cb8fb425db3fa62d49.zip |
Merge branch 'Federation'
Diffstat (limited to 'mediagoblin/tools/request.py')
-rw-r--r-- | mediagoblin/tools/request.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py index d4739039..d2cb0f6a 100644 --- a/mediagoblin/tools/request.py +++ b/mediagoblin/tools/request.py @@ -16,7 +16,9 @@ import json import logging -from mediagoblin.db.models import User + +from mediagoblin.db.models import User, AccessToken +from mediagoblin.oauth.tools.request import decode_authorization_header _log = logging.getLogger(__name__) @@ -31,6 +33,18 @@ def setup_user_in_request(request): Examine a request and tack on a request.user parameter if that's appropriate. """ + # If API request the user will be associated with the access token + authorization = decode_authorization_header(request.headers) + + if authorization.get(u"access_token"): + # Check authorization header. + token = authorization[u"oauth_token"] + token = AccessToken.query.filter_by(token=token).first() + if token is not None: + request.user = token.user + return + + if 'user_id' not in request.session: request.user = None return @@ -45,8 +59,8 @@ def setup_user_in_request(request): def decode_request(request): """ Decodes a request based on MIME-Type """ - data = request.get_data() - + data = request.data + if request.content_type == json_encoded: data = json.loads(data) elif request.content_type == form_encoded or request.content_type == "": |