예제 #1
0
def login(request):
    if request.method == 'POST':
        form = AuthenticationForm(request, request.POST)
        if form.is_valid():
            user = form.get_user()
            if user is not None:
                auth.login(request, user)
                session = request.session
                session['user_name'] = user.get_full_name(
                ) or user.get_username()
                # get client for user
                try:
                    client = user.editor.client
                except (Editor.DoesNotExist, Client.DoesNotExist):
                    # The user is not editor of a client
                    # TODO: Add some message?
                    return redirect('/')
                # get providers for client
                providers = client.providers.all()
                if len(providers) == 1:
                    # it's only one -> use it
                    return redirect(
                        f'{providers[0].full_path()}/choose_provider')
                elif len(providers) == 0:
                    # there is no provider
                    return redirect('/')
                    # TODO: Add some message? Should not happen!
                else:
                    # present choice
                    return redirect("providers")
            else:
                form.add_error(None, "Fehler bei der Anmeldung!")
    else:
        form = AuthenticationForm()
    return render(request, 'rezepte/login.html', {'form': form})
예제 #2
0
def mylogin(request):
    msg = dict()
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        print(form.errors)
        username = request.POST['username']
        password = request.POST['password']
        if form.is_valid():
            msg['form_is_valid'] = True
        else:
            form.add_error(
                'password',
                'Please enter a correct username and password. Note that both fields are case-sensitive.'
            )
            msg['form_is_valid'] = False

        if username and password:
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    login(request, user)
                    msg['form_is_valid'] = True
                else:
                    msg['form_is_valid'] = False
    else:
        form = AuthenticationForm()
    context = {'form': form}
    msg['html_form'] = render_to_string('partial_login.html',
                                        context,
                                        request=request)
    return JsonResponse(msg)
예제 #3
0
파일: views.py 프로젝트: MicrohexHQ/vincent
def index(request):

    # are they logged in already? on to the incidents.
    if request.method == 'GET' and request.user.is_authenticated(
    ) and request.user.is_active:
        return redirect('/incidents')

    login_form = AuthenticationForm(data=request.POST or request.GET or None)
    if login_form.is_valid():
        username, password = login_form.cleaned_data[
            'username'], login_form.cleaned_data['password']
        user = authenticate(username=username, password=password)
        if user is not None and user.is_active:
            last_login = user.last_login
            login(request, user)

            if not last_login:
                return redirect('change_password')
            else:
                return redirect('incident_list')
        else:
            login_form.add_error(None, "Your user is inactive.")

    # note -- may be returned in both GET and POST requests
    # (POST if their user/pass is invalid or inactive)
    return render(request, 'login.html', {'login_form': login_form})
예제 #4
0
def signin(request):
    if request.method == 'POST':
        # Data bounded form인스턴스 생성
        login_form = AuthenticationForm(request, request.POST)
        # 유효성 검증에 성공할 경우
        if login_form.is_valid():
            # form으로부터 username, password값을 가져옴
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            # 가져온 username과 password에 해당하는 User가 있는지 판단한다
            # 존재할경우 user변수에는 User인스턴스가 할당되며,
            # 존재하지 않으면 None이 할당된다
            user = authenticate(username=username, password=password)
            # 인증에 성공했을 경우
            if user:
                # Django의 auth앱에서 제공하는 login함수를 실행해 앞으로의 요청/응답에 세션을 유지한다
                django_login(request, user)
                # Post목록 화면으로 이동
                return redirect('posts:list')
            # 인증에 실패하면 login_form에 non_field_error를 추가한다
            login_form.add_error(None, '아이디 또는 비밀번호가 올바르지 않습니다')
    else:
        login_form = AuthenticationForm()
    context = {
        'login_form': login_form,
    }
    return render(request, 'login.html', context)
예제 #5
0
def dev_login(request):
    if request.method == "POST":
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = authenticate(request=request,
                                username=form.cleaned_data["username"],
                                password=form.cleaned_data["password"])
            if user is not None:
                login(request, user)
                try:
                    student = Student.objects.get(user=user)
                except:
                    student = Student(user=user, academic_id=user.username, name=user.username)
                    student.save()

                if "redirect" in request.GET:
                    # Provide login code info
                    redirect_url = request.GET["redirect"]
                    return finish_login_redirect(make_access_info(request, student, None), redirect_url)
                elif "next" in request.GET:
                    # Redirect to the given page in FireRoad
                    redirect_dest = request.GET.get("next", "")
                    if not redirect_dest:
                        redirect_dest = "/"
                    return redirect(redirect_dest)
                else:
                    # Go to FireRoad's login success page, which is read by the mobile apps
                    access_info = make_access_info(request, student, api_client)
                    return render(request, 'common/login_success.html', {'access_info': json.dumps(access_info)})
            else:
                form.add_error(None, "Unable to log you in - please make sure you entered the correct username and password.")
    else:
        form = AuthenticationForm()

    return render(request, 'common/dev_login.html', {'form': form})
예제 #6
0
파일: views.py 프로젝트: sshyeri/fake-insta
def login(request):
    if request.user.is_authenticated:
        return redirect('posts:list')
    if request.method == "POST":
        form = AuthenticationForm(request, request.POST)
        if form.is_valid():
            auth_login(request, form.get_user())
            return redirect(request.GET.get('next') or 'posts:list')
        form.add_error(None, '사용자 이름과 비밀번호를 확인해주세요')
    else:
        form = AuthenticationForm()
    context = {'form': form}
    return render(request, 'accounts/login.html', context)
예제 #7
0
def loginPost(request):
    if request.method == 'POST':
        form = AuthenticationForm(request=request, data=request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=raw_password)

            if user is not None:
                login(request, user)
                return HttpResponseRedirect('/start')
            else:
                form.add_error("username", "Username or password incorrect")
    else:
        form = AuthenticationForm()
    return render(request, 'auth/login.html', {'form': form})
