def activate_user(request, backend=RegistrationBackend(), success_url=None, extra_context=None, **context): user = backend.activate(request, **context) if user: try: event = Event.objects.get(id=s.WELCOME_EVENT_ID) employer = Employer.objects.get(name="Umeqo") recruiter = User.objects.get(id=s.UMEQO_RECRUITER_ID) notice_type = NoticeType.objects.get(label="public_invite") invite_message = 'Welcome to Umeqo! Recruiters can now send you invitations to events, and this is an example of one. To learn more, click "RSVP Attending" below.' notification.send( [user], notice_type, { 'employer': employer, 'recruiter': recruiter, 'invite_message': invite_message, 'event': event, 'name': user.first_name }) except Event.DoesNotExist: pass user.backend = s.AUTHENTICATION_BACKENDS[0] auth_login(request, user) us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) if success_url is None: to, args, context = backend.post_activation_redirect(request, user) return redirect(to, *args, **context) else: return redirect(success_url) context.update(extra_context or {}) return context
def activate_user(request, backend=RegistrationBackend(), success_url=None, extra_context=None, **context): user = backend.activate(request, **context) if user: try: event = Event.objects.get(id=s.WELCOME_EVENT_ID) employer = Employer.objects.get(name="Umeqo") recruiter = User.objects.get(id=s.UMEQO_RECRUITER_ID) notice_type = NoticeType.objects.get(label="public_invite") invite_message = 'Welcome to Umeqo! Recruiters can now send you invitations to events, and this is an example of one. To learn more, click "RSVP Attending" below.' notification.send( [user], notice_type, { "employer": employer, "recruiter": recruiter, "invite_message": invite_message, "event": event, "name": user.first_name, }, ) except Event.DoesNotExist: pass user.backend = s.AUTHENTICATION_BACKENDS[0] auth_login(request, user) us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) if success_url is None: to, args, context = backend.post_activation_redirect(request, user) return redirect(to, *args, **context) else: return redirect(success_url) context.update(extra_context or {}) return context
def password_change(request, password_change_form=PasswordChangeForm, extra_context=None): form = password_change_form(user=request.user, data=request.POST) if form.is_valid(): form.save() request.user.userattributes.last_password_change_date = datetime.now() for session_key_object in request.user.sessionkey_set.all(): Session.objects.filter(session_key=session_key_object.session_key).delete() request.user.sessionkey_set.all().delete() request.user.backend = "django.contrib.auth.backends.ModelBackend" auth_login(request, request.user) us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) data = {"valid": True} else: data = {"valid": False, "errors": form.errors} return HttpResponse(simplejson.dumps(data), mimetype="application/json")
def password_change(request, password_change_form=PasswordChangeForm, extra_context=None): form = password_change_form(user=request.user, data=request.POST) if form.is_valid(): form.save() request.user.userattributes.last_password_change_date = datetime.now() for session_key_object in request.user.sessionkey_set.all(): Session.objects.filter( session_key=session_key_object.session_key).delete() request.user.sessionkey_set.all().delete() request.user.backend = 'django.contrib.auth.backends.ModelBackend' auth_login(request, request.user) us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) data = {'valid': True} else: data = {'valid': False, 'errors': form.errors} return HttpResponse(simplejson.dumps(data), mimetype="application/json")
def login(request, template_name="login.html", authentication_form=AuthenticationForm, login_url=None, current_app=None, extra_context={}): if request.user.is_superuser: return redirect(reverse('super_login')) elif request.user.is_authenticated(): return redirect(reverse('home')) # Log the login attempt. ip_address = get_ip(request) if ip_address: LoginAttempt.objects.create(ip_address=ip_address) half_day_ago = datetime.now() - timedelta(hours=12) login_attempts = LoginAttempt.objects.all().filter( ip_address=ip_address).filter( attempt_datetime__gt=half_day_ago).count() extra_context.update({ 'show_captcha': (login_attempts >= 10), 'invalid_captcha': False, 'RECAPTCHA_PUBLIC_KEY': s.RECAPTCHA_PUBLIC_KEY, }) form = authentication_form(data=request.POST) if not form.is_valid(): if re.search(m.not_activated, str(form.errors)): extra_context.update({'show_resend_activation_email_form': True}) else: extra_context.update({'show_resend_activation_email_form': False}) if request.method == 'POST' and login_attempts > 10: captcha_params = urllib.urlencode({ 'privatekey': s.RECAPTCHA_PRIVATE_KEY, 'remoteip': ip_address, 'challenge': request.POST.get('recaptcha_challenge_field', ''), 'response': request.POST.get('recaptcha_response_field', '') }) captcha_req = urllib2.Request( url="http://www.google.com/recaptcha/api/verify", data=captcha_params, headers={ "Content-type": "application/x-www-form-urlencoded", "User-agent": "reCAPTCHA Umeqo" }) captcha_resp = urllib2.urlopen(captcha_req) return_values = captcha_resp.read().splitlines() captcha_resp.close() if return_values[0] != 'true': form = authentication_form(data=request.POST) current_site = get_current_site(request) context = extra_context context.update({ 'invalid_captcha': True, 'form': form, 'site': current_site, 'site_name': current_site.name, }) return context response = auth_login_view(request, template_name=template_name, authentication_form=AuthenticationForm, current_app=current_app, extra_context=extra_context) if request.user.is_staff: return redirect(reverse('super_login')) else: us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) return response
def login( request, template_name="login.html", authentication_form=AuthenticationForm, login_url=None, current_app=None, extra_context={}, ): if request.user.is_superuser: return redirect(reverse("super_login")) elif request.user.is_authenticated(): return redirect(reverse("home")) # Log the login attempt. ip_address = get_ip(request) if ip_address: LoginAttempt.objects.create(ip_address=ip_address) half_day_ago = datetime.now() - timedelta(hours=12) login_attempts = ( LoginAttempt.objects.all().filter(ip_address=ip_address).filter(attempt_datetime__gt=half_day_ago).count() ) extra_context.update( { "show_captcha": (login_attempts >= 10), "invalid_captcha": False, "RECAPTCHA_PUBLIC_KEY": s.RECAPTCHA_PUBLIC_KEY, } ) form = authentication_form(data=request.POST) if not form.is_valid(): if re.search(m.not_activated, str(form.errors)): extra_context.update({"show_resend_activation_email_form": True}) else: extra_context.update({"show_resend_activation_email_form": False}) if request.method == "POST" and login_attempts > 10: captcha_params = urllib.urlencode( { "privatekey": s.RECAPTCHA_PRIVATE_KEY, "remoteip": ip_address, "challenge": request.POST.get("recaptcha_challenge_field", ""), "response": request.POST.get("recaptcha_response_field", ""), } ) captcha_req = urllib2.Request( url="http://www.google.com/recaptcha/api/verify", data=captcha_params, headers={"Content-type": "application/x-www-form-urlencoded", "User-agent": "reCAPTCHA Umeqo"}, ) captcha_resp = urllib2.urlopen(captcha_req) return_values = captcha_resp.read().splitlines() captcha_resp.close() if return_values[0] != "true": form = authentication_form(data=request.POST) current_site = get_current_site(request) context = extra_context context.update( {"invalid_captcha": True, "form": form, "site": current_site, "site_name": current_site.name} ) return context response = auth_login_view( request, template_name=template_name, authentication_form=AuthenticationForm, current_app=current_app, extra_context=extra_context, ) if request.user.is_staff: return redirect(reverse("super_login")) else: us_user_logged_in.send(sender=request.user.__class__, request=request, user=request.user) return response