Add auto-auth requirement to all admin pages
[cascardo/ipsilon.git] / ipsilon / admin / login.py
index bb79f90..4645917 100755 (executable)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import cherrypy
-from ipsilon.util.page import Page
 from ipsilon.util.page import admin_protect
 from ipsilon.util.plugin import PluginObject
 from ipsilon.admin.common import AdminPluginPage
+from ipsilon.admin.common import AdminPage
 from ipsilon.login.common import FACILITY
 
 
@@ -34,7 +34,7 @@ def save_enabled_plugins(names):
     po.save_plugin_config(FACILITY)
 
 
-class LoginPluginsOrder(Page):
+class LoginPluginsOrder(AdminPage):
 
     def __init__(self, site, parent):
         super(LoginPluginsOrder, self).__init__(site, form=True)
@@ -116,7 +116,7 @@ class LoginPluginsOrder(Page):
                               options=opts)
 
 
-class LoginPlugins(Page):
+class LoginPlugins(AdminPage):
     def __init__(self, site, parent):
         super(LoginPlugins, self).__init__(site)
         self._master = parent
@@ -147,6 +147,7 @@ class LoginPlugins(Page):
     def root(self, *args, **kwargs):
         return self.root_with_msg()
 
+    @admin_protect
     def enable(self, plugin):
         msg = None
         plugins = self._site[FACILITY]
@@ -159,8 +160,9 @@ class LoginPlugins(Page):
             save_enabled_plugins(list(x.name for x in plugins['enabled']))
             msg = "Plugin %s enabled" % obj.name
         return self.root_with_msg(msg, "success")
-    enable.exposed = True
+    enable.public_function = True
 
+    @admin_protect
     def disable(self, plugin):
         msg = None
         plugins = self._site[FACILITY]
@@ -173,4 +175,4 @@ class LoginPlugins(Page):
             save_enabled_plugins(list(x.name for x in plugins['enabled']))
             msg = "Plugin %s disabled" % obj.name
         return self.root_with_msg(msg, "success")
-    disable.exposed = True
+    disable.public_function = True