1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
3 import Cookie, time, md5
5 UserNotLoggedIn="UserNotLoggedIn"
8 def __init__(self, cookies, options):
10 if (cookies.has_key('ftpsessid') and
11 self.checksession(cookies['ftpsessid'])):
14 if options.has_key('action'):
15 if options['action'] == 'register':
16 self.checkloginpass(options)
17 elif options['action'] == 'logout':
20 def checkloginpass(self, options):
21 if not options.has_key('login') or not options.has_key('pass'):
23 f=open('../../passwd', 'r')
24 for line in f.readlines():
25 list=line.strip().split(':')
26 if (list[0]==options['login'] and
27 list[1]==md5.new(options['pass']).hexdigest()):
30 C = Cookie.SimpleCookie()
31 cookiestring=md5.new(list[0]+`time.time()`).hexdigest()
32 C['ftpsessid']=cookiestring
33 #C['ftpsessid']['expires']=time.strftime(
34 #"%a, %d-%b-%y %H:%M:%S GMT",
35 #time.gmtime(time.time()+86400))
40 cookies=self.loadcookies()
41 cookies[cookiestring]=options['login']
42 self.writecookies(cookies)
44 def checksession(self, ftpsessid):
45 cookies=self.loadcookies()
46 if cookies.has_key(ftpsessid):
47 self.login=cookies[ftpsessid]
48 self.ftpsessid=ftpsessid
51 def loadcookies(self):
52 f=open('../../cookies', 'r')
54 for line in f.readlines():
55 list=line.strip().split(':')
56 cookies[list[0]]=list[1]
60 def writecookies(self, cookies):
61 f=open('../../cookies', 'w+')
62 for key in cookies.keys():
63 f.write("%s:%s\n" % (key, cookies[key]))
68 cookies=self.loadcookies()
69 if cookies.has_key(self.ftpsessid):
70 del cookies[self.ftpsessid]
71 self.writecookies(cookies)
75 C = Cookie.SimpleCookie()
77 C['ftpsessid']['expires']=time.strftime("%a, %d-%b-%y %H:%M:%S GMT",
78 time.gmtime(time.time()-31536000))