1 from zope.interface import implements
2 import os
3 from webut.skin import iskin
4 from ldaptor.protocols.ldap import ldapsyntax
5 from ldaptor.apps.webui.uriquote import uriUnquote
6 from nevow import rend, loaders, url, inevow
7 from ldaptor.apps.webui.i18n import _
8 from ldaptor.apps.webui import i18n
9
10 from ldaptor.apps.webui.search import IMove
11
12 -class MovePage(rend.Page):
13 implements(iskin.ISkinnable)
14
15 title = _('Ldaptor Move Page')
16
17 addSlash = True
18 docFactory = loaders.xmlfile(
19 'move.xhtml',
20 templateDir=os.path.split(os.path.abspath(__file__))[0])
21
22 - def render_url(self, ctx, data):
23 u = url.URL.fromContext(ctx)
24 return ctx.tag(href=u.parentdir().child('search'))
25
26 - def childFactory(self, context, name):
27 dn = uriUnquote(name)
28 session = inevow.ISession(context)
29 userEntry = session.getLoggedInRoot().loggedIn
30
31 move = session.getComponent(IMove)
32 if move is None:
33 move = []
34 session.setComponent(IMove, move)
35
36 e = ldapsyntax.LDAPEntryWithClient(dn=dn,
37 client=userEntry.client)
38 move.append(e)
39 u = url.URL.fromContext(context).sibling('search')
40 return u
41
42 render_i18n = i18n.render()
43