def logins(request): #logger.debug('request.method: {0}'.format(request.method)) if request.method == 'POST': request.session.set_test_cookie() logger.debug('request.POST: {0}'.format(request.POST)) login_form = AuthenticationForm(request, request.POST) #return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}', mimetype="application/json") if login_form.is_valid(): return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}', mimetype="application/json") #if request.is_ajax: # identification, password, remember_me = (login_form.cleaned_data['identification'], # login_form.cleaned_data['password'], # login_form.cleaned_data['remember_me']) # user = authenticate(identification=identification, password=password) # if user is not None: # #return HttpResponseRedirect(request.REQUEST.get('next', '/')) # return HttpResponse('{"error":{"text":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}', mimetype="application/json") # else: # return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json") else: return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json") else: #return HttpResponseForbidden() # catch invalid ajax and all non ajax** return HttpResponse('{"error":{"text":"Username and Password are required."}}', mimetype="application/json")
def signin_form(request, form): dajax = Dajax() form = AuthenticationForm(deserialize_form(form)) form_id = 'aform' try: dajax.remove_css_class('#'+form_id+' input', 'error') dajax.script('form_errors(false,"{0}");'.format(form_id)) if not form.is_valid(): raise Exception('Error') identification, password, remember_me = (form.cleaned_data['identification'], form.cleaned_data['password'], form.cleaned_data['remember_me']) user = authenticate(identification=identification, password=password) if user.is_active: login(request, user) if remember_me: request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400) else: request.session.set_expiry(0) dajax.script('update_sign_in({0},"{1}");'.format(user.id,user.username)) except Exception as e: dajax.remove_css_class('#'+form_id+' input', 'error') print e dajax.script("form_errors(true,'{0}','{1}<br>{2}');".format(form_id,e.message,form.errors)) for error in form.errors: dajax.add_css_class('#'+form_id+' #id_%s' % error, 'error') return dajax.json()
def RegisterUser(request): auth_basic_form = SignupFormOnlyEmail() if request.method == 'POST': user_form = SignupFormOnlyEmail(request.POST) if user_form.is_valid(): try: user = User.objects.get(email__iexact=request.POST['email']) except Exception as e: if 'does not exist' in str(e): user = user_form.save() user_auth = authenticate(identification=user.email, check_password=False) if user_auth is not None: login(request, user_auth) x_forwarded_for = request.META.get( 'HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') g = GeoIP() lat, lon = g.lat_lon(ip) #lat,lon = g.lat_lon('186.83.0.68') UserProfile.objects.filter(user=user).update( coords='POINT(' + str(lon) + ' ' + str(lat) + ')') request.session['register'] = True return redirect("/change_user/") else: login_form = AuthenticationForm() diccionary = { 'messageReg': 'User already exists', 'login': login_form, 'auth_basic': auth_basic_form, } return render(request, "login.html", diccionary) else: login_form = AuthenticationForm() diccionary = { 'messageReg': 'User already exists', 'login': login_form, 'auth_basic': auth_basic_form, } return render(request, "login.html", diccionary) else: message = 'Invalid data. Please use different information to register' if 'email' in user_form.errors: message = user_form.errors['email'] login_form = AuthenticationForm() login_form.fields['identification'].label = 'Email' diccionary = { 'messageReg': message, 'login': login_form, 'auth_basic': auth_basic_form, } return render(request, "login.html", diccionary) else: return redirect("/login/")
def signin_form_test(request, form, success_url=None): logger.debug("signin_form") dajax = Dajax() form = AuthenticationForm(deserialize_form(form)) if form.is_valid(): identification, password, remember_me = ( form.cleaned_data['identification'], form.cleaned_data['password'], form.cleaned_data['remember_me']) user = authenticate(identification=identification, password=password) if user.is_active: login(request, user) if remember_me: request.session.set_expiry( userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400) else: request.session.set_expiry(0) # TODO: добавить сообщения if userena_settings.USERENA_USE_MESSAGES: logger.debug(u"Message: {0}".format( _('You have been signed in.'))) messages.success(request, _('You have been signed in.'), fail_silently=True) # TODO: изменить переадресацию после регистрации #redirect_to = signin_redirect(REDIRECT_FIELD_NAME, user) redirect_to = reverse('userena_profile_detail', kwargs={'username': user.username}) logger.debug("Redirect: {0}".format(redirect_to)) else: redirect_to = reverse('userena_disabled', kwargs={'username': user.username}) logger.debug("Redirect: {0}".format(redirect_to)) dajax.remove_css_class('#signin_form div', 'error') dajax.clear('#signin_form .help-inline', 'innerHTML') dajax.redirect(redirect_to, delay=10) else: dajax.remove_css_class('#signin_form div', 'error') dajax.clear('#signin_form .help-inline', 'innerHTML') dajax.add_css_class('#signin_form div.alert-error', 'hide') try: if form.errors['__all__'] is not None: dajax.remove_css_class('#signin_form div.alert-error', 'hide') dajax.assign( '#signin_form .alert-error', 'innerHTML', "<button type='button' class='close' data-dismiss='alert'>×</button>{0}" .format(form.errors['__all__'])) except Exception, e: pass for error in form.errors: dajax.add_css_class('#signin_form #gr_id_%s' % error, 'error') #dajax.remove_css_class('#signin_form #e_id_%s' % error, 'hide') dajax.assign('#signin_form #e_id_%s' % error, 'innerHTML', form.errors[error][0])
def get_context_data(self, **kwargs): context = super(IndexView, self).get_context_data(**kwargs) context['form'] = AuthenticationForm() return context
def LoginUser(request): url_redirect = request.GET.get("next", "/") auth_basic_form = SignupFormOnlyEmail() if request.method == 'POST': login_form = AuthenticationForm(request.POST) login_form.fields['identification'].label = 'Email' if login_form.is_valid(): username = request.POST['identification'] password = request.POST['password'] user = authenticate(identification=username, password=password) if user is not None: login(request, user) x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR') if x_forwarded_for: ip = x_forwarded_for.split(',')[0] else: ip = request.META.get('REMOTE_ADDR') g = GeoIP() lat, lon = g.lat_lon(ip) #lat,lon = g.lat_lon('186.83.0.68') UserProfile.objects.filter(user=user).update( coords='POINT(' + str(lon) + ' ' + str(lat) + ')') return redirect(url_redirect) else: diccionary = { 'message': 'Invalid information', 'login': login_form, 'auth_basic': auth_basic_form, } else: diccionary = { 'message': 'Invalid information', 'login': login_form, 'auth_basic': auth_basic_form, } else: login_form = AuthenticationForm() login_form.fields['identification'].label = 'Email' diccionary = { 'login': login_form, 'auth_basic': auth_basic_form, } if 'message' in request.session: diccionary['message'] = request.session['message'] del request.session['message'] return render(request, 'login.html', diccionary)
def login(request): context = { 'signin': AuthenticationForm(), 'signup': SignupForm(), 'signup_opt': SignupOptionalForm() } if request.method == 'POST': if request.POST['action-type'] == 'signup': form = SignupOptionalForm(request.POST) if not form.is_valid(): context['signup'] = SignupOptionalForm(request.POST) context['signup_opt'] = form context['default_tab'] = 1 else: context['signup_opt'] = SignupOptionalForm(request.POST) context['action'] = 'signup' context['default_tab'] = 1 response = views.signup( request, signup_form=SignupForm, template_name='cs_auth/login.jinja2', extra_context=context, ) # It redirects on success: we intercept add the extra # information if isinstance(response, http.HttpResponseRedirect): # Fill extra info in signup form aux = request.POST success_url = '/accounts/%s' % aux['username'] user = User.objects.get(username=aux['username']) user.first_name = aux['first_name'] user.last_name = aux['last_name'] # Fill extra profile info form = SignupOptionalForm(request.POST) form.is_valid() aux = form.cleaned_data user.profile.about_me = aux['about_me'] user.profile.gender = aux['gender'] user.profile.date_of_birth = aux['date_of_birth'] # Save modifications and go user.save() user.profile.save() return redirect(success_url) return response else: context['action'] = 'signin' return views.signin( request, template_name='cs_auth/login.jinja2', extra_context=context, ) return render(request, 'cs_auth/login.jinja2', context)
def signin_form_test(request, form, success_url=None): logger.debug("signin_form") dajax = Dajax() form = AuthenticationForm(deserialize_form(form)) if form.is_valid(): identification, password, remember_me = (form.cleaned_data['identification'], form.cleaned_data['password'], form.cleaned_data['remember_me']) user = authenticate(identification=identification, password=password) if user.is_active: login(request, user) if remember_me: request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400) else: request.session.set_expiry(0) # TODO: добавить сообщения if userena_settings.USERENA_USE_MESSAGES: logger.debug(u"Message: {0}".format(_('You have been signed in.'))) messages.success(request, _('You have been signed in.'), fail_silently=True) # TODO: изменить переадресацию после регистрации #redirect_to = signin_redirect(REDIRECT_FIELD_NAME, user) redirect_to = reverse('userena_profile_detail', kwargs={'username': user.username}) logger.debug("Redirect: {0}".format(redirect_to)) else: redirect_to = reverse('userena_disabled', kwargs={'username': user.username}) logger.debug("Redirect: {0}".format(redirect_to)) dajax.remove_css_class('#signin_form div', 'error') dajax.clear('#signin_form .help-inline', 'innerHTML') dajax.redirect(redirect_to, delay=10) else: dajax.remove_css_class('#signin_form div', 'error') dajax.clear('#signin_form .help-inline', 'innerHTML') dajax.add_css_class('#signin_form div.alert-error', 'hide') try: if form.errors['__all__'] is not None: dajax.remove_css_class('#signin_form div.alert-error', 'hide') dajax.assign('#signin_form .alert-error', 'innerHTML', "<button type='button' class='close' data-dismiss='alert'>×</button>{0}".format(form.errors['__all__'])) except Exception, e: pass for error in form.errors: dajax.add_css_class('#signin_form #gr_id_%s' % error, 'error') #dajax.remove_css_class('#signin_form #e_id_%s' % error, 'hide') dajax.assign('#signin_form #e_id_%s' % error, 'innerHTML', form.errors[error][0])
def get_context_data(self, **kwargs): return super().get_context_data( signin=AuthenticationForm(), signup=SignupForm(), signup_opt=SignupOptionalForm(), **kwargs )
def member_forms(request): """ Signin and signup forms (for the upper panel) """ additions = { 'signup_form': I4PSignupForm(), 'signin_form': AuthenticationForm(), } return additions
def home(request): if request.user.is_authenticated(): if request.user.username == "admin": return redirect("admin/") else: return redirect("accounts/%s" % request.user) else: form = AuthenticationForm() return render_to_response('dashboard/home.html',{'form':form,}, context_instance=RequestContext(request))
def signin(request): """ Signin using email or username with password. Signs a user in by combining email/username with password. If the combination is correct and the user :func:`is_active` the :func:`redirect_signin_function` is called with the arguments ``REDIRECT_FIELD_NAME`` and an instance of the :class:`User` who is is trying the login. The returned value of the function will be the URL that is redirected to. **Context** ``form`` Form used for authentication supplied by ``auth_form``. """ form = AuthenticationForm() if request.method == 'POST': form = AuthenticationForm(request.POST, request.FILES) if form.is_valid(): identification, password, remember_me = (form.cleaned_data['identification'], form.cleaned_data['password'], form.cleaned_data['remember_me']) user = authenticate(identification=identification, password=password) if user.is_active: login(request, user) if remember_me: request.session.set_expiry(userena_settings.USERENA_REMEMBER_ME_DAYS[1] * 86400) else: request.session.set_expiry(0) # send a signal that a user has signed in userena_signals.account_signin.send(sender=None, user=user) return {'user':{"username":user.get_full_name(), "customer_number":user.userprofile.customer_number}} else: return {'error':"无效的用户。"} else: return {'error':"输入数据有误。"}
def authapi_signin(request, auth_form=AuthenticationForm, template_name='authapi/signin_form.html', extra_context=None): form = auth_form() form = AuthenticationForm() if request.method == 'POST': form = auth_form(request.POST, request.FILES) if form.is_valid(): identification, password, remember_me = (form.cleaned_data['identification'], form.cleaned_data['password'], form.cleaned_data['remember_me']) user = authenticate(identification=identification, password=password) if user and user.is_active: login(request, user) result = True else: result = False response = HttpResponse(json.dumps(result), mimetype = u'application/json') return response
def test_login_form(self): """ Check that the ``LoginForm`` requires both identification and password """ invalid_data_dicts = [{ 'data': { 'identification': '', 'password': '******' }, 'error': ('identification', [u'Please supply your email.']) }, { 'data': { 'identification': 'john', 'password': '******' }, 'error': ('__all__', [ u'Please enter a correct email and password. Note that fields are case-sensitive.' ]) }] for invalid_dict in invalid_data_dicts: form = AuthenticationForm(data=invalid_dict['data']) self.failIf(form.is_valid()) self.assertEqual(form.errors[invalid_dict['error'][0]], invalid_dict['error'][1]) valid_data_dicts = [{ 'identification': '*****@*****.**', 'password': '******' }] for valid_dict in valid_data_dicts: form = AuthenticationForm(valid_dict) self.failUnless(form.is_valid())