Exemplo n.º 1
0
	def post(self, *args, **kwargs):
		objjson=json.loads(cgi.escape(self.request.body))
		if not objjson.has_key("em") or not objjson.has_key("c1") or not objjson.has_key("c2"):
			self.resjsonerror('Error:faltan campos')
			return
		email = objjson["em"]
		password = objjson['c1']
		pw2= objjson['c2']

		if not mail.is_email_valid(email):
			self.resjsonerror('Error:email no valido')
			return
		lon=len(password)
		if lon<6 or lon>30 or not password == pw2:
			self.resjsonerror(u"Error:Contraseñas no coinciden en valor, tienen que tener un tamaño entre 6 y 30 caracteres")
			return
		nomtien = kwargs['nom_tien']
		if len(nomtien)<2:
			self.resjsonerror('No hay tienda en url')
			return
		ti=utils.getMemKeyTienda(nomtien)
		#ti=memcache.get(nomtien.upper()+"key")
		if not ti:
			ti=todosmodelos.Tienda.query(todosmodelos.Tienda.nombreupper==nomtien.upper()).get()
			if not ti:
				self.resjsonerror('No existe tienda %s' % nomtien)
				return
			ti=ti.key

		
		existeusu=todosmodelos.Clientes.query(todosmodelos.Clientes.email==email,todosmodelos.Clientes.idsocial=="bd",ancestor=ti).get()
		if existeusu:
			#u'email %s ya existe, <a href="javascript:verolvi()">¿olvidó su contraseña?</a>' %
			self.resjsonok("_olvido_", email)
			return
		token=utils.nuevo_token()
		user=todosmodelos.Clientes(parent=ti,email=email,password=utils.nueva_contra(password),idsocial="bd",validada=False,token=token)
		k=user.put()
		if not k:
			self.resjsonerror('Error:no se a podido grabar, inténtelo más tarde')
			return
		verification_url = self.uri_for('verification', nom_tien=nomtien, type='v', user_id=k.id(),signup_token=token, _full=True)
		mensaje = mail.EmailMessage()
		mensaje.sender = "Tienda %s <*****@*****.**>" % nomtien
		mensaje.to = "<%s>" % email
		msg = 'Mensaje enviado por tienda {tien} para confirmar sus credenciales, visite la web para confirmar:\
		 <a href="{url}">Confirmar credenciales</a>. Si usted no solicitó una cuenta en la tienda {tien} por favor ignore este mensaje'
		mensaje.html =msg.format(tien=nomtien, url=verification_url)
		mensaje.send()
		self.resjsonok("se ha enviado un mensaje a %s con un link ( %s ) de confirmación, por favor revise su correo." % (email,verification_url))
Exemplo n.º 2
0
	def post(self, *args, **kwargs):
		objjson=json.loads(cgi.escape(self.request.body))
		if not objjson.has_key("email"):
			self.resjsonerror('Error: falta email')
			return
		email = objjson["email"]
		if not mail.is_email_valid(email):
			self.resjsonerror('Error:email no valido')
			return
		nomtien = kwargs['nom_tien']
		if len(nomtien)<2:
			self.resjsonerror('No hay tienda en url')
			return
		ti=utils.getMemKeyTienda(nomtien);
		#ti = memcache.get(nomtien.upper()+"key")
		if not ti:
			ti=todosmodelos.Tienda.query(todosmodelos.Tienda.nombreupper==nomtien.upper()).get()
			if not ti:
				self.resjsonerror('No existe tienda %s' % nomtien)
				return
			ti=ti.key

		u = todosmodelos.Clientes.query(todosmodelos.Clientes.email==email,ancestor=ti).get()
		if not u:
			self.resjsonerror('No existe ningún usuario con email %s en tienda ' % (email,nomtien))
			return

		user_id = u.key.id()
		if u.validada and u.token:
			token=u.token
		else:
			token=utils.nuevo_token()
			u.token=token
			u.put()

		verification_url = self.uri_for('verification', nom_tien=nomtien, type='p', user_id=user_id,
		  signup_token=token, _full=True)

		#msg = 'Send an email to user in order to reset their password. \
		#      They will be able to do so by visiting <a href="{url}">Cambiar contraseña</a>'
		msg = u'Mensaje de Pagina web tienda {tien} para cambiar su contraseña, pulse en el link para dirigirse a la página web y \
			  <a href="{url}">Cambiar contraseña</a>. Si usted no solicitó el cambio de contraseña por favor ignore este mensaje.'    
		mensaje = mail.EmailMessage()
		mensaje.sender = "Pizzaweb <*****@*****.**>"
		mensaje.to = "%s <%s>" % email
		mensaje.html=msg.format(tien=nomtien, url=verification_url)
		mensaje.send()
		self.resjsonok("se ha enviado un mensaje a %s con un link ( %s ) de confirmación, por favor revise su correo." % (email,verification_url))