Ejemplo n.º 1
0
def login(request):
    extra_context = {
        "no_users": UserProfile.objects.all_users().count() == 0,
        "create_command": django_settings.MAAS_CLI,
        "external_auth_url": Config.objects.get_config("external_auth_url"),
    }
    if request.user.is_authenticated:
        return HttpResponseRedirect(reverse("index"))
    else:
        redirect_url = request.GET.get(
            REDIRECT_FIELD_NAME, request.POST.get(REDIRECT_FIELD_NAME)
        )
        if redirect_url == reverse("logout"):
            redirect_field_name = None  # Ignore next page.
        else:
            redirect_field_name = REDIRECT_FIELD_NAME
        result = dj_login(
            request,
            redirect_field_name=redirect_field_name,
            extra_context=extra_context,
        )
        if request.user.is_authenticated:
            create_audit_event(
                EVENT_TYPES.AUTHORISATION,
                ENDPOINT.UI,
                request,
                None,
                description=(
                    "Logged in %s."
                    % ("admin" if request.user.is_superuser else "user")
                ),
            )
        return result
Ejemplo n.º 2
0
def login(request):
    extra_context = {
        'no_users': UserProfile.objects.all_users().count() == 0,
        'create_command': django_settings.MAAS_CLI,
        'external_auth_url': Config.objects.get_config('external_auth_url'),
    }
    if request.user.is_authenticated:
        return HttpResponseRedirect(reverse('index'))
    else:
        redirect_url = request.GET.get(REDIRECT_FIELD_NAME,
                                       request.POST.get(REDIRECT_FIELD_NAME))
        if redirect_url == reverse('logout'):
            redirect_field_name = None  # Ignore next page.
        else:
            redirect_field_name = REDIRECT_FIELD_NAME
        result = dj_login(request,
                          redirect_field_name=redirect_field_name,
                          extra_context=extra_context)
        if request.user.is_authenticated:
            create_audit_event(
                EVENT_TYPES.AUTHORISATION,
                ENDPOINT.UI,
                request,
                None,
                description=(
                    "%s" % ('Admin' if request.user.is_superuser else 'User') +
                    " '%(username)s' logged in."))
        return result
Ejemplo n.º 3
0
def login(request, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME,
          *args, **kwargs):
    # until anon users return False for is_authenticated
    # anon domains and pass-throughs are incompatible
    if request.user.is_authenticated() and not(settings.ANONYMOUS_DOMAINS):
        # Similar redirect_to processing as in django.contrib.auth.views.login
        redirect_to = request.REQUEST.get(redirect_field_name, '')
        # Light security check -- make sure redirect_to isn't garbage.
        if not redirect_to or ' ' in redirect_to:
            redirect_to = settings.LOGIN_REDIRECT_URL
        # Heavier security check -- redirects to http://example.com should
        # not be allowed, but things like /view/?param=http://example.com
        # should be allowed. This regex checks if there is a '//' *before* a
        # question mark.
        elif '//' in redirect_to and re.match(r'[^\?]*//', redirect_to):
            redirect_to = settings.LOGIN_REDIRECT_URL
        return HttpResponseRedirect(redirect_to)
    try:
        response = dj_login(request, *args, **kwargs)
    except ValueError:
        # Certain values in the database password field can cause a ValueError
        # in that case, return a redirect back to the login page
        return HttpResponseRedirect((login_url or reverse('login')) + '?' + request.GET.urlencode())
    if type(response) == HttpResponseRedirect:
        # Successful login, add user to IP based groups
        update_membership_by_ip(request.user, request.META['REMOTE_ADDR'])
        Activity.objects.create(event='login',
                                request=request,
                                content_object=request.user)

    return response
Ejemplo n.º 4
0
def custom_login(request):
    title = _('Log in')
    if request.user.is_authenticated():
        return redirect('/')
    return dj_login(request,
                    template_name='auth/login.html',
                    extra_context={'title': title})
