-# Copyright (C) 2015 Ipsilon project Contributors, for licensee see COPYING
+# Copyright (C) 2015 Ipsilon project Contributors, for license see COPYING
import cherrypy
from ipsilon.providers.common import RestProviderBase
from ipsilon.rest.common import rest_error, jsonout
from ipsilon.providers.saml2.provider import ServiceProviderCreator
from ipsilon.providers.saml2.provider import InvalidProviderId
+from ipsilon.util.page import admin_protect
from lasso import ServerAddProviderFailedError
else:
data = idp.get_data()
- for idval in data.keys():
+ for idval in data:
result = dict(provider=data[idval].get('name'),
metadata=data[idval].get('metadata'),)
results.append(result)
return dict(result=results)
@jsonout
+ @admin_protect
def GET(self, *args, **kwargs):
return self._get_sp(*args, **kwargs)
@jsonout
+ @admin_protect
def POST(self, *args, **kwargs):
cherrypy.response.status = 201
if len(args) != 1:
return rest_error(400, 'Invalid arguments. Found %d'
' there should be one.')
+ self.debug('REST POST %s' % kwargs)
name = args[0]
metadata = kwargs.get('metadata')
+ description = kwargs.get('description', '')
+ visible = kwargs.get('visible', True)
+ imagefile = kwargs.get('image', None)
+ splink = kwargs.get('splink', '')
obj = self._site[FACILITY].available[self.parent.plugin_name]
try:
spc = ServiceProviderCreator(obj)
- sp = spc.create_from_buffer(name, metadata)
+ sp = spc.create_from_buffer(name, metadata, description,
+ visible, imagefile, splink)
except (InvalidProviderId, ServerAddProviderFailedError) as e:
- self._debug(repr(e))
+ self.debug(repr(e))
return rest_error(400, str(e))
except Exception, e: # pylint: disable=broad-except
- self._debug(repr(e))
+ self.debug(repr(e))
return rest_error(500, "Failed to create Service Provider")
obj.admin.add_sp(name, sp)