super(self.__class__,self).__init__()
connect()
self._cp_config['tools.require_login.on'] = True
+ self._cp_config['tools.mako.imports'] = ['from invirt.config import structs as config',
+ 'from invirt import database']
+
@cherrypy.expose
@cherrypy.tools.mako(filename="/list.mako")
- def list(self, username):
+ def list(self):
"""Handler for list requests."""
checkpoint.checkpoint('Getting list dict')
- d = getListDict(username, state)
+ d = getListDict(cherrypy.request.login, cherrypy.request.state)
checkpoint.checkpoint('Got list dict')
return d
index=list
@cherrypy.expose
@cherrypy.tools.mako(filename="/helloworld.mako")
- def helloworld(self):
- return {}
- return "Hello world!\nYour request: "+repr(dir(cherrypy.request))
+ def helloworld(self, **kwargs):
+ return {'request': cherrypy.request, 'kwargs': kwargs}
helloworld._cp_config['tools.require_login.on'] = False
def pathSplit(path):
checkpoint = Checkpoint()
-def jquote(string):
- return "'" + string.replace('\\', '\\\\').replace("'", "\\'").replace('\n', '\\n') + "'"
-
-def helppopup(subj):
- """Return HTML code for a (?) link to a specified help topic"""
- return ('<span class="helplink"><a href="help?' +
- cgi.escape(urllib.urlencode(dict(subject=subj, simple='true')))
- +'" target="_blank" ' +
- 'onclick="return helppopup(' + cgi.escape(jquote(subj)) + ')">(?)</a></span>')
-
def makeErrorPre(old, addition):
if addition is None:
return
Template.database = database
Template.config = config
-Template.helppopup = staticmethod(helppopup)
Template.err = None
class JsonDict:
d['details'] = details
return templates.error(searchList=[d])
-def getUser(environ):
- """Return the current user based on the SSL environment variables"""
- user = environ.get('REMOTE_USER')
- if user is None:
- return
-
- if environ.get('AUTH_TYPE') == 'Negotiate':
- # Convert the krb5 principal into a krb4 username
- if not user.endswith('@%s' % config.kerberos.realm):
- return
- else:
- return user.split('@')[0].replace('/', '.')
- else:
- return user
-
def handler(username, state, path, fields):
operation, path = pathSplit(path)
if not operation: