Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
 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)