diff options
author | Christopher Allan Webber <cwebber@dustycloud.org> | 2013-08-15 10:34:20 -0500 |
---|---|---|
committer | Christopher Allan Webber <cwebber@dustycloud.org> | 2013-08-15 10:34:20 -0500 |
commit | 4834ef8ec21e985290f5e0015ae9452070956170 (patch) | |
tree | 365b6043f4a18a40a01d5aa13700ab98ee031613 /mediagoblin/oauth/tools | |
parent | 29cd702e4776811a96c3c088bd9ba8fc6f9176f0 (diff) | |
parent | 89909bd6921efb4ec3296c908c5d57eba35ebd21 (diff) | |
download | mediagoblin-4834ef8ec21e985290f5e0015ae9452070956170.tar.lz mediagoblin-4834ef8ec21e985290f5e0015ae9452070956170.tar.xz mediagoblin-4834ef8ec21e985290f5e0015ae9452070956170.zip |
Merge remote-tracking branch 'refs/remotes/tsyesika/master'
New oauth tools! Heck yeah!
Diffstat (limited to 'mediagoblin/oauth/tools')
-rw-r--r-- | mediagoblin/oauth/tools/__init__.py | 0 | ||||
-rw-r--r-- | mediagoblin/oauth/tools/forms.py | 25 | ||||
-rw-r--r-- | mediagoblin/oauth/tools/request.py | 35 |
3 files changed, 60 insertions, 0 deletions
diff --git a/mediagoblin/oauth/tools/__init__.py b/mediagoblin/oauth/tools/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/mediagoblin/oauth/tools/__init__.py diff --git a/mediagoblin/oauth/tools/forms.py b/mediagoblin/oauth/tools/forms.py new file mode 100644 index 00000000..e3eb3298 --- /dev/null +++ b/mediagoblin/oauth/tools/forms.py @@ -0,0 +1,25 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# 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/>. + +class WTFormData(dict): + """ + Provides a WTForm usable dictionary + """ + def getlist(self, key): + v = self[key] + if not isinstance(v, (list, tuple)): + v = [v] + return v diff --git a/mediagoblin/oauth/tools/request.py b/mediagoblin/oauth/tools/request.py new file mode 100644 index 00000000..5ce2da77 --- /dev/null +++ b/mediagoblin/oauth/tools/request.py @@ -0,0 +1,35 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# 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/>. + +def decode_authorization_header(header): + """ Decodes a HTTP Authorization Header to python dictionary """ + authorization = header.get("Authorization", "").lstrip(" ").lstrip("OAuth") + tokens = {} + + for param in authorization.split(","): + try: + key, value = param.split("=") + except ValueError: + continue + + key = key.lstrip(" ") + value = value.lstrip(" ").lstrip('"') + value = value.rstrip(" ").rstrip('"') + + tokens[key] = value + + return tokens + |