]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - modules/user.py
- from-incoming.py uses Base{FtpTree,Pkg}; now I can implement sending errors
[projects/pld-ftp-admin.git] / modules / user.py
CommitLineData
1610d209
MM
1# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
3import Cookie, time, md5
4
5UserNotLoggedIn="UserNotLoggedIn"
6
7class User:
8 def __init__(self, cookies, options):
9 self.loggedin=False
10 if (cookies.has_key('ftpsessid') and
11 self.checksession(cookies['ftpsessid'])):
12 self.loggedin=True
13
14 if options.has_key('action'):
15 if options['action'] == 'register':
16 self.checkloginpass(options)
17 elif options['action'] == 'logout':
18 self.logout()
19
20 def checkloginpass(self, options):
21 if not options.has_key('login') or not options.has_key('pass'):
22 return
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()):
28 self.loggedin=True
29 self.login=list[0]
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))
36 print C
37 break
38 f.close()
39 if self.loggedin:
40 cookies=self.loadcookies()
41 cookies[cookiestring]=options['login']
42 self.writecookies(cookies)
43
44 def checksession(self, ftpsessid):
45 cookies=self.loadcookies()
46 if cookies.has_key(ftpsessid):
47 self.login=cookies[ftpsessid]
48 self.ftpsessid=ftpsessid
49 return True
50
51 def loadcookies(self):
52 f=open('../../cookies', 'r')
53 cookies={}
54 for line in f.readlines():
55 list=line.strip().split(':')
56 cookies[list[0]]=list[1]
57 f.close()
58 return cookies
59
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]))
64 f.close()
65
66 def logout(self):
67 if self.loggedin:
68 cookies=self.loadcookies()
69 if cookies.has_key(self.ftpsessid):
70 del cookies[self.ftpsessid]
71 self.writecookies(cookies)
72
73 self.loggedin=False
74
75 C = Cookie.SimpleCookie()
76 C['ftpsessid']=''
77 C['ftpsessid']['expires']=time.strftime("%a, %d-%b-%y %H:%M:%S GMT",
78 time.gmtime(time.time()-31536000))
79 print C
80
This page took 0.247102 seconds and 4 git commands to generate.