Ejemplo n.º 1
0
  def post(self):
    sender = self.request.get("from")
    id = self.request.get("id")
    message = self.request.get("message")
    comment = self.request.get("comment")
    
    item_key = db.Key(id)
    item = db.get(item_key)
    send_to = item.parent().user.email()
    email_message = message
    
    if (item.parent().user == users.get_current_user()):
       new_comment = Comment(parent=item ,message=message[0:400], poster='seller')
       new_comment.put()
       item.comments += 1
       item.put()
       self.response.out.write("Success")
       self.response.set_status(201)
       return 
    
    if not users.get_current_user():
      if not mail.is_email_valid(sender):
        invalid_reason = mail.invalid_email_reason(sender, sender)
        self.response.out.write("<ERROR EXCEPTION>")
        return
        #TODO: Translate message
        #throw exception in client with message
      email_message += '''
      
*** IMPORTANT ***
Please do not reply back to this message.
Instead, you may write an email to %s
''' % sender
      sender = '*****@*****.**'
    else:
      sender = users.get_current_user().email()
      
    if comment:
        if (users.get_current_user()):
            new_comment = Comment(parent=item ,message=message[0:400], poster=users.get_current_user().nickname())
        else:   
            new_comment = Comment(parent=item ,message=message[0:400], poster='anonymous')
        new_comment.put()
        item.comments += 1
        item.put()
      
    mail.send_mail(sender, send_to, 'Tatamee Buyer Notification [%s]' % item.title, email_message)    
    logging.info('Email sent to: %s, by: %s' % (send_to, sender))
    self.response.out.write("Success")
    self.response.set_status(201)
Ejemplo n.º 2
0
  def post(self):
    email = self.request.get("email")
    id = self.request.get("id")
    
    if not mail.is_email_valid(email):
        invalid_reason = mail.invalid_email_reason(email, email)
        self.response.out.write("Invalid Email")
        return
    
    item_key = db.Key(id)
    item = db.get(item_key)
    user = item.parent()
    
    if (user.user == users.get_current_user() and user.user.email() != email):
       ghost_rating = GhostRating(parent=user)
       ghost_rating.put()
       id = hashlib.sha1(str(ghost_rating.key())).hexdigest()
       ghost_rating.id = id
       ghost_rating.email = db.Email(email)
       ghost_rating.put()
       
       url = 'http://www.tatamee.com/ratings?id=' + id
       email_message = '''
Hello %s       
       
%s would like you to rate your recent transaction.
You may give a good or bad rating based on your experience.

If you would like to give a rating to %s please go to the following url:
%s

Regards,
The Tatamee Team
      
*** IMPORTANT ***
Please do not reply back to this message.
Instead, you may write an email to %s
''' % (email[:email.find('@')], user.user.nickname(), user.user.nickname(), url, user.user.email()) 
      
    sender = '*****@*****.**'
    mail.send_mail(sender, email, 'Tatamee Rating Request [%s]' % item.title, email_message)    
    logging.info('Rating request sent to: %s, by: %s' % (email, user.user.email()))
    self.response.out.write("Success")
    self.response.set_status(201)
Ejemplo n.º 3
0
	def post(self):
		# アクセス制限
		if not self.haveFullAccessOrganization(None):
			self.error(403)
			return

		name = self.request.get('name')
		reportTemplate = self.request.get('reportTemplate')
		reporterWaitings = self.request.get_all('reporterWaitings')
		receiverWaitings = self.request.get_all('receiverWaitings')
		adminerWaitings = self.request.get_all('adminerWaitings')
		notifyEmail = self.request.get('notifyEmail')

		# データチェック
		validErrors = []
		for email in reporterWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Reporter Waitings'),
				})
		for email in receiverWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Receiver Waitings'),
				})
		for email in adminerWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Administrator Waitings'),
				})

		if len(validErrors) == 0:
			# データ保存
			org = models.Organization(
				name = name,
				adminers = [self.loginUser.key(), ],
				reportTemplate = reportTemplate,
				reporterWaitings = reporterWaitings,
				receiverWaitings = receiverWaitings,
				adminerWaitings = adminerWaitings,
				notifyEmail = notifyEmail,
			)
			org.put()

			# メール送信
			for email in reporterWaitings:
				models.SendMail.confReporter(email, org.key(), name)
			for email in receiverWaitings:
				models.SendMail.confReceiver(email, org.key(), name)
			for email in adminerWaitings:
				models.SendMail.confAdminer(email, org.key(), name)

			self.loginUser.adminOrganizations.append(org.key())
			self.loginUser.put()
			memcache.delete("loginUser")

			msg = models.Message(
				user = self.loginUser.author,
				title = 'Well done!',
				message = 'You have successfully saved data',
			)
			msg.put()

			self.redirect('/Organization/' + str(org.key()))
		else:
			for error in validErrors:
				msg = models.Message(
					user = self.loginUser.author,
					title = error['title'],
					message = error['message'],
				)
				msg.put()
