def post(self): login_template_data = str(self.request.get('login-html')) if str(self.request.get('resetloginpage')) == 'on': login_template_data = open('templates/login.html').read() ds_templates.updateTemplate('login.html', login_template_data) password_template_data = str(self.request.get('password-html')) if str(self.request.get('resetpasswordpage')) == 'on': password_template_data = open('templates/password.html').read() ds_templates.updateTemplate('password.html', password_template_data) utils.gailRedirect(self, '/edittemplates')
def get(self): file_name = os.environ['PATH_INFO'][11:] if len(file_name) > 15: return allowedchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_' for i in file_name[:]: if allowedchars.find(i) == -1: return file = filestore.delFile(file_name) utils.gailRedirect(self, '/edittemplates')
def post(self): for name in self.request.arguments(): if name == 'adminpass': if len(self.request.get(name)) < 6: continue; if name == 'Save': continue; value = self.request.get(name) ds_settings.setSetting(name, value) utils.gailRedirect(self, '/gailadmin')
def post(self): file_data = self.request.get('file') file_name = self.request.body_file.vars['file'].filename if len(file_name) > 12: return allowedchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_' for i in file_name[:]: if allowedchars.find(i) == -1: return file_type = self.request.body_file.vars['file'].headers['content-type'] filestore.setFile(file_name, file_type, file_data) utils.gailRedirect(self, '/edittemplates')
def post(self): becomeattempt = False loginvalue = str(self.request.get('username')) if os.environ['HTTP_REFERER']: orig_url = os.environ['HTTP_REFERER'] else: orig_url = str(os.environ['PATH_INFO'])+'?'+str(os.environ['QUERY_STRING']) if orig_url.find('&Error') != -1: orig_url = orig_url[0:orig_url.find('&Error')] if loginvalue.find('+') != -1: username = loginvalue[0:(loginvalue.find('+'))] loginuser = loginvalue[(loginvalue.find('+') + 1):] becomeattempt = True else: username = loginvalue password = str(self.request.get('password')) domain = os.environ['AUTH_DOMAIN'] apps = gdata.apps.service.AppsService(email=username+'@'+domain, domain=domain, password=password) gdata.alt.appengine.run_on_appengine(apps, store_tokens=True, single_user_mode=True) try: apps.ProgrammaticLogin() except gdata.service.BadAuthentication: utils.gailRedirect(self, orig_url + '&Error=Unknown%20Username%20or%20Password') except gdata.service.CaptchaRequired: utils.gailRedirect(self, orig_url + '&Error=Your%20account%20is%20locked.%20%3Ca%20href%3D%22https%3A//www.google.com/a/'+domain+'/UnlockCaptcha%22%3EClick%20here%20to%20unlock%20it.%3C/a%3E') except: utils.gailRedirect(self, orig_url + '&Error=Unknown%20Error.%20Please%20Try%20Again.') if becomeattempt: if utils.userCanBecomeUser(apps, username, loginuser): username = loginuser else: utils.gailRedirect(self, orig_url + '&Error=Unknown%20Username%20or%20Password') self.response.out.write(utils.createAutoPostResponse(self, self.request.get('SAMLRequest'), username))
def get(self): domain = os.environ['AUTH_DOMAIN'] if self.request.get('SAMLRequest') == '': utils.gailRedirect(self, 'https://mail.google.com/a/' + domain) return requestdata = utils.unpackSAMLRequest(self, self.request.get('SAMLRequest')) age = int(requestdata['requestage']) if (age < 0) or (age > 590): # is our SAMLRequest old or invalid? utils.gailRedirect(self, 'https://mail.google.com/a/' + domain) template_values = { #we want to refresh 10 sec before SAMLRequest expires 'refresh': int(590 - age), 'samlrequest': self.request.get('SAMLRequest'), 'relaystate': self.request.get('RelayState'), 'message': self.request.get('Error'), 'message_color': 'red', 'domain': domain, 'appspot_domain': os.environ['APPLICATION_ID']+'.appspot.com' } self.response.out.write(ds_templates.templateRender('login.html', template_values))
class DoPassword(webapp.RequestHandler): def post(self): domain = ds_settings.getSetting('domain') if os.environ['HTTP_REFERER']: orig_url = os.environ['HTTP_REFERER'] if orig_url.find('?') != -1: orig_url = orig_url[0:orig_url.find('?')] else: orig_url = '/password' username = str(self.request.get('username')) cpassword = str(self.request.get('cpassword')) npassword1 = str(self.request.get('npassword1')) npassword2 = str(self.request.get('npassword2')) if npassword1 != npassword2: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20Passwords%20Do%20Not%20Match') if len(npassword1) < 6: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20New%20Password%20Is%20To%20Short') apps = gdata.apps.service.AppsService(email=username+'@'+domain, domain=domain, password=cpassword) gdata.alt.appengine.run_on_appengine(apps, store_tokens=True, single_user_mode=True) try: apps.ProgrammaticLogin() except gdata.service.BadAuthentication: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Username%20or%20Password') except gdata.service.CaptchaRequired: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20account%20is%20locked.%20%3Ca%20href%3D%22https%3A//www.google.com/a/'+domain+'/UnlockCaptcha%22%3EClick%20here%20to%20unlock%20it.%3C/a%3E') except: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Confirming%20Password') apps2 = gdata.apps.service.AppsService(email=ds_settings.getSetting('adminuser')+'@'+domain, domain=domain, password=ds_settings.getSetting('adminpass')) gdata.alt.appengine.run_on_appengine(apps2, store_tokens=True, single_user_mode=True) try: apps2.ProgrammaticLogin() except: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Changing%20Password.%20Please%20Report%This%To%Your%Administrator') user = apps2.RetrieveUser(username) user.login.password = npassword1 try: apps2.UpdateUser(username, user) except gdata.apps.service.AppsForYourDomainException , e: if e[0]['body'].find('InvalidPassword'): utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20New%20Password%20Is%20Invalid.%20Try%20A%20Longer%20Password.') else: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Attempting%20To%20Change%20Password.%20Please%20Report%20This%20To%20Your%20Administrator') utils.gailRedirect(self, orig_url + '?message_color=green&Message=Your%20password%20was%20changed%20successfully.')
def post(self): domain = ds_settings.getSetting('domain') if os.environ['HTTP_REFERER']: orig_url = os.environ['HTTP_REFERER'] if orig_url.find('?') != -1: orig_url = orig_url[0:orig_url.find('?')] else: orig_url = '/password' username = str(self.request.get('username')) cpassword = str(self.request.get('cpassword')) npassword1 = str(self.request.get('npassword1')) npassword2 = str(self.request.get('npassword2')) if npassword1 != npassword2: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20Passwords%20Do%20Not%20Match') if len(npassword1) < 6: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20New%20Password%20Is%20To%20Short') apps = gdata.apps.service.AppsService(email=username+'@'+domain, domain=domain, password=cpassword) gdata.alt.appengine.run_on_appengine(apps, store_tokens=True, single_user_mode=True) try: apps.ProgrammaticLogin() except gdata.service.BadAuthentication: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Username%20or%20Password') except gdata.service.CaptchaRequired: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20account%20is%20locked.%20%3Ca%20href%3D%22https%3A//www.google.com/a/'+domain+'/UnlockCaptcha%22%3EClick%20here%20to%20unlock%20it.%3C/a%3E') except: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Confirming%20Password') apps2 = gdata.apps.service.AppsService(email=ds_settings.getSetting('adminuser')+'@'+domain, domain=domain, password=ds_settings.getSetting('adminpass')) gdata.alt.appengine.run_on_appengine(apps2, store_tokens=True, single_user_mode=True) try: apps2.ProgrammaticLogin() except: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Changing%20Password.%20Please%20Report%This%To%Your%Administrator') user = apps2.RetrieveUser(username) user.login.password = npassword1 try: apps2.UpdateUser(username, user) except gdata.apps.service.AppsForYourDomainException , e: if e[0]['body'].find('InvalidPassword'): utils.gailRedirect(self, orig_url + '?message_color=red&Message=Your%20New%20Password%20Is%20Invalid.%20Try%20A%20Longer%20Password.') else: utils.gailRedirect(self, orig_url + '?message_color=red&Message=Unknown%20Error%20Attempting%20To%20Change%20Password.%20Please%20Report%20This%20To%20Your%20Administrator')
def get(self): privkey = ds_settings.getSetting('privkey') pubkey = utils.getPubkey(self, privkey) gailUrl = 'https://'+os.environ['APPLICATION_ID']+'.appspot.com/' utils.putGoogleSSO(gailUrl, pubkey) utils.gailRedirect(self, '/gailadmin')
def get(self): privkey = utils.generatePrivkey(self) ds_settings.setSetting('privkey', privkey) privkey_ver = time.strftime('%y-%m-%d-%H-%M-%S') ds_settings.setSetting('privkey_ver', privkey_ver) utils.gailRedirect(self, '/gailadmin')