Require admin when accessing REST pages
authorRob Crittenden <rcritten@redhat.com>
Mon, 2 Mar 2015 19:47:22 +0000 (14:47 -0500)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Tue, 3 Mar 2015 02:44:38 +0000 (03:44 +0100)
Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
ipsilon/providers/common.py
ipsilon/providers/saml2/rest.py

index dff302d..169fddc 100644 (file)
@@ -19,6 +19,7 @@ from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
 from ipsilon.util.plugin import PluginObject, PluginConfig
 from ipsilon.util.page import Page
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
 from ipsilon.util.plugin import PluginObject, PluginConfig
 from ipsilon.util.page import Page
+from ipsilon.util.page import admin_protect
 from ipsilon.rest.common import RestPage
 import cherrypy
 
 from ipsilon.rest.common import RestPage
 import cherrypy
 
@@ -163,15 +164,19 @@ class RestProviderBase(RestPage):
         self.plugin_name = config.name
         self.cfg = config
 
         self.plugin_name = config.name
         self.cfg = config
 
+    @admin_protect
     def GET(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
     def GET(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def POST(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
     def POST(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def DELETE(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
     def DELETE(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
+    @admin_protect
     def PUT(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
     def PUT(self, *args, **kwargs):
         raise cherrypy.HTTPError(501)
 
index 6ad8ae6..730b374 100644 (file)
@@ -6,6 +6,7 @@ from ipsilon.providers.common import FACILITY
 from ipsilon.rest.common import rest_error, jsonout
 from ipsilon.providers.saml2.provider import ServiceProviderCreator
 from ipsilon.providers.saml2.provider import InvalidProviderId
 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
 
 
 from lasso import ServerAddProviderFailedError
 
 
@@ -77,10 +78,12 @@ class SPS(RestProviderBase):
         return dict(result=results)
 
     @jsonout
         return dict(result=results)
 
     @jsonout
+    @admin_protect
     def GET(self, *args, **kwargs):
         return self._get_sp(*args, **kwargs)
 
     @jsonout
     def GET(self, *args, **kwargs):
         return self._get_sp(*args, **kwargs)
 
     @jsonout
+    @admin_protect
     def POST(self, *args, **kwargs):
         cherrypy.response.status = 201
 
     def POST(self, *args, **kwargs):
         cherrypy.response.status = 201