diff options
author | xray7224 <jessica@megworld.co.uk> | 2013-07-11 17:58:58 +0100 |
---|---|---|
committer | xray7224 <jessica@megworld.co.uk> | 2013-07-11 18:21:43 +0100 |
commit | 2b60a56cbec44f789ee2efe71294979d7784515c (patch) | |
tree | cf2476a7301fa71d18385ace757c2633cf8d7f82 /mediagoblin/tools | |
parent | 405aa45adc14d3c67a120618ecc0ae792f5881de (diff) | |
download | mediagoblin-2b60a56cbec44f789ee2efe71294979d7784515c.tar.lz mediagoblin-2b60a56cbec44f789ee2efe71294979d7784515c.tar.xz mediagoblin-2b60a56cbec44f789ee2efe71294979d7784515c.zip |
Finishes most of oauth, just decorator to complete
Diffstat (limited to 'mediagoblin/tools')
-rw-r--r-- | mediagoblin/tools/request.py | 10 | ||||
-rw-r--r-- | mediagoblin/tools/response.py | 19 |
2 files changed, 29 insertions, 0 deletions
diff --git a/mediagoblin/tools/request.py b/mediagoblin/tools/request.py index 2c9e609d..0c0fc557 100644 --- a/mediagoblin/tools/request.py +++ b/mediagoblin/tools/request.py @@ -14,6 +14,7 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +import re import json import logging from mediagoblin.db.models import User @@ -25,6 +26,9 @@ _log = logging.getLogger(__name__) form_encoded = "application/x-www-form-urlencoded" json_encoded = "application/json" +# Regex for Authorization header +auth_header_re = re.compile('(\w+)[:=] ?"?(\w+)"?') + def setup_user_in_request(request): """ Examine a request and tack on a request.user parameter if that's @@ -53,3 +57,9 @@ def decode_request(request): else: data = "" return data + +def decode_authorization_header(header): + """ Decodes a HTTP Authorization Header to python dictionary """ + authorization = header.get("Authorization", "") + tokens = dict(auth_header_re.findall(authorization)) + return tokens diff --git a/mediagoblin/tools/response.py b/mediagoblin/tools/response.py index db8fc388..b0401e08 100644 --- a/mediagoblin/tools/response.py +++ b/mediagoblin/tools/response.py @@ -138,3 +138,22 @@ def json_response(serializable, _disable_cors=False, *args, **kw): response.headers.set(key, value) return response + +def form_response(data, *args, **kwargs): + """ + Responds using application/x-www-form-urlencoded and returns a werkzeug + Response object with the data argument as the body + and 'application/x-www-form-urlencoded' as the Content-Type. + + Any extra arguments and keyword arguments are passed to the + Response.__init__ method. + """ + + response = wz_Response( + data, + content_type="application/x-www-form-urlencoded", + *args, + **kwargs + ) + + return response |