예제 #8
0
파일: views.py 프로젝트: liuduojia/testcube
def signin(request):
    if request.user.is_authenticated():
        return to_next_page(request)

    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password')
            user = authenticate(username=username, password=raw_password)
            if user:
                login(request, user)
                return to_next_page(request)
            else:
                form.add_error('username', 'Invalid username or password!')
    else:
        form = AuthenticationForm()
    return render(request, 'signin.html', {'form': form})
예제 #9
0
def request_login(request):
    if request.POST:
        print "attempting login"
        form = AuthenticationForm(data=request.POST)
        if not form.is_valid():
            print "auth form is not valid"
            form.add_error(None, "Login failed")
            return render(request, "wishlist_app/login.html", {"login_form": form})
        "auth form is valid"
        username = request.POST['username']
        password = request.POST['password']
        print "authenticating %s" % username
        user = authenticate(username=username, password=password)
        login(request, user)
        return redirect("wishlists")
    else:
        form = AuthenticationForm()
        return render(request, "wishlist_app/login.html", {"login_form": form})
예제 #10
0
def login(request):
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        if UserMethods.objects.filter(username=username).exists():
            user = UserMethods.objects.get(username=username)

            if user.check_password(password) and not user.confirmed():
                form = AuthenticationForm(data=request.POST)
                form.add_error(
                    None,
                    'Please confirm your email address before trying to log in'
                )
                context = {'form': form}
                return render(request,
                              'accounts/login-form.html',
                              context=context)

    return default_login(request, template_name='accounts/login-form.html')
예제 #11
0
def login_view(request):
    if request.user.is_authenticated:
        return redirect('/')

    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            pw = form.cleaned_data['password']
            user = authenticate(username=username, password=pw)

            if user is not None:
                login(request, user)
                return HttpResponseRedirect('/')
            else:
                form.add_error('username', 'Login failed')
    else:
        form = AuthenticationForm()
    return render(request, 'login.html', {'form': form})
예제 #12
0
def do_login(request):
    context = {}
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)

        if form.is_valid():
            user = authenticate(username=form.cleaned_data['username'],
                                password=form.cleaned_data['password'])
            if user is not None:
                login(request, user)
                if 'next' in request.POST:
                    return redirect(request.POST.get('next'))
                else:
                    return redirect('index')
            else:
                form.add_error(None, 'Unable to login')
    else:
        form = AuthenticationForm()

    context['form'] = form
    return render(request, 'user/login.html', context)
예제 #13
0
def delete_profile(request):
    user = request.user
    form = AuthenticationForm(data=request.POST)
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        if username != user.username:
            form.add_error(
                None, 'Please provide your username to delete your account')
        if not user.check_password(password):
            form.add_error(
                None,
                'Please confirm your email address to delete your account')
        if form.is_valid():
            request.user.is_active = False
            request.user.save()
            logout(request)
            return redirect('base:index')
    else:
        form = AuthenticationForm()
    return render(request,
                  'accounts/delete-profile-form.html',
                  context={'form': form})
예제 #14
0
def index(request):

    # are they logged in already? on to the incidents.
    if request.method == 'GET' and request.user.is_authenticated() and request.user.is_active:
        return redirect('/incidents')

    login_form = AuthenticationForm(data=request.POST or request.GET or None)
    if login_form.is_valid():
        username, password = login_form.cleaned_data['username'], login_form.cleaned_data['password']
        user = authenticate(username=username, password=password)
        if user is not None and user.is_active:
            last_login = user.last_login
            login(request, user)

            if not last_login:
                return redirect('change_password')
            else:
                return redirect('incident_list')
        else:
            login_form.add_error(None, "Your user is inactive.")

    # note -- may be returned in both GET and POST requests
    # (POST if their user/pass is invalid or inactive)
    return render(request, 'login.html', {'login_form': login_form})
예제 #15
0
파일: views.py 프로젝트: Dimelay/gamer
def user_login(request):
	if request.method == 'POST':
		auth_form = AuthenticationForm(request, data=request.POST)
		c = club.objects.filter(ipaddr=request.META["REMOTE_ADDR"]).count()
		if c <= 0:
			auth_form.add_error(None,'Неизвестное место....')
			return render(request,'login2.html',{'auth_form':auth_form})
		if auth_form.is_valid():
			#print auth_form.cleaned_data.get("username")
			#a=auth_form.clean()
			#print 'ADM %s' % auth_form.cleaned_data["password"]
			#user = authenticate(username=auth_form.username, password=auth_form.password)
			##u = UserProfile.objects.get(user=auth_form.get_user())
			##print u.phone
			login(request,auth_form.get_user())
			request.session['club_type'] = club.objects.values('club_type').get(ipaddr=request.META["REMOTE_ADDR"])['club_type']
			#request.session['club_type'] = club.objects.values('club_type').get(ipaddr=request.META["REMOTE_ADDR"])['club_type']
			return redirect("/")
		else:
			#print 'Not valid'
			#print auth_form.error_messages
			return render(request,'login2.html',{'auth_form':auth_form})
			#for i in auth_form.error_messages:
			#	print i, auth_form.error_messages[i]
		#if user is not None:
		#	if user.is_active:
		#		login(request,user)
		#		messages.add_message(request, messages.INFO, 'Hello world.')
			#return redirect("/")
		#	else:
		#		messages.add_message(request, messages.ERROR, 'User is not active')
		#else:
		#	messages.add_message(request, messages.ERROR, 'Password or username')
	else:
		auth_form = AuthenticationForm(None,None)
		return render(request,'login2.html',{'auth_form':auth_form})