# along with this program. If not, see <http://www.gnu.org/licenses/>.
import cherrypy
-from ipsilon.util.page import Page
+from ipsilon.admin.common import AdminPage
from ipsilon.providers.saml2.provider import ServiceProvider
from ipsilon.providers.saml2.provider import ServiceProviderCreator
from ipsilon.providers.saml2.provider import InvalidProviderId
VALID_IN_NAME = r'[^\ a-zA-Z0-9]'
-class NewSPAdminPage(Page):
+class NewSPAdminPage(AdminPage):
def __init__(self, site, parent):
super(NewSPAdminPage, self).__init__(site, form=True)
pass
-class SPAdminPage(Page):
+class SPAdminPage(AdminPage):
def __init__(self, sp, site, parent):
super(SPAdminPage, self).__init__(site, form=True)
self.parent.del_sp(self.sp.name)
self.sp.permanently_delete()
return self.parent.root()
- delete.exposed = True
+ delete.public_function = True
-class AdminPage(Page):
+class Saml2AdminPage(AdminPage):
def __init__(self, site, config):
- super(AdminPage, self).__init__(site)
+ super(Saml2AdminPage, self).__init__(site)
self.name = 'admin'
self.cfg = config
self.providers = []
self.menu = []
self.url = None
- self.sp = Page(self._site)
+ self.sp = AdminPage(self._site)
def add_sp(self, name, sp):
page = SPAdminPage(sp, self._site, self)
except Exception, e: # pylint: disable=broad-except
self._debug("Failed to remove provider %s: %s" % (name, str(e)))
+ def add_sps(self):
+ if self.cfg.idp:
+ for p in self.cfg.idp.get_providers():
+ try:
+ sp = ServiceProvider(self.cfg, p)
+ self.del_sp(sp.name)
+ self.add_sp(sp.name, sp)
+ except Exception, e: # pylint: disable=broad-except
+ self._debug("Failed to find provider %s: %s" % (p, str(e)))
+
def mount(self, page):
self.menu = page.menu
self.url = '%s/%s' % (page.url, self.name)
- for p in self.cfg.idp.get_providers():
- try:
- sp = ServiceProvider(self.cfg, p)
- self.add_sp(sp.name, sp)
- except Exception, e: # pylint: disable=broad-except
- self._debug("Failed to find provider %s: %s" % (p, str(e)))
+ self.add_sps()
self.add_subtree('new', NewSPAdminPage(self._site, self))
page.add_subtree(self.name, self)