def login(self, request): """ Displays the login form for the given HttpRequest. """ from django.contrib.auth.models import User ERROR_MESSAGE = _( "Please enter a correct email and password. Note that both fields are case-sensitive." ) LOGIN_FORM_KEY = 'this_is_the_login_form' # If this isn't already the login page, display it. if not request.POST.has_key(LOGIN_FORM_KEY): if request.POST: message = _( "Please log in again, because your session has expired.") else: message = "" return self.display_login_form(request, message) # Check that the user accepts cookies. if not request.session.test_cookie_worked(): message = _( "Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again." ) return self.display_login_form(request, message) else: request.session.delete_test_cookie() # Check the password. email = request.POST.get('email', None) password = request.POST.get('password', None) user = authenticate(email=email, password=password) if user is None: message = ERROR_MESSAGE return self.display_login_form(request, message) # The user data is correct; log in the user in and continue. else: if user.is_active and user.is_staff: login(request, user) # user has no applicable categories, probably his role is undefined if not applicable_categories(user) and not user.is_superuser: return self.norole(request, user) next_path = request.get_full_path() # load all user's specific settings into session for c in AdminSetting.objects.filter(user=user).values('var'): uc = get_user_config(user, c['var']) set_user_config_session(request.session, c['var'], uc) if request.POST.get('next'): next_path += request.POST.get('next') return HttpResponseRedirect(next_path) else: return self.display_login_form(request, ERROR_MESSAGE)
def filter_by_main_categories_save(self, request, extra_content=None): site_filter_form = SiteFilterForm(user=request.user, data=request.POST) if site_filter_form.is_valid(): set_user_config_db(request.user, newman_settings.CATEGORY_FILTER, site_filter_form.cleaned_data['sites']) set_user_config_session(request.session, newman_settings.CATEGORY_FILTER, site_filter_form.cleaned_data['sites']) return JsonResponse(ugettext('Your settings were saved.')) else: return JsonResponseError(ugettext('Error in form.'), status=newman_settings.STATUS_FORM_ERROR)
def login(self, request): """ Displays the login form for the given HttpRequest. """ from django.contrib.auth.models import User ERROR_MESSAGE = _("Please enter a correct email and password. Note that both fields are case-sensitive.") LOGIN_FORM_KEY = 'this_is_the_login_form' # If this isn't already the login page, display it. if not request.POST.has_key(LOGIN_FORM_KEY): if request.POST: message = _("Please log in again, because your session has expired.") else: message = "" return self.display_login_form(request, message) # Check that the user accepts cookies. if not request.session.test_cookie_worked(): message = _("Looks like your browser isn't configured to accept cookies. Please enable cookies, reload this page, and try again.") return self.display_login_form(request, message) else: request.session.delete_test_cookie() # Check the password. email = request.POST.get('email', None) password = request.POST.get('password', None) user = authenticate(email=email, password=password) if user is None: message = ERROR_MESSAGE return self.display_login_form(request, message) # The user data is correct; log in the user in and continue. else: if user.is_active and user.is_staff: login(request, user) # user has no applicable categories, probably his role is undefined if not applicable_categories(user) and not user.is_superuser: return self.norole(request, user) next_path = request.get_full_path() # load all user's specific settings into session for c in AdminSetting.objects.filter(user=user).values('var'): uc = get_user_config(user, c['var']) set_user_config_session(request.session, c['var'], uc) if request.POST.get('next'): next_path += request.POST.get('next') return HttpResponseRedirect(next_path) else: return self.display_login_form(request, ERROR_MESSAGE)