cli instead of web

This commit is contained in:
who
2007-11-12 14:52:41 +01:00
parent 261b60d003
commit 4686523707
14 changed files with 75 additions and 254 deletions

View File

@ -18,8 +18,10 @@ TEMPLATE_DIR='./templates'
class YaDynWebApp(object):
@classmethod
def setSessionContainer(cls, sessionContainer):
def setClassParams(cls, sessionContainer, adminPwd, entries):
cls.sessionContainer = sessionContainer
cls.adminPwd = adminPwd
cls.entries = entries
def __init__(self, sid):
self.buf = StringIO.StringIO()
@ -88,7 +90,7 @@ class YaDynWebApp(object):
def processAction(self):
if self.params.action == "Login":
authTuple = getAuthTuple(self.params.username, self.params.password)
authTuple = self.getAuthTuple(self.params.username, self.params.password)
if authTuple:
self.params = Params({})
self.sid = str(uuid.uuid1())
@ -131,13 +133,16 @@ class YaDynWebApp(object):
return self.buf.getvalue()
def getAuthTuple(self, username, password):
if username == "admin" and password == self.adminPwd:
return {'username': username, 'password': password, 'role': 'admin'}
elif self.entries.has_key(username) and self.entries[username].sharedSecret == password:
return {'username': username, 'password': password, 'role': 'user'}
class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
server_version = "YaDynWebAppHTTP/1.0"
@classmethod
def setParams(cls, entries):
cls.entries = entries
def log_message(self, format, *args):
Logger.log(format%args)
@ -206,17 +211,18 @@ class MyServer(SocketServer.ThreadingTCPServer):
class WebReceiver(threading.Thread):
def __init__(self, webAddr, entries):
def __init__(self, webAddr, entries, adminPwd):
threading.Thread.__init__(self)
self.webAddr = webAddr
MyHandler.setParams(entries)
self.entries = entries
self.adminPwd = adminPwd
self.setDaemon(True)
def run(self):
self.sessionContainer = SessionContainer(60, 600)
self.sessionContainer.setDaemon(True)
self.sessionContainer.start()
YaDynWebApp.setSessionContainer(self.sessionContainer)
YaDynWebApp.setClassParams(self.sessionContainer, self.adminPwd, self.entries)
MyServer(self.webAddr, MyHandler).serve_forever()