예제 #1
0
 def post(self):
     key = self.request.get("key")
     message = self.request.get("message")
     url = self.request.get("url")
     code = self.request.get("code")
     securitycode = SecurityCode()
     if securitycode.check(code):
         if key is not None and key != "" and message is not None and message != "":
             try:
                 user = User.get(key)
                 notification = Notification()
                 notification.user = str(user.key())
                 notification.message = message
                 notification.url = url
                 notification.status = 0
                 notification.put()
                 self.redirect("/")
             except KeyError:
                 self.redirect("/?exception=WrongParameter")
         else:
             self.redirect("/?exception=WrongParameter")
     else:
         self.redirect("/?exception=AccessDenied")
예제 #2
0
	def post(self):
		### Session verification code ###
                session = get_current_session()
                try:
                        if not session['key'] or session['key'] == '':
                                self.redirect('/?exception=NoSession')
                        else:
				mainuser = User.get(session['key'])
                                template_values = {
                                'pagename': 'friendsinvite',
                                }

				try:
					emails = self.request.get('emails').lower().replace(' ','').split(',')
					if len(emails) > 30:
						self.redirect('/friends?exception=TooManyArguments')
					else:
						users = User.all().filter("email IN", emails)
						alreadyuser = []
						for user in users:
							alreadyuser.append(str(user.key()))
							emails.remove(user.email)
							friendships = Friendship.all().filter("user ="******"friend =", str(user.key()))
							for friendship in friendships:
								alreadyuser.remove(str(friendship.friend))

						for email in emails:
							confirmcode = RandomString(64)
							subject = mainuser.nick + ' invites you to Animo!'
							body = """Hey!

You've been invited to subscribe and play Animo by your friend """ + mainuser.nick + """(""" + mainuser.fname + """ """ + mainuser.lname + """). Please follow the following link to register and play:
http://""" + APPID + """/register/invitation?referer=""" + session['key'] + """&email=""" + email + """&code=""" + confirmcode + """

Tom"""

							message = sendmail(email, subject, body)
		                                        message.send()

							newuser = User()
                                                        newuser.email = email
                                                        newuser.active = False
                                                        newuser.status = confirmcode
							newuser.put()

							friendship = Friendship()
							friendship.user = session['key']
							friendship.friend = str(newuser.key())
							friendship.status = 0
							friendship.put()
						for key in alreadyuser:
							user = User.get(key)
							securitycode = SecurityCode()
							url = 'https://' + APPID + '/notifications/add'
							form_fields = {"key": key, "message": user.nick + " wants to be friends with you. Click to accept.", "url": "/friends/invite/confirm?key=" + key + "&friend=" + str(user.key()), "code": securitycode.get()}
							form_data = urllib.urlencode(form_fields)
							result = urlfetch.fetch(url=url,payload=form_data,method=urlfetch.POST,headers={'Content-Type': 'application/x-www-form-urlencoded'})

							friendship = Friendship()
                                                        friendship.user = session['key']
                                                        friendship.friend = key
                                                        friendship.status = 0
                                                        friendship.put()

						self.redirect('/friends')
				except ValueError:
					self.redirect('/?exception=WrongParameter')
                except KeyError:
                        self.redirect('/?exception=NoSession')