def get(self): challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit(challenge, response, "6LcCYe8SAAAAAL4_401ToB3iSuJisouROiEs536m", remoteip) if cResponse.is_valid: # password = hashlib.hashlib.sha256(os.urandom(32) || [self.request.password | lookup_password_from_code(self.response.code)]) badUser = NotVerUser.gql("WHERE code = :1", self.request.get('code')).get() if (badUser): goodUser = User(email=badUser.email, password=badUser.password, username=badUser.email, salt=badUser.salt) goodUser.put() badUser.delete() # delete badUser at this stage self.response.write("THANKEES FOR REGISTERING " + goodUser.username) self.response.write( """<form action="/loginweb" method="get"><input type="submit" value="Login"></form> """ ) else: self.response.write("No such unregistered user exists. Sorry!") else: error = cResponse.error_code
def post(self): f = register_form() captcha_html = captcha.displayhtml(self.settings.CAPTCHA_PUBLIC_KEY, True) captcha_error = '' data = self.get_arguments() _ = self._ if False and data.has_key('username'): existing_user = User.one({'username': data['username']}) f.add_notnull_validator(not existing_user, "The username you wanted is already taken.") try: if f.validates(Storage(data)): #todo use async call captcha_resp = captcha.submit( self.get_argument('recaptcha_challenge_field'), self.get_argument('recaptcha_response_field'), self.settings.CAPTCHA_PRIVATE_KEY, self.request.remote_ip ) if captcha_resp.is_valid: new_user = User() data['is_admin'] = False data['password_hashed'] = unicode(hashlib.sha1(data['password']).hexdigest(), 'utf-8') data['auth_provider'] = u'form' new_user.save(data) self.set_flash(_("You have been successfully registered. ")) self.redirect("/") return captcha_error = captcha_resp.error_code raise Exception("Invalid captcha code") raise InvalidFormDataError(_("Form still have errors.")) except Exception, e: f.note = f.note if f.note else e self.render("register", f=f, captcha_html=captcha_html, captcha_error=captcha_error)
def get(self): challenge = self.request.get("recaptcha_challenge_field") response = self.request.get("recaptcha_response_field") remoteip = environ["REMOTE_ADDR"] cResponse = captcha.submit(challenge, response, "6LcCYe8SAAAAAL4_401ToB3iSuJisouROiEs536m", remoteip) if cResponse.is_valid: # password = hashlib.hashlib.sha256(os.urandom(32) || [self.request.password | lookup_password_from_code(self.response.code)]) badUser = NotVerUser.gql("WHERE code = :1", self.request.get("code")).get() if badUser: goodUser = User( email=badUser.email, password=badUser.password, username=badUser.email, salt=badUser.salt ) goodUser.put() badUser.delete() # delete badUser at this stage self.response.write("THANKEES FOR REGISTERING " + goodUser.username) self.response.write( """<form action="/loginweb" method="get"><input type="submit" value="Login"></form> """ ) else: self.response.write("No such unregistered user exists. Sorry!") else: error = cResponse.error_code
def clean(self, values): super(ReCaptchaField, self).clean(values[1]) recaptcha_challenge_value = smart_unicode(values[0]) recaptcha_response_value = smart_unicode(values[1]) check_captcha = submit(recaptcha_challenge_value, recaptcha_response_value, settings.RECAPTCHA_PRIVATE_KEY, {}) if not check_captcha.is_valid: raise forms.util.ValidationError(self.error_messages['captcha_invalid']) return values[0]
def clean(self, values): super(ReCaptchaField, self).clean(values[1]) recaptcha_challenge_value = smart_unicode(values[0]) recaptcha_response_value = smart_unicode(values[1]) check_captcha = captcha.submit(recaptcha_challenge_value, recaptcha_response_value, settings.RECAPTCHA_PRIVATE_KEY, {}) if not check_captcha.is_valid: raise forms.util.ValidationError(self.error_messages['captcha_invalid']) return values[0]
def clean(self, values): from django.utils.encoding import smart_unicode from recaptcha import captcha super(ReCaptchaField, self).clean(values[1]) recaptcha_challenge_value = smart_unicode(values[0]) recaptcha_response_value = smart_unicode(values[1]) check_captcha = captcha.submit(recaptcha_challenge_value, recaptcha_response_value, Option.objects.get(key='recaptcha_private_key').value, {}) if not check_captcha.is_valid: raise forms.util.ValidationError(self.error_messages['captcha_invalid']) return values[0]
def verify_captcha(sender, comment, request, **kwargs): challenge_field = request.POST.get('recaptcha_challenge_field') response_field = request.POST.get('recaptcha_response_field') client = request.META['REMOTE_ADDR'] check_captcha = captcha.submit(challenge_field, response_field, settings.RECAPTCHA_PRIVATE_KEY, client) if check_captcha.is_valid is False: return False return True
def comment(request, post_id): # Try to get the post page try: page_dict = gen_post(post_id) if page_dict["post"].comments_enable == False: return HttpResponseRedirect('/post/'+post_id) except: raise Http404 if request.method == 'POST': try: p = Post.objects.get(id=post_id) # Check the form captcha. If not good, pass the template an error code captcha_response = captcha.submit( request.POST.get("recaptcha_challenge_field", None), request.POST.get("recaptcha_response_field", None), RECAPTCHA_PRV_KEY, request.META.get("REMOTE_ADDR", None) ) page_dict['comment_errors'] = "" if request.POST['name'] == "": page_dict['comment_errors'] += "Name can not be blank. " if len(request.POST['name']) > MAX_COMMENT_NAME_LEN: page_dict['comment_errors'] += "Name exceeds maximum length of "+str(MAX_COMMENT_NAME_LEN)+" characters. " if request.POST['body'] == "": page_dict['comment_errors'] += "Comment can not be blank. " if len(request.POST['body']) > MAX_COMMENT_LEN: page_dict['comment_errors'] += "Comment exceeds maximum length of "+str(MAX_COMMENT_LEN)+" characters. " if captcha_response.is_valid == False: page_dict['comment_errors'] += "Human verification failed. " if page_dict['comment_errors'] == "": name_fix = ''.join(ch for ch in request.POST['name'] if ch.isalnum()) c = Comment(post=p, name=name_fix, body=request.POST['body'], hide=False, pub_date=datetime.datetime.fromtimestamp(time.time()-28800)) c.save() return HttpResponseRedirect('/post/'+post_id+'/#'+str(c.pk)) else: page_dict['comment_error_name'] = request.POST['name'] page_dict['comment_error_body'] = request.POST['body'] return render_to_response('post.html', page_dict, context_instance=RequestContext(request)) except: raise Http404 return HttpResponseRedirect('/post/'+post_id)
def post(self): f = register_form() captcha_html = captcha.displayhtml(self.settings.CAPTCHA_PUBLIC_KEY, True) captcha_error = '' data = self.get_arguments() _ = self._ if False and data.has_key('username'): existing_user = User.one({'username': data['username']}) f.add_notnull_validator( not existing_user, "The username you wanted is already taken.") try: if f.validates(Storage(data)): #todo use async call captcha_resp = captcha.submit( self.get_argument('recaptcha_challenge_field'), self.get_argument('recaptcha_response_field'), self.settings.CAPTCHA_PRIVATE_KEY, self.request.remote_ip) if captcha_resp.is_valid: new_user = User() data['is_admin'] = False data['password_hashed'] = unicode( hashlib.sha1(data['password']).hexdigest(), 'utf-8') data['auth_provider'] = u'form' new_user.save(data) self.set_flash( _("You have been successfully registered. ")) self.redirect("/") return captcha_error = captcha_resp.error_code raise Exception("Invalid captcha code") raise InvalidFormDataError(_("Form still have errors.")) except Exception, e: f.note = f.note if f.note else e self.render("register", f=f, captcha_html=captcha_html, captcha_error=captcha_error)
def execute(self): method = self.request.method if method == 'GET': self.send_form(None) else: if self.get_param('x'): # check if nickname is available nickname = self.request.get('nickname') email = self.request.get('email') message = self.validate_nickname(nickname) if message: self.render_json({'valid': False, 'message': message}) else: self.render_json({'valid': True}) return else: # Validate captcha challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit( challenge, response, self.get_application().recaptcha_private_key, remoteip) if not cResponse.is_valid: # If the reCAPTCHA server can not be reached, # the error code recaptcha-not-reachable will be returned. self.send_form(cResponse.error_code) return nickname = self.request.get('nickname') email = self.request.get('email') password = self.request.get('password') re_email = self.request.get('re_email') re_password = self.request.get('re_password') if not self.get_param('terms-and-conditions'): self.show_error( nickname, email, u'Debes aceptar los términos y condiciones del servicio' ) return if not re.match( '^[\w\.-]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$', email): self.show_error(nickname, email, 'Introduce una dirección de email válida') return if not re.match('^[\w\.-]+$', nickname): self.show_error( nickname, email, u'El nombre de usuario sólo puede contener letras, números, puntos, guiones y guiones bajos' ) return if not password or len(password) < 4 or len(password) > 30: self.show_error( nickname, email, u'La contraseña debe ser de entre cuatro y treinta caracteres' ) return message = self.validate_nickname(nickname) if message: self.show_error(nickname, email, message) return u = model.UserData.all().filter('email =', email).get() if u: self.show_error( nickname, email, u'Ya existe una cuenta con esa dirección de correo electrónico' ) return if email != re_email: self.show_error( nickname, email, 'El e-mail y el e-mail repetido no son iguales') return if password != re_password: self.show_error( nickname, email, u'La contraseña y la contraseña repetida no son iguales' ) return times = 5 user = model.UserData(nickname=nickname, email=email, password=self.hash_password( nickname, password), items=0, draft_items=0, messages=0, draft_messages=0, comments=0, rating_count=0, rating_total=0, rating_average=0, threads=0, responses=0, groups=0, favourites=0, public=False, contacts=0) user.put() app = model.Application.all().get() if app: app.users += 1 app.put() memcache.delete('app') #send welcome email app = self.get_application() subject = "Bienvenido a debug_mode=ON" body = u""" Gracias por registrarte en debug_mode=ON. El equipo de debug_mode=ON te damos la bienvenida. Completa tu perfil con tu información %s/user.edit Publica artículos, ¡puedes ganar dinero!. Informaté en http://www.debugmodeon.com/item/5674/como-anadir-adsense-a-tus-articulos Forma parte de los grupos que te interesan. Cada grupo tiene un foro, para compartir o debatir con las personas a las que les interese lo mismo que a ti. Listado de grupos %s/group.list Listado de hilos %s/forum.list Sugerencias, opiniones, nos gustaría tener tu feedback http://www.debugmodeon.com/group.forum/9240/debug-mode-on/opiniones-sugerencias-feedback-general Para más información tenemos una sección de FAQ %s/html/faq.html Atentamente, El equipo de debug_mode=ON. """ % (app.url, app.url, app.url, app.url) self.mail(subject=subject, body=body, to=[user.email]) self.sess.store(str(user.key()), 7200) rt = self.request.get('redirect_to') if not rt: rt = '/' self.redirect(rt)
def execute(self): method = self.request.method if method == 'GET': self.send_form(None) else: if self.get_param('x'): # check if nickname is available nickname = self.request.get('nickname') email = self.request.get('email') message = self.validate_nickname(nickname) if message: self.render_json({'valid': False, 'message': message}) else: self.render_json({'valid': True}) return else: # Validate captcha challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit( challenge, response, self.get_application().recaptcha_private_key, remoteip) if not cResponse.is_valid: # If the reCAPTCHA server can not be reached, # the error code recaptcha-not-reachable will be returned. self.send_form(cResponse.error_code) return nickname = self.request.get('nickname') email = self.request.get('email') password = self.request.get('password') re_email = self.request.get('re_email') re_password = self.request.get('re_password') if not self.get_param('terms-and-conditions'): self.show_error(nickname, email, "You must accept terms and conditions") return if not re.match( '^[\w\.-]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$', email): self.show_error(nickname, email, "Enter a valid mail") return if not re.match('^[\w\.-]+$', nickname): self.show_error( nickname, email, "Username can contain letters, numbers, dots, hyphens and underscores" ) return if not password or len(password) < 4 or len(password) > 30: self.show_error( nickname, email, "Password must contain between 4 and 30 chars") return message = self.validate_nickname(nickname) if message: self.show_error(nickname, email, message) return u = model.UserData.all().filter('email =', email).get() if u: self.show_error(nickname, email, "This mail already exists") return if email != re_email: self.show_error(nickname, email, "Mail and validation mail are not equals") return if password != re_password: self.show_error( nickname, email, "New password and validation password are not equal") return times = 5 user = model.UserData(nickname=nickname, email=email, password=self.hash_password( nickname, password), articles=0, draft_articles=0, messages=0, draft_messages=0, comments=0, rating_count=0, rating_total=0, rating_average=0, threads=0, responses=0, communities=0, favourites=0, public=False, contacts=0) user.registrationType = 0 #local identifier user.put() app = model.Application.all().get() if app: app.users += 1 app.put() memcache.delete('app') #send welcome email app = self.get_application() subject = self.getLocale("Welcome to %s") % app.name bt = "Thanks for signing in %s. %s team welcome you to our social network. \n\nComplete your profile \n%s/module/user.edit\n\nPublish articles, \n\n\nBe part of the communities that interest you. Each community has a forum to share or discuss with people to whom the same interests as you.\nCommunities list %s/module/community.list\nThread list %s/forum.list\n\n\n\nFor futher information check our FAQ page\n%s/html/faq.html\n\nBest regards,\n\n%s Team." body = self.getLocale(bt) % (app.name, app.name, app.url, app.url, app.url, app.url, app.name) self.mail(subject=subject, body=body, to=[user.email]) self.sess.store(str(user.key()), 7200) rt = self.request.get('redirect_to') if not rt: rt = '/' self.redirect(rt)
def execute(self): method = self.request.method if method == 'GET': self.send_form(None) else: if self.get_param('x'): # check if nickname is available nickname = self.request.get('nickname') email = self.request.get('email') message = self.validate_nickname(nickname) if message: self.render_json({'valid': False, 'message': message}) else : self.render_json({'valid': True }) return else: # Validate captcha challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit( challenge, response, self.get_application().recaptcha_private_key, remoteip) if not cResponse.is_valid: # If the reCAPTCHA server can not be reached, # the error code recaptcha-not-reachable will be returned. self.send_form(cResponse.error_code) return nickname = self.request.get('nickname') email = self.request.get('email') password = self.request.get('password') re_email = self.request.get('re_email') re_password = self.request.get('re_password') if not self.get_param('terms-and-conditions'): self.show_error(nickname, email, u'Debes aceptar los términos y condiciones del servicio') return if not re.match('^[\w\.-]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$', email): self.show_error(nickname, email, 'Introduce una dirección de email válida') return if not re.match('^[\w\.-]+$', nickname): self.show_error(nickname, email, u'El nombre de usuario sólo puede contener letras, números, puntos, guiones y guiones bajos') return if not password or len(password) < 4 or len(password) > 30: self.show_error(nickname, email, u'La contraseña debe ser de entre cuatro y treinta caracteres') return message = self.validate_nickname(nickname) if message: self.show_error(nickname, email, message) return u = model.UserData.all().filter('email =', email).get() if u: self.show_error(nickname, email, u'Ya existe una cuenta con esa dirección de correo electrónico') return if email != re_email: self.show_error(nickname, email, 'El e-mail y el e-mail repetido no son iguales') return if password != re_password: self.show_error(nickname, email, u'La contraseña y la contraseña repetida no son iguales') return times = 5 user = model.UserData(nickname=nickname, email=email, password=self.hash_password(nickname, password), items=0, draft_items=0, messages=0, draft_messages=0, comments=0, rating_count=0, rating_total=0, rating_average=0, threads=0, responses=0, groups=0, favourites=0, public=False, contacts=0) user.put() app = model.Application.all().get() if app: app.users += 1 app.put() memcache.delete('app') #send welcome email app = self.get_application() subject = "Bienvenido a debug_mode=ON" body = u""" Gracias por registrarte en debug_mode=ON. El equipo de debug_mode=ON te damos la bienvenida. Completa tu perfil con tu información %s/user.edit Publica artículos, ¡puedes ganar dinero!. Informaté en http://www.debugmodeon.com/item/5674/como-anadir-adsense-a-tus-articulos Forma parte de los grupos que te interesan. Cada grupo tiene un foro, para compartir o debatir con las personas a las que les interese lo mismo que a ti. Listado de grupos %s/group.list Listado de hilos %s/forum.list Sugerencias, opiniones, nos gustaría tener tu feedback http://www.debugmodeon.com/group.forum/9240/debug-mode-on/opiniones-sugerencias-feedback-general Para más información tenemos una sección de FAQ %s/html/faq.html Atentamente, El equipo de debug_mode=ON. """ % (app.url, app.url, app.url, app.url) self.mail(subject=subject, body=body, to=[user.email]) self.sess.store(str(user.key()), 7200) rt = self.request.get('redirect_to') if not rt: rt = '/' self.redirect(rt)
def execute(self): method = self.request.method if method == 'GET': self.send_form(None) else: if self.get_param('x'): # check if nickname is available nickname = self.request.get('nickname') email = self.request.get('email') message = self.validate_nickname(nickname) if message: self.render_json({'valid': False, 'message': message}) else : self.render_json({'valid': True }) return else: # Validate captcha challenge = self.request.get('recaptcha_challenge_field') response = self.request.get('recaptcha_response_field') remoteip = environ['REMOTE_ADDR'] cResponse = captcha.submit( challenge, response, self.get_application().recaptcha_private_key, remoteip) if not cResponse.is_valid: # If the reCAPTCHA server can not be reached, # the error code recaptcha-not-reachable will be returned. self.send_form(cResponse.error_code) return nickname = self.request.get('nickname') email = self.request.get('email') password = self.request.get('password') re_email = self.request.get('re_email') re_password = self.request.get('re_password') if not self.get_param('terms-and-conditions'): self.show_error(nickname, email, "You must accept terms and conditions" ) return if not re.match('^[\w\.-]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$', email): self.show_error(nickname, email, "Enter a valid mail" ) return if not re.match('^[\w\.-]+$', nickname): self.show_error(nickname, email, "Username can contain letters, numbers, dots, hyphens and underscores" ) return if not password or len(password) < 4 or len(password) > 30: self.show_error(nickname, email, "Password must contain between 4 and 30 chars" ) return message = self.validate_nickname(nickname) if message: self.show_error(nickname, email, message) return u = model.UserData.all().filter('email =', email).get() if u: self.show_error(nickname, email, "This mail already exists" ) return if email != re_email: self.show_error(nickname, email, "Mail and validation mail are not equals" ) return if password != re_password: self.show_error(nickname, email, "New password and validation password are not equal" ) return times = 5 user = model.UserData(nickname=nickname, email=email, password=self.hash_password(nickname, password), articles=0, draft_articles=0, messages=0, draft_messages=0, comments=0, rating_count=0, rating_total=0, rating_average=0, threads=0, responses=0, communities=0, favourites=0, public=False, contacts=0) user.registrationType = 0#local identifier user.put() app = model.Application.all().get() if app: app.users += 1 app.put() memcache.delete('app') #send welcome email app = self.get_application() subject = self.getLocale("Welcome to %s") % app.name bt = "Thanks for signing in %s. %s team welcome you to our social network. \n\nComplete your profile \n%s/module/user.edit\n\nPublish articles, \n\n\nBe part of the communities that interest you. Each community has a forum to share or discuss with people to whom the same interests as you.\nCommunities list %s/module/community.list\nThread list %s/forum.list\n\n\n\nFor futher information check our FAQ page\n%s/html/faq.html\n\nBest regards,\n\n%s Team." body = self.getLocale(bt) % (app.name, app.name, app.url, app.url, app.url, app.url, app.name) self.mail(subject=subject, body=body, to=[user.email]) self.sess.store(str(user.key()), 7200) rt = self.request.get('redirect_to') if not rt: rt = '/' self.redirect(rt)