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 username 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) #return self.login(request) # 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. username = request.POST.get('username', None) password = request.POST.get('password', None) user = authenticate(username=username, password=password) if user is None: message = ERROR_MESSAGE if u'@' in username: # Mistakenly entered e-mail address instead of username? Look it up. try: user = User.objects.get(email=username) except (User.DoesNotExist, User.MultipleObjectsReturned): message = _("Usernames cannot contain the '@' character.") else: if user.check_password(password): message = _("Your e-mail address is not your username." " Try '%s' instead.") % user.username else: message = _("Usernames cannot contain the '@' character.") 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)