]>
Commit | Line | Data |
---|---|---|
1610d209 MM |
1 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et |
2 | ||
3 | import Cookie, time, md5 | |
4 | ||
5 | UserNotLoggedIn="UserNotLoggedIn" | |
6 | ||
7 | class 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 |