diff options
author | Jessica Tallon <jessica@megworld.co.uk> | 2014-07-10 18:17:47 +0100 |
---|---|---|
committer | Jessica Tallon <jessica@megworld.co.uk> | 2014-07-22 23:13:16 +0100 |
commit | 967df5eff0c00fe7cd860ebfb297ee1f2e0bcdaf (patch) | |
tree | 5b6bfb599e283b7b8dbc6f79e1e8472edca6f95b /mediagoblin/tools/request.py | |
parent | ee9956c3de39854f32207789b223f09eb7bbb20b (diff) | |
download | mediagoblin-967df5eff0c00fe7cd860ebfb297ee1f2e0bcdaf.tar.lz mediagoblin-967df5eff0c00fe7cd860ebfb297ee1f2e0bcdaf.tar.xz mediagoblin-967df5eff0c00fe7cd860ebfb297ee1f2e0bcdaf.zip |
Require uploader privileges to upload media to API
Diffstat (limited to 'mediagoblin/tools/request.py')
-rw-r--r-- | mediagoblin/tools/request.py | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py index 2de0b32f..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 @@ -46,7 +60,7 @@ def setup_user_in_request(request): def decode_request(request): """ Decodes a request based on MIME-Type """ data = request.data - + if request.content_type == json_encoded: data = json.loads(data) elif request.content_type == form_encoded or request.content_type == "": |