Ejemplo n.º 4
0
	def post(self, key=None):
		org = models.Organization.get(key)

		# アクセス制限
		if not self.haveFullAccessOrganization(None):
			self.error(403)
			return

		name = self.request.get('name')
		reportTemplate = self.request.get('reportTemplate')
		reportersDisabled = self.request.get_all('reportersDisabled')
		receiversDisabled = self.request.get_all('receiversDisabled')
		adminersDisabled = self.request.get_all('adminersDisabled')
		reporterWaitings = self.request.get_all('reporterWaitings')
		receiverWaitings = self.request.get_all('receiverWaitings')
		adminerWaitings = self.request.get_all('adminerWaitings')
		notifyEmail = self.request.get('notifyEmail')

		# データチェック
		validErrors = []
		for email in reporterWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Reporter Waitings'),
				})
		for email in receiverWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Receiver Waitings'),
				})
		for email in adminerWaitings:
			if not mail.is_email_valid(email):
				validErrors.append({
					'title': 'Email invalid!',
					'message': mail.invalid_email_reason(email, 'Administrator Waitings'),
				})

		if len(validErrors) == 0:
			# メール送信
			for email in reporterWaitings:
				if org.reporterWaitings.count(email) == 0:
					models.SendMail.confReporter(email, key, name)
			for email in receiverWaitings:
				if org.receiverWaitings.count(email) == 0:
					models.SendMail.confReceiver(email, key, name)
			for email in adminerWaitings:
				if org.adminerWaitings.count(email) == 0:
					models.SendMail.confAdminer(email, key, name)

			# データ更新
			org.name = name
			org.reportTemplate = reportTemplate
			org.reporterWaitings = reporterWaitings
			org.receiverWaitings = receiverWaitings
			org.adminerWaitings = adminerWaitings
			org.notifyEmail = notifyEmail
			for userDisabled in reportersDisabled:
				if len(userDisabled) > 0:
					userDisabled = models.db.Key(userDisabled)
					while userDisabled in org.reporters: org.reporters.remove(userDisabled)

					u = models.User.get(userDisabled)
					while org.key() in u.reportOrganizations: u.reportOrganizations.remove(org.key())
					u.put()
			for userDisabled in receiversDisabled:
				if len(userDisabled) > 0:
					userDisabled = models.db.Key(userDisabled)
					while userDisabled in org.receivers: org.receivers.remove(userDisabled)

					u = models.User.get(userDisabled)
					while org.key() in u.receiveOrganizations: u.receiveOrganizations.remove(org.key())
					u.put()
			for userDisabled in adminersDisabled:
				if len(userDisabled) > 0:
					userDisabled = models.db.Key(userDisabled)
					while userDisabled in org.adminers: org.adminers.remove(userDisabled)

					u = models.User.get(userDisabled)
					while org.key() in u.adminOrganizations: u.adminOrganizations.remove(org.key())
					u.put()
			memcache.delete("loginUser")

			org.put()

			msg = models.Message(
				user = self.loginUser.author,
				title = 'Well done!',
				message = 'You have successfully saved data',
			)
			msg.put()

			self.redirect('/Organization/' + str(org.key()))
		else:
			for error in validErrors:
				msg = models.Message(
					user = self.loginUser.author,
					title = error['title'],
					message = error['message'],
				)
				msg.put()