예제 #1
0
	def _do_named(self, token):
		try:
			if token is None:
				read_list = None
			else:
				read_list = NamedToken.get(token)
		except BadKeyError:
				self.clear_cookies()
				read_list = None
				
		if self.user is not None:
			if read_list is None:
				if (self.request.cookies['N'] is not None):
					write_list = NamedToken(itemlist_name=self.request.cookies['N'],
																	itemlist_json=self.request.str_POST['itemList'])
					self.response.set_cookie('N', write_list.itemlist_name, max_age=self.COOKIE_AGE)
					self.response.delete_cookie('S')
					self.response.set_cookie('Y', "named", max_age=self.COOKIE_AGE)		
				else:
					write_list = UnauthenticatedToken(itemlist_json=self.request.str_POST['itemList'],
					                                  last_ip=self.request.remote_addr,
					                                  security_string = "".join(random.sample(string.digits+string.ascii_letters,10)))
					self.response.delete_cookie('N')
					self.response.set_cookie('S', write_list.security_string, max_age=self.COOKIE_AGE)
					self.response.set_cookie('Y', "token", max_age=self.COOKIE_AGE)		
			else:
				if read_list.owner.user_id() == self.user.user_id() and self.request.cookies['C'] is None:
					write_list = read_list
					write_list.itemlist_json = self.request.str_POST['itemList']
					self.response.set_cookie('N', write_list.itemlist_name, max_age=self.COOKIE_AGE)
					self.response.delete_cookie('S')
					self.response.set_cookie('Y', "named", max_age=self.COOKIE_AGE)		
				else:
					self.response.delete_cookie('C')
					if (self.request.cookies['N'] is not None):
						write_list = NamedToken(itemlist_name=self.request.cookies['N'],
																		itemlist_json=self.request.str_POST['itemList'])
						self.response.set_cookie('N', write_list.itemlist_name, max_age=self.COOKIE_AGE)
						self.response.delete_cookie('S')
						self.response.set_cookie('Y', "named", max_age=self.COOKIE_AGE)		
					else:
						write_list = UnauthenticatedToken(itemlist_json=self.request.str_POST['itemList'],
						                                  last_ip=self.request.remote_addr,
						                                  security_string = "".join(random.sample(string.digits+string.ascii_letters,10)))
						self.response.delete_cookie('N')
						self.response.set_cookie('S', write_list.security_string, max_age=self.COOKIE_AGE)
						self.response.set_cookie('Y', "token", max_age=self.COOKIE_AGE)		
				
				write_list.put()
				self.response.set_cookie('T', write_list.key(), max_age=self.COOKIE_AGE)
			
			self.set_error(None);