def post(self): email = self.request.get('txtEmail') datastore = DataStoreInterface() emailObj = EmailProcessor() if emailObj.isValidEmail(email) <> 1: render.doRender(self, 'retrieve.html', {'error' : 'Invalid email address format!'}) elif datastore.userExists(email) <> 1: render.doRender(self, 'retrieve.html', {'error' : 'Email address has not been registered!'}) else: subject = "SynapSync email password Retrieval for " + email password = datastore.getUserPass(email) body = """ Hi, You are receiving the following email because your password was requested. Your info is: email: """ + email + """ password: """ + password + """ Thanks, SynapSync Team""" emailObj.sendSupportEmail(email, subject, body) render.doRender(self,'retrieve.html', {'confirmation' : 'Password sent to ' + email})
def post(self): datastore = DataStoreInterface() email = datastore.getAdminEmail('synapsync') if (email <> 'null'): emailObj = EmailProcessor() subject = self.request.get('txtSubject') body = self.request.get('txtContent') emailObj.sendSupportEmail(email, subject, body) render.doRender(self,'contact.html', {'confirmation' : 'Email sent!'})
def post (self): #intialization of variables self.session = Session() user = self.session['user'] datastore = DataStoreInterface() status = '' error='' message='' #formatting of user cached account formatter = StringFormatter() company = formatter.getCompany(user) profileName = formatter.getCompanyProfileName(user) email = formatter.getEmail(user) #retrieving content from form fields title = self.request.get('txtTitle') id = formatter.formatID(title) content = self.request.get('txtContent') file = self.request.get("file") btnClicked = formatter.getButtonType(self.request.body) if title<>'': postLink = ('synapsync.com/update.html?company=%s/id=%s'%(profileName, id)) bitly = BitLy(BITLY_USER, BITLY_KEY) postLink = bitly.shorten(postLink) #self.response.out.write(postLink) #return postAttributes = [company, profileName, email, title, content, id] #if no file attached then just place type None else use attached file if file == '': postAttributes.append(None) else: postAttributes.append(file) postAttributes.append(postLink) response = '' if (btnClicked == 'Post'): status = 'Posted' postAttributes.append(status) emailObj = EmailProcessor() emails = [] emails = datastore.getEmailSubscriber(profileName) for e in emails: if (e <> None and e <> ''): emailObj.sendAnnounceEmail(company, e.strip() , title, content + ' ' + postLink) #twitter #twitterAccounts = datastore.getTwitterAccounts(profileName) facebookAccounts = datastore.getFacebookAccounts(profileName) twitterAccounts = datastore.getTwitterAccounts(profileName) twitter = twitterAccounts for name in twitter: client = OAuthClient('twitter', self, name) response = client.post('/statuses/update', status = title + '\n' + postLink) for name in facebookAccounts: fb = facebook.Facebook(API_KEY, SECRET_KEY) fbResponse = fb.__call__('Stream.publish', {'session_key':name.dbSessionKey, 'message':title + '\n' + postLink, 'target_id':name.dbUid, 'uid':name.dbUid}) elif (btnClicked == 'Save'): status = 'Saved' postAttributes.append(status) datastore.putPost(postAttributes) if response == "SynapSync could not post to Twitter. The server could not be contacted at this time. Please try again later.": self.response.out.write(response) return else: error = 'Please fill the Title and Content fields below!' self.redirect('controlpanel.html')
def post(self): if (self.request.get('txtInviteCode') == 'SYNAPSE'): self.session = Session() datastore = DataStoreInterface() #collection of text box contents firstName = self.request.get('txtFirstName') lastName = self.request.get('txtLastName') company = self.request.get('txtCompany') email = self.request.get('txtEmail') password = self.request.get('txtPass1') repassword = self.request.get('txtPass2') #create session variable self.session.delete_item('user') #create emailPOrcessor object emailObj = EmailProcessor() #check email address validity if emailObj.isValidEmail(email) == 0: render.doRender(self, 'register.html', {'error' : 'Invalid email address. Please input a valid email address.'}) return #Ensure that the passwords match if password <> repassword: render.doRender(self, 'register.html', {'error' : 'Password did not match'}) return #Check for any fields left empty if firstName == '' or lastName == '' or company == '' or email == '' or password == '' or repassword == '': render.doRender(self, 'register.html', {'error' : 'Please fill in all the details'}) return #See if the user already exists in the database if datastore.userExists(email) == 1: render.doRender(self, 'register.html', {'error' : 'The account associated with the email already exists'}) return #check if company exists #IF it doesn't THEN add user as administrator and create company ELSE add user as editor if datastore.companyExists(company) == 0: if datastore.addUser([email, password, firstName, lastName, company, 'Administrator']) == 0: self.doRender(self, 'register.html', {'error' : 'Database could not add User: Adding a new user requires 6 attributes to be specified.'}) return profileName = company.replace(' ', '').lower() if datastore.addCompany([company, profileName, email]) == 0: self.doRender(self, 'register.html', {'error' : 'Database could not add Company: Adding a new company requires 3 attributes to be specified.'}) return else: if datastore.addUser([email, password, firstName, lastName, company, 'Editor']) == 0: self.doRender(self, 'register.html', {'error' : 'Database could not add User: Adding a new user requires 6 attributes to be specified.'}) return #create session variable based on email and company name username = company + " - " + email self.session['user'] = username self.redirect('controlpanel.html') else: render.doRender(self, 'register.html', {'error' : 'Sorry at this time SynapSync is open only to a limited number of users. Please check back at another time. <br><br>Thanks,<br> The SynapSync Team'})