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))
def post(self): self.objjson=json.loads(cgi.escape(self.request.body)) if not self.objjson.has_key("em") or not self.objjson.has_key("con") or not self.objjson.has_key("um"): self.response.out.write(json.dumps({"error":u"No hay datos usuario"})) return email = self.objjson['em'] password = self.objjson['con'] um=int(self.objjson['um']) lon=len(password) if not re.match(r'\b[\w.-]+@[\w.-]+.\w{2,4}\b', email): self.response.out.write(json.dumps({"error":"Error en email"})) if lon<6 or lon>30: self.response.out.write(json.dumps({"error":u"Error:Contraseña tiene que tener un tamaño entre 6 y 30 caracteres"})) return u = todosmodelos.Usuarios.query(todosmodelos.Usuarios.email==email,todosmodelos.Usuarios.password==utils.nueva_contra(password)).get() if u: if u.token and not u.valida: self.response.out.write(json.dumps({"error":u"Este email (%s)todavía no está validado, por favor revisa tu correo." % email})) return res=list_json(u.tienda,self.request.remote_addr,um) if not res: self.response.out.write(json.dumps({"error":u"Tienda no responde a get"})) return self.response.out.write(json.dumps(res,ensure_ascii=False)) """if res["tienda"]["ult_mod"] == um: self.response.out.write(json.dumps({"ok":"ok","tienda":{"ult_mod":um},"url":self.request.remote_addr},ensure_ascii=False)) else: #res["url"]=self.request.remote_addr self.response.out.write(json.dumps(res,ensure_ascii=False))""" else: self.response.out.write(json.dumps({"error":u"No se ha encontrado email %s con esa contraseña" % email}))
def post(self, *args, **kwargs): objjson=json.loads(cgi.escape(self.request.body)) if not objjson.has_key("em") or not objjson.has_key("con"): self.resjsonerror('Error:faltan campos') return email = objjson["em"] password = objjson['con'] if not mail.is_email_valid(email): self.resjsonerror('Error:email no valido') return lon=len(password) if lon<6 or lon>30: self.resjsonerror(u'Error:Contraseña tiene 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 u = todosmodelos.Clientes.query(todosmodelos.Clientes.email==email,todosmodelos.Clientes.password==utils.nueva_contra(password),todosmodelos.Clientes.idsocial=="bd",ancestor=ti).get() if u: if u.token and not u.validada: self.resjsonerror(u'Este email todavía no está validado, por favor revise su correo.') return self.session['cliente']={'tipo':"bd","usu":u,"tienda":ti} self.resjsonok("Login as %s" % email) else: self.resjsonerror(u'Email o contraseña incorrecta.')