예제 #1
0
def login(request):
    # if request.method == 'POST':
    #     create_user_form = UserCreationForm(request.POST)
    #     if create_user_form.is_valid():
    #         create_user_form.save()
    # else:
    #     create_user_form = UserCreationForm()
    # return render(request, 'main/main.html', {'create_user_form': create_user_form})

    if request.method == "POST":
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)

            if user:
                # Django의 auth앱에서 제공하는 login함수를 실행해 앞으로의 요청/응답에 세션을 유지한다
                django_login(request, user)
                # Post목록 화면으로 이동
                return redirect('/')

            # 인증에 실패하면 login_form에 non_field_error를 추가한다
            login_form.add_error(None, '아이디 또는 비밀번호가 올바르지 않습니다')
    else:
        login_form = LoginForm()

    context = {
        'login_form': login_form,
    }

    return render(request, 'main/login.html', context)
예제 #2
0
def login_user(request):
    login_form = LoginForm()
    if request.method == 'POST':
        login_form = LoginForm(data=request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']
            user = auth.authenticate(username=username, password=password)
            if user is not None:
                auth.login(request, user)
                return redirect('home')
            else:
                login_form.add_error(
                    None,
                    "Пользователь с таким логином или паролем не существует")
                return render(request, 'main/login.html',
                              {'login_form': login_form})

    return render(request, 'main/login.html', {'login_form': login_form})
예제 #3
0
def login_execute(request, form: LoginForm):
    user = User.objects.filter(email=form.cleaned_data['email']).first()

    if user == None:
        form.add_error('email', 'Incorrect email.')
        return render(request, 'main/login.html', {'form': form})

    if not user.organization_set.filter(
            id=form.cleaned_data['organization']).exists():
        form.add_error('organization',
                       'This user have not access to this organization.')
        return render(request, 'main/login.html', {'form': form})

    user = django_authenticate(username=user.username,
                               password=form.cleaned_data['password'])
    if user is None:
        form.add_error('password', 'Incorrect password.')
        return render(request, 'main/login.html', {'form': form})
    else:
        django_login(request, user)
        organization = Organization.objects.get(
            id=form.cleaned_data['organization'])
        request.session['org_id'] = organization.id
        request.session['org_name'] = organization.name

    return HttpResponseRedirect(reverse('main:task_lists'))