def post(self): if POST_MSG_PEER in self.request.POST: userKeys = UserKey.query(ancestor=UserKey.newKey(self.request.POST[POST_MSG_PEER])).fetch(1) else: userKeys = self.user.getKey() if len(userKeys) > 0: self.response.write(json.dumps({JSON_KEY: userKeys[0].pubkey})) else: self.response.write(RESPONSE_MSG_NO_PEER)
def post(self): if POST_MSG_PEER in self.request.POST: userKeys = UserKey.query(ancestor=UserKey.newKey(self.request.POST[POST_MSG_PEER])).fetch(1) else: userKeys = [self.user.getKey()] if len(userKeys) > 0: self.response.write(userKeys[0].pubkey) else: logging.warning("Bad peer '" + self.request.POST[POST_MSG_PEER] + "'") self.response.write(RESPONSE_MSG_NO_PEER)
def post(self): if not self.requireParameters(POST_USER_PASSWORD, POST_USER_PRIVKEY, POST_USER_KEY_SALT): return password = self.request.POST[POST_USER_PASSWORD] self.user.set_password(password) userKeys = UserKey.query(ancestor=UserKey.newKey(self.user.auth_ids[0])).fetch(1)[0] userKeys.privateKey = self.request.POST[POST_USER_PRIVKEY] userKeys.keySalt = self.request.POST[POST_USER_KEY_SALT] userKeys.put() self.response.write(RESPONSE_OK)
def post(self): if not self.requireParameters(POST_USER_NAME, POST_USER_PASSWORD, POST_USER_EMAIL, ): return username = self.request.POST[POST_USER_NAME] email = self.request.POST[POST_USER_EMAIL] logging.info("Username: '******'") logging.info("Email: '" + email + "'") if (not username.isalnum()) or (len(username) > 20): logging.warning("Username contains invalid characters") self.response.write(RESPONSE_USER_BAD_USERNAME) return password = self.request.POST[POST_USER_PASSWORD] if len(password) > 100: self.response.write(RESPONSE_USER_BAD_PASSWORD) return if len(email) > 256: logging.warning("Bad email") self.response.write(RESPONSE_USER_BAD_EMAIL) return newUser = self.user_model.create_user(username, ["email"], email=email, password_raw=password, verified=False, loginToken="", GCMKey="", WNSUri="") if not newUser[0]: if newUser[1][0] == 'auth_id': logging.warning("Already registered") self.response.write(RESPONSE_USER_NAME_EXISTS) else: logging.warning("Already registered email") self.response.write(RESPONSE_USER_EMAIL_EXISTS) else: user = newUser[1] try: user.sendVerificationEmail() except DeadlineExceededError as error: logging.error("VerifyEmailFail: " + str(error)) except BadRequestError: logging.warning("Bad email") self.response.write(RESPONSE_USER_BAD_EMAIL) return userKeys = UserKey(parent=UserKey.newKey(newUser[1].auth_ids[0])) userKeys.pubkey = "" userKeys.put() self.response.write(RESPONSE_OK)
def post(self): if not self.requireParameters(POST_USER_NAME, POST_USER_PASSWORD, POST_USER_PUBKEY, POST_USER_PRIVKEY, POST_USER_EMAIL, POST_USER_KEY_SALT): return username = self.request.POST[POST_USER_NAME] password = self.request.POST[POST_USER_PASSWORD] pubkey = self.request.POST[POST_USER_PUBKEY] privateKey = self.request.POST[POST_USER_PRIVKEY] email = self.request.POST[POST_USER_EMAIL] salt = self.request.POST[POST_USER_KEY_SALT] newUser = self.user_model.create_user(username, ["email"], email=email, password_raw=password, verified=False) if not newUser[0]: if newUser[1][0] == 'auth_id': self.response.write(RESPONSE_USER_NAME_EXISTS) else: print(newUser) print("EMAIL", email) self.response.write(RESPONSE_USER_EMAIL_EXISTS) else: user = newUser[1] token = self.user_model.create_signup_token(user.getId()) emailTemplateHTML = open("static/verify_mail.html", mode="r").read() emailTemplateTXT = open("static/verify_mail.txt", mode="r").read() emailContentsHTML = emailTemplateHTML.replace("{USERNAME HERE}", username) emailContentsHTML = emailContentsHTML.replace("{EMAIL HERE}", email) emailContentsHTML = emailContentsHTML.replace("{SITE ADDR}", ADDR_SITE) emailContentsHTML = emailContentsHTML.replace("{VERIFICATION ADDR}", ADDR_VERIFY) emailContentsHTML = emailContentsHTML.replace("{TOKEN HERE}", token) emailContentsTXT = emailTemplateTXT.replace("{USERNAME HERE}", username) emailContentsTXT = emailContentsTXT.replace("{EMAIL HERE}", email) emailContentsTXT = emailContentsTXT.replace("{SITE ADDR}", ADDR_SITE) emailContentsTXT = emailContentsTXT.replace("{VERIFICATION ADDR}", ADDR_VERIFY) emailContentsTXT = emailContentsTXT.replace("{TOKEN HERE}", token) mail.send_mail("*****@*****.**", email, "Secure Messaging verification", emailContentsTXT, html=emailContentsHTML) userKeys = UserKey(parent=UserKey.newKey(newUser[1].auth_ids[0])) userKeys.pubkey = pubkey userKeys.privateKey = privateKey userKeys.keySalt = salt userKeys.put() self.response.write(RESPONSE_OK)
def post(self): if not self.requireParameters(POST_USER_NAME, POST_USER_PASSWORD, POST_USER_TOKEN, POST_USER_PRIVKEY, POST_USER_PUBKEY, POST_USER_KEY_SALT): return username = self.request.POST[POST_USER_NAME] password = self.request.POST[POST_USER_PASSWORD] token = self.request.POST[POST_USER_TOKEN] user = self.user_model.get_by_auth_id(username) if not user: self.response.write(RESPONSE_USER_BAD_USERNAME) return if self.user_model.validate_token(user.getId(), "recovery", token): user.set_password(password) userKeys = UserKey.query(ancestor=UserKey.newKey(user.auth_ids[0])).fetch(1)[0] userKeys.privateKey = self.request.POST[POST_USER_PRIVKEY] userKeys.pubkey = self.request.POST[POST_USER_PUBKEY] userKeys.keySalt = self.request.POST[POST_USER_KEY_SALT] userKeys.put() user.deleteAllMessages() user.deleteRecoveryToken(token) self.response.write(RESPONSE_OK) else: self.response.write(RESPONSE_USER_BAD_TOKEN)