# vi: encoding=utf-8 ts=8 sts=4 sw=4 et import Cookie, time, md5 UserNotLoggedIn="UserNotLoggedIn" class User: def __init__(self, cookies, options): self.loggedin=False if (cookies.has_key('ftpsessid') and self.checksession(cookies['ftpsessid'])): self.loggedin=True if options.has_key('action'): if options['action'] == 'register': self.checkloginpass(options) elif options['action'] == 'logout': self.logout() def checkloginpass(self, options): if not options.has_key('login') or not options.has_key('pass'): return f=open('../../passwd', 'r') for line in f.readlines(): list=line.strip().split(':') if (list[0]==options['login'] and list[1]==md5.new(options['pass']).hexdigest()): self.loggedin=True self.login=list[0] C = Cookie.SimpleCookie() cookiestring=md5.new(list[0]+`time.time()`).hexdigest() C['ftpsessid']=cookiestring #C['ftpsessid']['expires']=time.strftime( #"%a, %d-%b-%y %H:%M:%S GMT", #time.gmtime(time.time()+86400)) print C break f.close() if self.loggedin: cookies=self.loadcookies() cookies[cookiestring]=options['login'] self.writecookies(cookies) def checksession(self, ftpsessid): cookies=self.loadcookies() if cookies.has_key(ftpsessid): self.login=cookies[ftpsessid] self.ftpsessid=ftpsessid return True def loadcookies(self): f=open('../../cookies', 'r') cookies={} for line in f.readlines(): list=line.strip().split(':') cookies[list[0]]=list[1] f.close() return cookies def writecookies(self, cookies): f=open('../../cookies', 'w+') for key in cookies.keys(): f.write("%s:%s\n" % (key, cookies[key])) f.close() def logout(self): if self.loggedin: cookies=self.loadcookies() if cookies.has_key(self.ftpsessid): del cookies[self.ftpsessid] self.writecookies(cookies) self.loggedin=False C = Cookie.SimpleCookie() C['ftpsessid']='' C['ftpsessid']['expires']=time.strftime("%a, %d-%b-%y %H:%M:%S GMT", time.gmtime(time.time()-31536000)) print C