Package ldaptor :: Package apps :: Package webui :: Module main
[hide private]
[frames] | no frames]

Source Code for Module ldaptor.apps.webui.main

 1  from zope.interface import implements 
 2  from twisted.cred import portal, checkers, credentials 
 3  from nevow import guard, inevow 
 4  from webut.skin import skin 
 5  from ldaptor.config import LDAPConfig 
 6  from ldaptor.apps.webui import gadget, defskin 
 7  from ldaptor.checkers import LDAPBindingChecker 
 8   
9 -class TODOGetRidOfMeRealm:
10 implements(portal.IRealm) 11
12 - def __init__(self, *args, **kwargs):
13 self.args = args 14 self.kwargs = kwargs
15
16 - def requestAvatar(self, avatarId, mind, *interfaces):
17 if inevow.IResource not in interfaces: 18 raise NotImplementedError, "no interface" 19 20 if avatarId is checkers.ANONYMOUS: 21 resource = gadget.LdaptorWebUIGadget(None, *self.args, **self.kwargs) 22 resource.realm = self 23 return (inevow.IResource, 24 resource, 25 lambda: None) 26 else: 27 resource = gadget.LdaptorWebUIGadget(avatarId, *self.args, **self.kwargs) 28 resource.realm = self 29 return (inevow.IResource, 30 resource, 31 lambda: None)
32
33 -def getResource(cfg=None, skinFactory=None):
34 """Get a resource for the Ldaptor-webui app.""" 35 36 if cfg is None: 37 cfg = LDAPConfig() 38 39 checker = LDAPBindingChecker(cfg) 40 realm = TODOGetRidOfMeRealm(config=cfg) 41 porta = portal.Portal(realm) 42 porta.registerChecker(checkers.AllowAnonymousAccess(), credentials.IAnonymous) 43 porta.registerChecker(checker) 44 45 mainResource = guard.SessionWrapper(porta) 46 47 if skinFactory is None: 48 skinFactory = defskin.DefaultSkin 49 50 return skin.Skinner(skinFactory, mainResource)
51