Beispiel #1
0
    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})
Beispiel #2
0
 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!'})
Beispiel #3
0
	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')
Beispiel #4
0
 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'})