]> andersk Git - sql.git/blobdiff - lib/python/mitsql/interface/handler.py
mako SQL interface
[sql.git] / lib / python / mitsql / interface / handler.py
index 14eac9e2439d19b30fc5a22dafb91aac02db121a..0d75cfd614f168477fd0fcf675f72fa999ba1cf9 100644 (file)
@@ -1,48 +1,78 @@
 import mitsql
-from cheetah import templates
+
 import cherrypy
+mako = cherrypy.tools.mako
 
 from pprint import pformat
 
-def _500(*argv, **kw):
-    s_exc = cherrypy._cperror.format_exc()
-    mitsql.logging.error(s_exc)
-    return templates.common.shell(title='%s (CherryPy %s)' % (kw.get('status'), kw.get('version')),
-                                  content=('<p>%s</p>' + (2*'<div><pre>%s</pre></div>'))
-                                  % (kw.get('message'), kw.get('traceback'),
-                                     _phtml(dict(filter(lambda x: not x[0][:2] == '__',
-                                                        cherrypy.request.__dict__.items())))))
+#def _500(*argv, **kw):
+#    s_exc = cherrypy._cperror.format_exc()
+#    mitsql.logging.error(s_exc)
+#    return templates.common.shell(title='%s (CherryPy %s)' % (kw.get('status'), kw.get('version')),
+#                                  content=('<p>%s</p>' + (2*'<div><pre>%s</pre></div>'))
+#                                  % (kw.get('message'), kw.get('traceback'),
+#                                     _phtml(dict(filter(lambda x: not x[0][:2] == '__',
+#                                                        cherrypy.request.__dict__.items())))))
+
+def _before_request_body():
+    if not cherrypy.request.login is None:
+        if cherrypy.request.login.endswith('@MIT.EDU'):
+            cherrypy.request.login = cherrypy.request.login[:-8]
+        else:
+            cherrypy.request.login = None
+
+from databases import mysql, pgsql
 
 class Root(object):
-    class Error(object):
-        @cherrypy.expose
-        def _404(*argv, **kw):
-            return templates.common._404()
-        def _500(*argv, **kw):
-            return _500(*argv, **kw)
-    error = Error()
+    _cp_config = {
+        'hooks.before_request_body': _before_request_body,
+        'tools.mako.collection_size': 500,
+        'tools.mako.directories': mitsql._base+'/www/templates',
+    }
+    #class Error(object):
+    #    def _404(*argv, **kw):
+    #        return templates.common._404()
+    #    def _500(*argv, **kw):
+    #        return _500(*argv, **kw)
+    #error = Error()
     
-    class DB(object):
-        def list(*argv, **kw):
-            r = {'db_list': [],
-                 'size_tot': '1M',
-                 'size_max': '100M',
-                 'user': {
-                 'db_prefix': 'presbrey+'
-                 }}
-            return templates.main.db_list(**r)
-        list.exposed = True
-    db = DB()
-
+    @cherrypy.expose
     def test(self, *argv, **kw):
         cherrypy.response.headers['Content-type'] = 'text/plain'
         return pformat(dict(filter(lambda x: not x[0][:2] == '__', cherrypy.request.__dict__.items())))
-    test.exposed = True
 
+    @cherrypy.expose
+    @mako(filename='index')
     def index(self, *argv, **kw):
-        return templates.main.index()
-    index.exposed = True
+        return {
+            'title': 'SQL Service',
+            'login': cherrypy.request.login,
+        }
     
+    @cherrypy.expose
+    @mako(filename='passwd')
     def passwd(self, *argv, **kw):
-        return templates.main.passwd()
-    passwd.exposed = True
\ No newline at end of file
+        return {
+            'title': 'Change Passwords',
+            'login': cherrypy.request.login,
+        }
+
+    @cherrypy.expose
+    @mako(filename='contact')
+    def contact(self, *argv, **kw):
+        return {
+            'title': 'Contact',
+        }
+
+    @cherrypy.expose
+    @mako(filename='database')
+    def database(self, *argv, **kw):
+        return {
+            'title': 'Databases',
+            'login': cherrypy.request.login,
+            'mysql': mysql.list(cherrypy.request.login),
+            'pgsql': pgsql.list(cherrypy.request.login),
+        }
+
+#Root._cp_config['error_page.404'] = Root.error._404
+#Root._cp_config['error_page.500'] = Root.error._500
This page took 0.0311 seconds and 4 git commands to generate.