- initial work on a mod_python based web frontend
- add logs to svn:ignore - use psycopg2 in backend git-svn-id: file:///home/www/usr01/svn/gnuviechadmin/gnuviech.info/gnuviechadmin/trunk@198 a67ec6bc-e5d5-0310-a910-815c51eb3124
This commit is contained in:
parent
572b42a706
commit
bf7992a600
6 changed files with 56 additions and 5 deletions
|
@ -6,7 +6,7 @@
|
||||||
from SessionManager import *
|
from SessionManager import *
|
||||||
from DomainManager import *
|
from DomainManager import *
|
||||||
import Settings
|
import Settings
|
||||||
import psycopg
|
import psycopg2
|
||||||
|
|
||||||
class ServiceFacade:
|
class ServiceFacade:
|
||||||
"""
|
"""
|
||||||
|
@ -16,7 +16,7 @@ class ServiceFacade:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
connstr = 'host=%(dbhost)s user=%(dbuser)s ' + \
|
connstr = 'host=%(dbhost)s user=%(dbuser)s ' + \
|
||||||
'password=%(dbpassword)s dbname=%(dbname)s'
|
'password=%(dbpassword)s dbname=%(dbname)s'
|
||||||
dbconn = psycopg.connect(connstr % Settings.DBSETTINGS)
|
dbconn = psycopg2.connect(connstr % Settings.DBSETTINGS)
|
||||||
self.sessionManager = SessionManager(dbconn)
|
self.sessionManager = SessionManager(dbconn)
|
||||||
self.domainManager = DomainManager(dbconn)
|
self.domainManager = DomainManager(dbconn)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ Session manager class for gnuviech-admin tool backend
|
||||||
$Id$
|
$Id$
|
||||||
"""
|
"""
|
||||||
import Settings
|
import Settings
|
||||||
import os, sha, time, logging, psycopg
|
import os, sha, time, logging, psycopg2
|
||||||
from threading import Timer
|
from threading import Timer
|
||||||
|
|
||||||
SESSIONTIMEOUT=120 # 2 minutes
|
SESSIONTIMEOUT=120 # 2 minutes
|
||||||
|
@ -50,8 +50,8 @@ class SessionManager:
|
||||||
def newSession(self, login, password):
|
def newSession(self, login, password):
|
||||||
cr = self._dbconn.cursor()
|
cr = self._dbconn.cursor()
|
||||||
cr.execute('SELECT * FROM sysuser WHERE name=%(login)s AND md5pass=md5(%(password)s)' %
|
cr.execute('SELECT * FROM sysuser WHERE name=%(login)s AND md5pass=md5(%(password)s)' %
|
||||||
{'login': psycopg.QuotedString(login),
|
{'login': psycopg2.QuotedString(login),
|
||||||
'password' : psycopg.QuotedString(password)})
|
'password' : psycopg2.QuotedString(password)})
|
||||||
self._dbconn.commit()
|
self._dbconn.commit()
|
||||||
result = cr.fetchall()
|
result = cr.fetchall()
|
||||||
if cr.rowcount == 1:
|
if cr.rowcount == 1:
|
||||||
|
|
0
frontend/web/gnuviechadmin/__init__.py
Normal file
0
frontend/web/gnuviechadmin/__init__.py
Normal file
0
frontend/web/gnuviechadmin/frontend/__init__.py
Normal file
0
frontend/web/gnuviechadmin/frontend/__init__.py
Normal file
42
frontend/web/gnuviechadmin/frontend/web.py
Normal file
42
frontend/web/gnuviechadmin/frontend/web.py
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
from mod_python import apache, Session
|
||||||
|
from genshi.template import TemplateLoader, TemplateNotFound
|
||||||
|
from genshi import ParseError
|
||||||
|
|
||||||
|
def findtemplate(uri):
|
||||||
|
templates = {"/" : "index.xml"}
|
||||||
|
if uri in templates:
|
||||||
|
return templates[uri]
|
||||||
|
return None
|
||||||
|
|
||||||
|
def handler(req):
|
||||||
|
session = Session.Session(req)
|
||||||
|
try:
|
||||||
|
session['hits'] += 1
|
||||||
|
except:
|
||||||
|
session['hits'] = 1
|
||||||
|
|
||||||
|
session.save()
|
||||||
|
|
||||||
|
template = findtemplate(req.uri)
|
||||||
|
if template:
|
||||||
|
|
||||||
|
loader = TemplateLoader([req.document_root()])
|
||||||
|
try:
|
||||||
|
req.content_type = "text/html; charset=UTF-8"
|
||||||
|
tmpl = loader.load(template)
|
||||||
|
stream = tmpl.generate(title='Hello World: Reloaded',
|
||||||
|
hits=session['hits'])
|
||||||
|
pagebuffer = stream.render('xhtml')
|
||||||
|
except TemplateNotFound, tnf:
|
||||||
|
req.content_type = "text/plain; charset=UTF-8"
|
||||||
|
pagebuffer = str(tnf)
|
||||||
|
except ParseError, pe:
|
||||||
|
req.content_type = "text/plain; charset=UTF-8"
|
||||||
|
pagebuffer = str(pe)
|
||||||
|
|
||||||
|
#pagebuffer = "Hits: %d\n" % session['hits']
|
||||||
|
#pagebuffer += "Yippieh: I found %s -> %s!" % (req.uri, template)
|
||||||
|
|
||||||
|
req.write(pagebuffer)
|
||||||
|
return (apache.OK)
|
||||||
|
return (apache.HTTP_NOT_FOUND)
|
9
frontend/web/index.xml
Normal file
9
frontend/web/index.xml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>$title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>$title</h1>
|
||||||
|
<p>Hits: $hits</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in a new issue