Ejemplo n.º 5
0
def login(request,
          login_url=None,
          redirect_field_name=REDIRECT_FIELD_NAME,
          *args,
          **kwargs):
    if request.user.is_authenticated():
        request.session.modified = True
        # Similar redirect_to processing as in django.contrib.auth.views.login
        redirect_to = request.GET.get(redirect_field_name, '')
        # Light security check -- make sure redirect_to isn't garbage.
        if not redirect_to or ' ' in redirect_to:
            redirect_to = settings.LOGIN_REDIRECT_URL
        # Heavier security check -- redirects to http://example.com should
        # not be allowed, but things like /view/?param=http://example.com
        # should be allowed. This regex checks if there is a '//' *before* a
        # question mark.
        elif '//' in redirect_to and re.match(r'[^\?]*//', redirect_to):
            redirect_to = settings.LOGIN_REDIRECT_URL
        return HttpResponseRedirect(redirect_to)
    try:
        response = dj_login(request, *args, **kwargs)
    except ValueError:
        # Certain values in the database password field can cause a ValueError
        # in that case, return a redirect back to the login page
        return HttpResponseRedirect((login_url or reverse('login')) + '?' +
                                    request.GET.urlencode())
    if type(response) == HttpResponseRedirect:
        # Successful login, add user to IP based groups
        Activity.objects.create(event='login',
                                request=request,
                                content_object=request.user)

    return response
Ejemplo n.º 6
0
def login(request, login_url=None, redirect_field_name=REDIRECT_FIELD_NAME, *args, **kwargs):
    if request.user.is_authenticated():
        # Similar redirect_to processing as in django.contrib.auth.views.login
        redirect_to = request.REQUEST.get(redirect_field_name, "")
        # Light security check -- make sure redirect_to isn't garbage.
        if not redirect_to or " " in redirect_to:
            redirect_to = settings.LOGIN_REDIRECT_URL
        # Heavier security check -- redirects to http://example.com should
        # not be allowed, but things like /view/?param=http://example.com
        # should be allowed. This regex checks if there is a '//' *before* a
        # question mark.
        elif "//" in redirect_to and re.match(r"[^\?]*//", redirect_to):
            redirect_to = settings.LOGIN_REDIRECT_URL
        return HttpResponseRedirect(redirect_to)
    try:
        response = dj_login(request, *args, **kwargs)
    except ValueError:
        # Certain values in the database password field can cause a ValueError
        # in that case, return a redirect back to the login page
        return HttpResponseRedirect((login_url or reverse("login")) + "?" + request.GET.urlencode())
    if type(response) == HttpResponseRedirect:
        # Successful login, add user to IP based groups
        Activity.objects.create(event="login", request=request, content_object=request.user)

    return response
Ejemplo n.º 7
0
def login(request):
    extra_context = {
        'no_users': UserProfile.objects.all_users().count() == 0,
        'create_command': django_settings.MAAS_CLI,
    }
    if request.user.is_authenticated():
        return HttpResponseRedirect(reverse('index'))
    else:
        return dj_login(request, extra_context=extra_context)
Ejemplo n.º 8
0
def login(request):
    extra_context = {
        'no_users': UserProfile.objects.all_users().count() == 0,
        'create_command': django_settings.MAAS_CLI,
        }
    if request.user.is_authenticated():
        return HttpResponseRedirect(reverse('index'))
    else:
        return dj_login(request, extra_context=extra_context)
Ejemplo n.º 9
0
def login(request, login_url=None, *args, **kwargs):
    try:
        response = dj_login(request, *args, **kwargs)
    except ValueError:
        # Certain values in the database password field can cause a ValueError
        # in that case, return a redirect back to the login page
        return HttpResponseRedirect((login_url or reverse('login')) + '?' + request.GET.urlencode())
    if type(response) == HttpResponseRedirect:
        # Successful login, add user to IP based groups
        update_membership_by_ip(request.user, request.META['REMOTE_ADDR'])
    return response
Ejemplo n.º 10
0
def login(request):
    extra_context = {
        'no_users': UserProfile.objects.all_users().count() == 0,
        'create_command': django_settings.MAAS_CLI,
    }
    if request.user.is_authenticated:
        return HttpResponseRedirect(reverse('index'))
    else:
        redirect_url = request.GET.get(REDIRECT_FIELD_NAME,
                                       request.POST.get(REDIRECT_FIELD_NAME))
        if redirect_url == reverse('logout'):
            redirect_field_name = None  # Ignore next page.
        else:
            redirect_field_name = REDIRECT_FIELD_NAME
        return dj_login(request,
                        redirect_field_name=redirect_field_name,
                        extra_context=extra_context)
Ejemplo n.º 11
0
def login(request):

    return dj_login(request, authentication_form=UsernameOrEmailAuthenticationForm)
Ejemplo n.º 12
0
def custom_login(request):
    title = _("Log in")
    if request.user.is_authenticated():
        return redirect("/")
    return dj_login(request, template_name="auth/login.html", extra_context={"title": title})