def get(self, action = '', argument=''): """ Validate if username is available""" res = dict(status=STATUS_OK) if action == 'validateusername': logging.info("Query for username" + argument) user = User.all() user.filter("username ="******"%40","@") logging.info("Query for email" + email) user = User.all() user.filter("email =", email) res['available'] = 'No' if user.count() == 0: res['available'] = 'Yes' self.response.headers['content-type'] = 'text/plain' self.response.out.truncate(0) self.response.out.write(self._encode_response(res)) self.response.out.write('\n')
def _check_logged_in(session_id): user = User.all().filter("session =", session_id).get() if user is None: return None else: return user[0]
def get(self, action='', account_key='', arg1=''): """ Serve up user related pages.""" if action == 'signup': self.set_template('templates/account/signup.html') #elif action == 'complete': elif action == 'confirm': self.set_template('templates/account/signupconfirm.html') user = User.all() user.filter("conf_key =", account_key) user.get() if user is None: error = "Could not locate your account information." self.error_message(error) self.add_template_value('title', "Cool Geek Jobs - Ooops!!!") else: u = user[0] logging.info(u.key()) self.add_template_value('title', "Cool Geek Jobs - Your Account is Activated") self.add_template_value('username', u.username.upper()) self.add_template_value('firstname', u.first.upper()) u.email_conf = True u.put() elif action == 'signin': self.set_template('templates/account/signin.html') elif action == 'edit': session_id = cgi.escape(self.request.get('session_id')) user = _check_logged_in(session_id) if user is None: self.set_template('templates/account/signin.html') self.error_message("SESSION EXPIRED") else: self.set_template('templates/account/useraccount.html') self.add_template_value("session_id", user.session) else: self.set_template('templates/account/signup.html') self.write_page()
def post(self, action="" , arg=""): """Handle posts""" if action == 'new': username = cgi.escape(self.request.get('username')) password = cgi.escape(self.request.get('password')) email = cgi.escape(self.request.get('email')) first = cgi.escape(self.request.get('firstname')) last = cgi.escape(self.request.get('lastname')) plan = cgi.escape(self.request.get('plan')) m1 = hashlib.sha1() # Pass in salt m1.update(BINSALT) m1.update(password) encrypt = b64encode(m1.digest()) logging.info(encrypt) conf_key = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(20)) user = User(username = username, password = encrypt, email = email, conf_key = conf_key, first = first, last = last, plan_type = plan, plan_date = datetime.datetime.now()) user.put() confirm_url = "http://www.coolgeekjobs.com/account/confirm/" + conf_key sender_address = "Cool Geek Jobs Alerts <*****@*****.**>" subject = "Please confirm your registration" body = """ Thank you for creating an account! Please confirm your email address by clicking on the link below: %s """ % confirm_url mail.send_mail(sender_address, email, subject, body) self.set_template('templates/account/signuppending.html') self.add_template_value('username', username.upper()) self.add_template_value('email', email.upper()) self.add_template_value('firstname', first.upper()) if last != '': self.add_template_value('lastname', last.upper()) planname = '' planfreq = '' if plan == 'weekly': planname = 'ONLY IF THE OPPORTUNITY IS RIGHT' planfreq = 'weekly' elif plan == 'daily': planname = 'JUST TESTING THE WATERS' planfreq = 'once a day' elif plan == 'hourly': planname = 'READY TO MAKE THE LEAP' planfreq = 'hourly' else: planname = 'GET ME OUTTA HERE!!!' planfreq = 'immediately' self.add_template_value('planname', planname) self.add_template_value('planfreq', planfreq) elif action == 'login': username = cgi.escape(self.request.get('username')) password = cgi.escape(self.request.get('password')) user = User.all() user.filter("username ="******"USERNAME AND/OR PASSWORD INCORRECT") else: u = user[0] m1 = hashlib.sha1() # Pass in salt m1.update(BINSALT) m1.update(password) encrypt = b64encode(m1.digest()) if encrypt != u.password: self.set_template('templates/account/signin.html') self.error_message("USERNAME AND/OR PASSWORD INCORRECT") else: session_id = ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(20)) greeting = '' # Save login time u.last_login = datetime.datetime.now() u.session = session_id u.put() if u.first is not None: greeting = u.first.upper() else: greeting = u.username.upper() self.set_template('templates/account/useraccount.html') self.info_message("WELCOME BACK, " + greeting) self.add_template_value('session_id', session_id) self.add_template_value('links', _logged_in_menu(u.key().id())) self.write_page()