00001
00002
00003 import nstart
00004 import config
00005 import sys
00006 from pyclearsilver.CSPage import Context
00007 from MBPage import MBPage
00008
00009 import MinibooMailbox
00010
00011 class IndexPage(MBPage):
00012 def display(self):
00013 hdf = self.ncgi.hdf
00014
00015 if hdf.getValue("Query.st","") == "3":
00016 self.handle_stage_3()
00017
00018 def handle_stage_3(self):
00019 hdf = self.ncgi.hdf
00020 self.pagename = "forgotpw_3"
00021
00022 q_login = hdf.getValue("Query.login","")
00023
00024 hdf.setValue("CGI.Login",q_login)
00025
00026 def Action_ResetPw(self):
00027 hdf = self.ncgi.hdf
00028 q_login = hdf.getValue("Query.login","")
00029 if q_login:
00030 self.redirectUri("forgotpw.py?st=3&login=%s" % q_login)
00031
00032 def Action_SetPassword(self):
00033 hdf = self.ncgi.hdf
00034 q_login = hdf.getValue("Query.login","")
00035 q_pw1 = hdf.getValue("Query.pw1","")
00036 q_pw2 = hdf.getValue("Query.pw2","")
00037
00038 if not q_login:
00039 self.redirectUri("forgotpw.py?q=1")
00040
00041 if not q_pw1 or (q_pw1 != q_pw2):
00042 self.redirectUri("forgotpw.py?st=3&login=%s&err=pwdontmatch" % q_login)
00043
00044 MB = MinibooMailbox.loadMailbox(q_login)
00045 MB.setPassword(q_pw1)
00046 self.MB = MB
00047 self.issueLoginCookie(q_login,self.registrydb.getOption("pw_hash"))
00048 self.redirectUri(config.gBaseURL + q_login + "/mail/index.py")
00049
00050
00051 def run(context):
00052 return IndexPage(context, pagename="forgotpw_1",nologin=1)
00053
00054 def main(context):
00055 run(context).start()
00056
00057 if __name__ == "__main__":
00058 main(Context())