summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-05-29 09:38:18 -0400
committerSimo Sorce <simo@redhat.com>2014-06-04 10:26:29 -0400
commit5c0898a8e0fa977911fde7c24123f834e4792948 (patch)
treec63f2662394f3d0c5f9fc383ac64d1fe7784cf18 /ipsilon/providers
parent57152208ec0aabab7923a414a118fe0ce1cdb4ce (diff)
downloadipsilon-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-xipsilon/providers/saml2/admin.py17
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: