# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-import Cookie, time, md5
+import Cookie, time, ftpio
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
+ ftpio.connect()
+ if 'ftpsessid' in cookies and cookies['ftpsessid']:
+ self.login=ftpio.login_cookie(cookies['ftpsessid'])
+ if self.login:
+ self.loggedin=True
- if options.has_key('action'):
+ if 'action' in options:
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'):
+ if 'login' not in options or 'pass' not in options:
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
-
+ self.cookie=ftpio.login_passwd(options['login'], options['pass'])
+ if self.cookie:
+ self.login=options['login']
+ self.loggedin=True
C = Cookie.SimpleCookie()
- C['ftpsessid']=''
- C['ftpsessid']['expires']=time.strftime("%a, %d-%b-%y %H:%M:%S GMT",
- time.gmtime(time.time()-31536000))
+ C['ftpsessid']=self.cookie
+ #C['ftpsessid']['expires']=time.strftime(
+ #"%a, %d-%b-%y %H:%M:%S GMT",
+ #time.gmtime(time.time()+86400))
print C
+
+ def logout(self):
+ self.loggedin=False
+ ftpio.logout()
+ 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