aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/decorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/decorators.py')
-rw-r--r--mediagoblin/decorators.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/mediagoblin/decorators.py b/mediagoblin/decorators.py
index 8515d091..90edf96b 100644
--- a/mediagoblin/decorators.py
+++ b/mediagoblin/decorators.py
@@ -22,7 +22,7 @@ from oauthlib.oauth1 import ResourceEndpoint
from mediagoblin import mg_globals as mgg
from mediagoblin import messages
-from mediagoblin.db.models import MediaEntry, User, MediaComment
+from mediagoblin.db.models import MediaEntry, User, MediaComment, AccessToken
from mediagoblin.tools.response import (
redirect, render_404,
render_user_banned, json_response)
@@ -401,10 +401,10 @@ def oauth_required(controller):
request_validator = GMGRequestValidator()
resource_endpoint = ResourceEndpoint(request_validator)
- valid, request = resource_endpoint.validate_protected_resource_request(
+ valid, r = resource_endpoint.validate_protected_resource_request(
uri=request.url,
http_method=request.method,
- body=request.get_data(),
+ body=request.data,
headers=dict(request.headers),
)
@@ -412,6 +412,13 @@ def oauth_required(controller):
error = "Invalid oauth prarameter."
return json_response({"error": error}, status=400)
+ # Fill user if not already
+ token = authorization[u"oauth_token"]
+ access_token = AccessToken.query.filter_by(token=token).first()
+ if access_token is not None and request.user is None:
+ user_id = access_token.user
+ request.user = User.query.filter_by(id=user_id).first()
+
return controller(request, *args, **kwargs)
return wrapper