def receive(self, message): logging.info("[email protected] request") self.mail = message self.senderMail = None self.existingUser = None self.responseMail = None # We extract mail information with a regex mailRegexMatch = re.search(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4}',self.mail.sender) self.senderMail = mailRegexMatch.group() logging.info("Received a message from: " + self.senderMail) # We look if this user is in our database user_query = User.all().filter("mail", self.senderMail) self.existingUser = user_query.get() # If the user is in our database, we build and send him a confirmation URL to delete his account if(self.existingUser): existingUserID = str(self.existingUser.key().id()) encryptedID = Encryption.getEncryptedIDForDeletion(existingUserID) config = Config() site_url = config.site_url url = site_url + "delete?id=%s&crypt=%s" %(existingUserID, encryptedID) logging.info("%s" % url) self.responseMail = mail.EmailMessage( sender = "Capturio crew <*****@*****.**>", to = self.senderMail, subject = "[Deletion] Please confirm to remove your information from Captur.io", body = """ Hey, If you want to remove all your information from Captur.io, please click on the following link: %s We hope to see you again soon! Captur.io crew """ % (url) ) self.responseMail.send() logging.info("responseMail sent") else: logging.info("User behind address email %s wants to be removed whereas he doesn't belong to our database." % self.senderMail)
def checkUser(self): if((self.userID) and (self.encryptedID)): logging.info("Deletion page: 1) User ID: %s 2) Encrypted ID: %s" %(self.userID, self.encryptedID)) encryptedCheckingID = Encryption.getEncryptedIDForDeletion(self.userID) if(encryptedCheckingID == self.encryptedID): logging.info("Deletion link valid") self.retrieveUser() else: logging.info("Deletion link invalid") path = os.path.join(os.path.dirname(__file__), 'templates/delete/invalid_link.html') self.response.out.write(template.render(path, None)) else: logging.info("Deletion link invalid") path = os.path.join(os.path.dirname(__file__), 'templates/delete/invalid_link.html') self.response.out.write(template.render(path, None))