changePassword.py
Go to the documentation of this file.
00001 #!/usr/bin/env python 
00002 
00003 import nstart
00004 import config
00005 import os, sys, string, time
00006 
00007 from pyclearsilver.CSPage import Context
00008 from MBPage import MBPage
00009 
00010 import neo_cgi
00011 
00012 from pyclearsilver.log import *
00013 
00014 from auth import db_auth
00015 from auth import cookieauth
00016 
00017 class IndexPage(MBPage):
00018   def setup(self):
00019     hdf = self.ncgi.hdf
00020     self.requestURI = hdf.getValue("Query.request", "")
00021     if self.requestURI:
00022       hdf.setValue("CGI.cur.request", self.requestURI)
00023 
00024   def display(self):
00025     hdf = self.ncgi.hdf
00026 
00027     self.requestURI = hdf.getValue("Query.request", "")
00028     if not self.requestURI:
00029       self.requestURI = hdf.getValue("HTTP.Referer", "")
00030 
00031     if self.requestURI:
00032       hdf.setValue("CGI.cur.request", self.requestURI)
00033 
00034 
00035   def error(self, msg):
00036     self.redirectUri("changePassword.py?err=%s&request=%s" % (neo_cgi.urlEscape(msg), neo_cgi.urlEscape(self.requestURI)))
00037 
00038   def Action_changePassword(self):
00039     hdf = self.ncgi.hdf
00040 
00041     q_pw0 = hdf.getValue("Query.pw0","")
00042 
00043     q_pw1 = hdf.getValue("Query.pw1","")
00044     q_pw2 = hdf.getValue("Query.pw2","")
00045 
00046 
00047     requestURI = hdf.getValue("Query.request", "%swebui" % config.gBaseURL)
00048 
00049     if not requestURI:
00050       requestURI = config.gBaseURL + self.login + "/mail/prefs.py"
00051 
00052     if not self.login:
00053       self.redirectUri(self.requestURI)
00054 
00055     if not q_pw0:
00056       self.error("Old password is not complete.")
00057 
00058     if not q_pw1 or (q_pw1 != q_pw2):
00059       self.error("New passwords do not match.")
00060 
00061     authdb = db_auth.initSchema()
00062     userRec = authdb.users.lookup(self.login)
00063 
00064     if not userRec.checkPassword(q_pw0):
00065       self.error("Old password is invalid.")
00066 
00067     userRec.setPassword(q_pw1)
00068 
00069     cookieauth.issueLoginCookie(self.ncgi, authdb, self.login, userRec.pw_hash)
00070 
00071 #    self.issueLoginCookie(self.login, self.MB.getOption("pw_hash"))
00072 
00073     warn("redirecting to", repr(self.requestURI))
00074     self.redirectUri(self.requestURI)
00075         
00076 
00077 def run(context):
00078   return IndexPage(context, pagename="changePassword", checkActive=False)
00079 
00080 def main(context):
00081   run(context).start()
00082 
00083 if __name__ == "__main__":
00084     main(Context())


webui
Author(s): Scott Hassan/hassan@willowgarage.com
autogenerated on Sat Dec 28 2013 17:47:58