示例#1
0
	def post(self, request, params):
		user = who_is_logged(self.session)
		if user is not None:
			return HttpResponseFound(redirect_to=("/user/%s/" % user))
		
		um = get_user_manager()
		
		if ("username" in request.data and
			not_empty(request.data["username"].value) and
			"password" in request.data and
			not_empty(request.data["password"].value)):
			
			user = um.findOneUser({
				"username":request.data["username"].value,
				"password":request.data["password"].value,
			})
			
			if user is not None:
				self.session["user_logged"] = str(request.data["username"].value)
				return HttpResponseFound(
					redirect_to="/user/%s/" % user["username"]
					)
					
		return {
			"user":None,
			"msg":"Usuario y contraseña incorrectos."
		}
示例#2
0
	def post(self, request, params):
		um = get_user_manager()
		
		if ('username' in request.data and
			not_empty(request.data["username"].value) and
			'password' in request.data and
			not_empty(request.data["password"].value) and
			'email' in request.data and
			not_empty(request.data["email"].value)):
			
			user_exist = um.findOneUser(
				{"username":request.data["username"].value}
				)
				
			user_exist_mail = um.findOneUser(
				{"email":request.data["email"].value}
				)
				
			if user_exist is None and user_exist_mail is None:
				
				user = um.createUser({
					"username":request.data["username"].value,
					"password":request.data["password"].value,
					"email":request.data["email"].value,
				})
				
				id_user = um.insertUser(user)
				
				if id_user is not None:
					return {
						"user":user,
						"msg":"Usuario creado satisfactoriamente.",
					}
				else:
					return {
						"user":None,
						"msg":"Algo ha ido mal. Inténtelo de nuevo.",
					}			
					
			else:
				if user_exist:
					return {
						"msg":"Ya existe un usuario con el nombre de usuario \
						'%s'." % request.data["username"].value,
					}
					
				elif user_exist_mail:
					return {
						"msg": "El email '%s' ya está registrado." % request.data["email"].value,
					}

		else:
			return {
				"user":None,
				"msg":"Falta alguno de los campos requeridos.",
			}
示例#3
0
	def post(self, request, params):
		um = get_user_manager()
		bm = get_book_manager()
		
		# Comprobamos que el usuario esté logueado
		username = who_is_logged(self.session)
		if username is None: 
			return HttpResponseFound(redirect_to="/user/login/")
		else:
			user = um.findOneUser({"username":username})
			
		#Comprobamos que la página del libro sea correctas
		slug = params["book_slug"]
		book = bm.findOneBook({"slug":slug})
		if book is None:
			raise HttpResponseNotFound("El libro con identificador %s no existe." % slug)
			
		
		if ('text' in request.data and
			not_empty(request.data["text"].value) and
			'stars' in request.data and
			not_empty(request.data["stars"].value)): 
			
			
			review = Review({
				"user" : user,
				"book" : book,
				"text" : request.data["text"].value,
				"stars" : request.data["stars"].value,
				})
				
			user = um.addReview(review)
			book = bm.addReview(review)
			
			return {
				"book": book,
				"user_logged": True,
				"msg": "Comentario guardado correctamente.",
				}
					
		return {
			"book": book,
			"user_logged": True,
			"review_form":review,
			"msg":"Algunos campos del comentario no son válidos.",
		}
示例#4
0
	def post(self, request, params):
		user = who_is_logged(self.session)
		if user is None:
			return HttpResponseFound(redirect_to=("/user/login/"))
			
		bm = get_book_manager()
				
		if ('title' in request.data and 'author' in request.data and 
			not_empty(request.data["title"].value) and
			not_empty(request.data["author"].value)):			



			book = bm.createBook({
				"title":request.data["title"].value,
				"author":request.data["author"].value,
				"slug":slugify(request.data["title"].value),
			})
			
			# Exist this book?
			exist_book = bm.findOneBook({"slug":book["slug"]})
			
			if exist_book is None:
				
				# Si el libro no existía guardamos la imagen
				config = ConfigRunner()
				media_root = config.media_root
				media_url = config.media_url
				
				#Si existe, guardamos imagen.
				if "cover" in request.data:
					file_name_server = book["slug"] + "." + request.data["cover"].filename.split(".")[-1]
					file = open(media_root + file_name_server, "wb")
					urlfile = media_url + file_name_server 
					for line in request.data["cover"].file:
						file.write(line)
					
					file.close()
					book["urlfile"] = urlfile
				
				
				id_book = bm.insertBook(book)
				
				if id_book is not None:
					return {
						"book":book,
						"msg":"Creado de forma satisfactoria.",
					}
					
				else:
					return {
						"msg":"Algo falló, inténtelo de nuevo.",
					}
					
			else:
				return {
						"msg":"Ya existe un libro con el título '%s'." % request.data["title"].value,
				}
		
		else:
			return {
				"msg":"Falta alguno de los campos.",
			}