diff options
author | Simo Sorce <simo@redhat.com> | 2014-05-29 09:38:18 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-06-04 10:26:29 -0400 |
commit | 5c0898a8e0fa977911fde7c24123f834e4792948 (patch) | |
tree | c63f2662394f3d0c5f9fc383ac64d1fe7784cf18 /ipsilon/providers | |
parent | 57152208ec0aabab7923a414a118fe0ce1cdb4ce (diff) | |
download | ipsilon-5c0898a8e0fa977911fde7c24123f834e4792948.tar.gz ipsilon-5c0898a8e0fa977911fde7c24123f834e4792948.tar.xz ipsilon-5c0898a8e0fa977911fde7c24123f834e4792948.zip |
Add optional field to allow pasting the metadata
This way a user can avoid copying the metadata file arund but paste
the content straight from a terminal window.
Signed-off-by: Simo Sorce <simo@redhat.com>
Diffstat (limited to 'ipsilon/providers')
-rwxr-xr-x | ipsilon/providers/saml2/admin.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/ipsilon/providers/saml2/admin.py b/ipsilon/providers/saml2/admin.py index 552d655..5d97126 100755 --- a/ipsilon/providers/saml2/admin.py +++ b/ipsilon/providers/saml2/admin.py @@ -23,6 +23,7 @@ from ipsilon.providers.saml2.provider import ServiceProvider from ipsilon.providers.saml2.provider import ServiceProviderCreator from ipsilon.providers.saml2.provider import InvalidProviderId import re +import requests VALID_IN_NAME = r'[^\ a-zA-Z0-9]' @@ -73,11 +74,25 @@ class NewSPAdminPage(Page): return self.form_new(message, message_type) name = value - elif key == 'meta': + elif key == 'metatext': + if len(value) > 0: + meta = value + elif key == 'metafile': if hasattr(value, 'content_type'): meta = value.fullvalue() else: self._debug("Invalid format for 'meta'") + elif key == 'metaurl': + if len(value) > 0: + try: + r = requests.get(value) + r.raise_for_status() + meta = r.content + except Exception, e: # pylint: disable=broad-except + self._debug("Failed to fetch metadata: " + repr(e)) + message = "Failed to fetch metadata: " + repr(e) + message_type = "error" + return self.form_new(message, message_type) if name and meta: try: |