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
10 implements(portal.IRealm)
11
13 self.args = args
14 self.kwargs = kwargs
15
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
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