Example #1
0
    def post(self, request):
        error_msg = ''
        if 'login' not in request.POST:
            return HttpResponseForbidden()

        email = request.POST.get('email', '').strip().lower()
        password = request.POST.get('password', '').strip()
        if not len(email) or not len(password):
            error_msg = 'Заполните email и пароль'
        elif not validateEmail(email):
            error_msg = 'Неверный email адрес'
        else:
            auth_user = auth_authenticate(username=email, password=password)

            if auth_user:
                try:
                    login(request, auth_user)
                    next_url = request.GET[
                        'next'] if 'next' in request.GET else request.POST[
                            'next'] if 'next' in request.POST else '/'
                    if next_url:
                        return HttpResponseRedirect(next_url)
                except Exception:
                    pass

                error_msg = "Неизвестная ошибка. Попробуйте позже."
            else:
                error_msg = "Неправильная пара email-пароль. Попробуйте еще раз."

        return render_to_response('alogin.html',
                                  {'login_error_message': error_msg},
                                  context_instance=RequestContext(request))
Example #2
0
def register(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save()
            user.refresh_from_db(
            )  # load the profile instance created by the signal
            user.extendeduser.postal_code = form.cleaned_data.get(
                'postal_code')
            user.extendeduser.phone_number = form.cleaned_data.get(
                'phone_number')
            user.extendeduser.nickname = form.cleaned_data.get('username')
            user.save()
            raw_password = form.cleaned_data.get('password1')
            user = auth_authenticate(username=user.username,
                                     password=raw_password)
            auth_login(request, user)
            return redirect('index')
    else:
        form = SignUpForm()
        feedback = FeedbackSupportForm()
    return render(request, 'register.html', {
        'form': form,
        'feedback': feedback,
    })
Example #3
0
def login(request):
    message = None
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        try:
            check_user = User.objects.get(username=username)
            if check_user:
                user = auth_authenticate(username=username, password=password)
                if user:
                    if user.is_active:
                        auth_login(request, user)
                        return HttpResponseRedirect('/index/')
                else:
                    message = "User name or password is incorrect"
        except User.DoesNotExist:
            user_form = UserForm(data=request.POST)
            if user_form.is_valid():
                user = user_form.save()
                user.set_password(user.password)
                user.save()
                return HttpResponseRedirect('/index/')
            else:
                message = user_form.errors

    context_dict = {'message': message}
    return render(request, 'login.html', context_dict)
Example #4
0
    def post(self, request):
        error_msg = ''
        if 'login' not in request.POST:
            return HttpResponseForbidden()

        email = request.POST.get('email', '').strip().lower()
        password = request.POST.get('password', '').strip()
        if not len(email) or not len(password):
            error_msg = 'Заполните email и пароль'
        elif not validateEmail(email):
            error_msg = 'Неверный email адрес'
        else:
            auth_user = auth_authenticate(username=email, password=password)

            if auth_user:
                try:
                    login(request, auth_user)
                    next_url = request.GET['next'] if 'next' in request.GET else request.POST['next'] if 'next' in request.POST else '/'
                    if next_url:
                        return HttpResponseRedirect(next_url)
                except Exception:
                    pass

                error_msg = "Неизвестная ошибка. Попробуйте позже."
            else:
                error_msg = "Неправильная пара email-пароль. Попробуйте еще раз."

        return render_to_response('alogin.html',
                                  {'login_error_message' : error_msg},
                                  context_instance=RequestContext(request))
Example #5
0
def login_local(request):
    user = AuthService.get_current_user(request)
    login_local_form = LoginLocalInfo()
    context = {'user': user, 'login_local_form': login_local_form}
    # POST /Link/LoginLocal
    if request.method == 'POST':
        login_local_form = LoginLocalInfo(request.POST)
        if login_local_form.is_valid():
            data = login_local_form.clean()
            email = data['Email']
            password = data['Password']
            local_user = auth_authenticate(username=email, password=password)
            if local_user:
                link_service.link(local_user, user.o365_user)
                auth_login(request, local_user)
                request.session[
                    'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
                return HttpResponseRedirect('/')
            else:
                context['errors'] = ['Invalid login attempt.']
            return render(request, 'link/loginlocal.html', context)
    # GET /Link/LoginLocal
    else:
        local_user = user_service.get_user_by_email(user.o365_email)
        if local_user:
            link_service.link(local_user, user.o365_user)
            local_user = user_service.get_user(
                local_user.id)  # reload local user
            auth_login(request, local_user)
            request.session[
                'Message'] = 'Your local account has been successfully linked to your Office 365 account.'
            return HttpResponseRedirect('/')
        else:
            return render(request, 'link/loginlocal.html', context)
Example #6
0
    def post(self, request):
        old_password = request.POST.get('old', '')
        new_password = request.POST.get('new', '')
        new_repeat_password = request.POST.get('new2', '')

        old_pwd_error = get_password_error(old_password)
        if old_pwd_error:
            return HttpResponse(simplejson.dumps({'error' : True, 'loc' : 'old', 'msg' : old_pwd_error}), mimetype='application/javascript')

        auth_user = auth_authenticate(username=self.request.user.email, password=old_password)
        if not auth_user:
            return HttpResponse(simplejson.dumps({'error' : True, 'loc' : 'old', 'msg' : u"Введен неправильный старый пароль"}), mimetype='application/javascript')

        new_pwd_error = get_password_error(new_password)
        if new_pwd_error:
            return HttpResponse(simplejson.dumps({'error' : True, 'loc' : 'new', 'msg' : new_pwd_error}), mimetype='application/javascript')

        if new_password != new_repeat_password:
            return HttpResponse(simplejson.dumps({'error' : True, 'loc' : 'new2', 'msg' : u"Введенные пароли не совпадают"}), mimetype='application/javascript')

        if new_password == old_password:
            return HttpResponse(simplejson.dumps({'error' : True, 'loc' : 'new', 'msg' : u"Старый и новый пароли одинаковые"}), mimetype='application/javascript')

        self.request.user.set_password(new_password)
        self.request.user.save()
        return HttpResponse(simplejson.dumps({}), mimetype='application/javascript')
Example #7
0
def login(request):
    next = request.GET.get('next')
    if request.method == 'POST':
        for item in request.session.items():
            print(item)
        try:
            username = request.POST['username']
            password = request.POST['password']
        except KeyError:
            return HttpResponse('username 또는 password는 필수항목입니다')
        user = auth_authenticate(
            username=username,
            password=password
        )

        if user is not None:
            auth_login(request, user)
            # 이때 session-id생성
            # 이름과 달리 실제로 인증 과정 마무리 단계 담당
            # 이 함수를 통해 session 정보를 만들지않으면 다른 페이지 방문할때마다 매번로그인해야한다.
            messages.success(request, '로그인에 성공하였습니다')
            return redirect(next)
        else:
            messages.error(request, '로그인에 실패하였습니다')
            # context = {
            #     'error_message': '로그인에 실패하였습니다'
            # }
            return render(request, 'member/login.html', {})
    else:
        return render(request, 'member/login.html', {})
def login(request):
    # get으로받은 이전경로 next에 저장
    next = request.GET.get('next')
    if request.method == "POST":
        try:
            username = request.POST['username']
            password = request.POST['password']
            # 데이터베이스와 계정일치여부 확인
            # print(1)
            user = auth_authenticate(username=username, password=password)
            # print (user)
        except KeyError:
            return HttpResponse('username과 password는 필수입니다')

        if user is not None:
            # print(2)
            # user 정보로 로그인처리
            auth_login(request, user)
            # message.level == DEFAULT_MESSAGE_LEVELS.SUCCESS
            messages.success(request, "로그인 성공")
            # 로그인 이전 화면으로 리다이렉트
            return redirect(next)
        else:
            # message.level == DEFAULT_MESSAGE_LEVELS.ERROR
            messages.error(request, "로그인 실패")
            return render(request, 'member/login.html', {})
    else:
        # print(3)
        return render(request, 'member/login.html')
Example #9
0
    def test_set_new_password_post(self):
        self.register()
        user = User.collection.find_one(
            {'email': '*****@*****.**'})
        link = PasswordRecoveryLink({'user': user['_id']})
        link.save()

        response = self.client.post('/new-password/' + unicode(link._id) + '/',
                                    {
                                        'new_password': '******',
                                        'new_password_repeat': 'new_password'
                                    })
        self.assertEqual(response.status_code, 200)

        self.assertIn('password_set', response.context)
        self.assertTrue(response.context['password_set'])

        link = PasswordRecoveryLink.objects.get_one({'user': user['_id']})
        self.assertIsNone(link)
        auth_user = auth_authenticate(
            username='******',
            password='******')
        self.assertIsNotNone(auth_user)
        response = self.client.get('/')
        self.assertEqual(response.status_code, 302)
Example #10
0
def login(request):
    next = request.GET.get(
        'next')  #[]는 keyerror가 나오지만 get은 없을 경우에 None이 들어가게 된다.
    if request.method == 'POST':
        try:
            username = request.POST['username']
            password = request.POST['password']
        except KeyError:
            return HttpResponse("username 또는 password는 필수 입니다.")
        user = auth_authenticate(  # 인증 부분만 담당한다.
            username=username, password=password)
        if user is not None:
            auth_login(
                request, user
            )  # session에 id값을 등록한다. cookey에 id값을 실어서 보내주는것은 middleware가 담당한다.
            messages.success(
                request,
                '로그인에 성공하였습니다')  # login에서 render로 보내주면 새로고침 해주면 로그인을 다시해야한다?
            return redirect(
                next
            )  # redirect는 browser밖으로 나갔다가 다시 들어오는것이고 render는 장고내부에서 이동한다.
        else:
            messages.error(request, '로그인에 실패하였습니다')
            return render(request, 'member/login.html', {})
    else:
        return render(request, 'member/login.html', {})
Example #11
0
File: views.py Project: qyczyr/tomb
def login(request):
    if request.method == 'GET':
        next_url = request.GET.get('next', '/home')
        c = {'next': next_url}
        c.update(csrf(request))
        return render_to_response('djsite/login.html', c)
    else: # POST
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        next_url = request.POST.get('next', '/home')
        user = auth_authenticate(username = username, password = password)
        # if user and user.is_active:
        if user and user.is_active:
            auth_login(request, user)
            return redirect(next_url)
        elif user and not user.is_active:
            ctx = {}
            ctx['username'] = username
            ctx['email'] = user.email
            ctx['cookie'] = verification_cookie_of_user(user)
            return HttpResponse('<a href="/active?username=%s&email=%s&cookie=%s">Active link</a>' % (
                username, email, cookie))
        else:
            c = {'next': next_url, 'auth_fail' : True,
                 'username': username, 'password': password}
            c.update(csrf(request))
            return render_to_response('djsite/login.html', c)
Example #12
0
def login(request):
    if request.method == 'GET':
        next_url = request.GET.get('next', '/home')
        c = {'next': next_url}
        c.update(csrf(request))
        return render_to_response('django_site/login.html', c)
    else:  # POST
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        next_url = request.POST.get('next', '/home')
        user = auth_authenticate(username=username, password=password)
        # if user and user.is_active:
        if user and user.is_active:
            auth_login(request, user)
            return redirect(next_url)
        elif user and not user.is_active:
            ctx = {}
            ctx['username'] = username
            ctx['email'] = user.email
            ctx['cookie'] = verification_cookie_of_user(user)
            return HttpResponse(
                '<a href="/active?username=%s&email=%s&cookie=%s">Active link</a>'
                % (username, email, cookie))
        else:
            c = {
                'next': next_url,
                'auth_fail': True,
                'username': username,
                'password': password
            }
            c.update(csrf(request))
            return render_to_response('django_site/login.html', c)
Example #13
0
def login_facebook(request):
    if request.GET.get('error'):
        messages.error(request, '사용자가 페이스북 로그인을 취소했습니다')
        return redirect('member:login')

    if request.GET.get('code'):
        # 사용자가 페이스북로그인 버튼을 눌러 페이스북에서 로그인에 성공했을 경우,
        # 페이스북에서 mysite로 access_token을 요청할 수 있는 'code'값을 보내준다

        REDIRECT_URL = 'http://127.0.0.1:8000/member/login/facebook/'
        code = request.GET.get('code')

        access_token = facebook.get_access_token(code, REDIRECT_URL)
        user_id = facebook.get_user_id_from_token(access_token)
        user_info = facebook.get_user_info(user_id, access_token)

        # authenticate backends에 FacebookBackend추가해서 dict_user_info객체로 로그인 가능
        user = auth_authenticate(user_info=user_info)
        if user is not None:
            auth_login(request, user)
            messages.success(request, '페이스북 유저로 로그인 되었습니다')
            return redirect('blog:post_list')
        else:
            messages.error(request, '페이스북 로그인에 실패하였습니다')
            return redirect('member:login')
Example #14
0
def login(request):
    loginForm = LoginForm()
    error = u''; title = u'登录'
    if request.method == 'POST':
        loginForm = LoginForm(request.POST)
        if loginForm.is_valid():
            email = loginForm.cleaned_data['email']
            password = loginForm.cleaned_data['password']
            rememberme = loginForm.cleaned_data['rememberme']
            if rememberme:
                request.session.set_expiry(2592000)
            try:
                user = User.objects.get(email=email)
            except User.DoesNotExist:
                user = None
            if user is not None and user.check_password(password):
                user = auth_authenticate(username=user.username, password=password)
                if user is not None and user.is_active:
                    auth_login(request, user)
                    url_next = '/dashboard/'
                    if request.GET.get('next') is not None:
                        url_next = request.GET.get('next')
                    return HttpResponseRedirect(url_next)
            if user is None:
                error = u'%s 还没有注册' % email
            else:
                error = u'密码不正确'
        else:
            error = u'请检查邮箱密码,验证码是否正确,注意大小写和前后空格。'
    response_dictionary = {'error': error, 'title': title, 'loginForm': loginForm}
    return render_to_response('user/login.html',
                          response_dictionary,
                          context_instance=RequestContext(request))
Example #15
0
    def post(self, request, *args, **kwargs):
        from django.contrib.auth import authenticate as auth_authenticate, login
        # self.redirect_to = request.POST.get('next', '') #to be changed, POST does not contain any data

        username = request.data.get('username', '')
        password = request.data.get('password', '')
        email_or_username = username

        # match with username if not email
        if not re.match(r"[^@]+@[^@]+\.[^@]+", email_or_username):
            username = email_or_username
        else:
            user = get_model_or_none(User, email=email_or_username)
            if user is not None:
                username = user.username

        user = auth_authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                login(request, user)
                response_data = dict()
                response_data["username"] = user.username
                response_data["email"] = user.email
                response_data["first_name"] = user.first_name
                response_data["last_name"] = user.last_name
                response_data["date_joined"] = user.date_joined
                response_data["last_login"] = user.last_login
                response_data["is_requester"] = hasattr(request.user.userprofile, 'requester')
                response_data["is_worker"] = hasattr(request.user.userprofile, 'worker')
                return Response(response_data, status.HTTP_200_OK)
            else:
                raise AuthenticationFailed(_('Account is not activated yet.'))
        else:
            raise AuthenticationFailed(_('Username or password is incorrect.'))
def login_facebook(request):

    if request.GET.get('error'):
        messages.error(request, '페이스북 로그인을 취소했습니다')
        return redirect('member:login')

    if request.GET.get('code'):

        code = request.GET.get('code')
        REDIRECT_URL = 'http://127.0.0.1:8000/member/login/facebook/'

        # 모듈화 작업함함
        access_token = facebook.get_access_token(code, REDIRECT_URL)
        user_id = facebook.get_user_id_from_token(access_token)
        dict_user_info = facebook.get_user_info(user_id, access_token)

        # 유저를 인증하고 로그인시키자
        user = auth_authenticate(user_info=dict_user_info)
        if user is not None:
            auth_login(request, user)
            messages.success(request, '페이스북 로그인 성공')
            return redirect('blog:post_list')
        else:
            messages.error(request, '페이스북 로그인 실패')
            return redirect('member:login')
Example #17
0
def login(request):
    context = {}
    if 'POST' == request.method:
        username = request.POST['username']
        password = request.POST['password']
        user = auth_authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                auth_login(request, user)
                next = request.POST['next'] or \
                       resolve_url(settings.LOGIN_REDIRECT_URL)
                return HttpResponseRedirect(next)
            else:
                context['error_message'] = _('Disabled account')
        else:
            context['error_message'] = _('Invalid username or password')
        context['username'] = username
    else:                       # GET method
        if request.user.is_authenticated():
            return HttpResponseRedirect(resolve_url(settings.LOGIN_REDIRECT_URL))
        else:
            next = request.GET.get('next')
            if next:
                context['next'] = next

    return render(request, 'accounts/login.html', context)
Example #18
0
def login(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        print(username)
        print(password)
        user = auth_authenticate(request, username=username, password=password)
        users = User.objects.all()
        if user is not None:
            auth_login(request, user)
            user = request.user.userprofile
            owner = True
            searched_user_profile = 0
            return redirect ('/carte/' + 'account/'+ request.user.username)
            #userpage(request, request.POST.get('username'))
            #return render(request, 'carte/userpage.html', {'user': user, 'owner': owner})
            context = {'request': request,'loggedin_userprofile': user, 'owner': owner}
            return JsonResponse (context)
        else:
            username = request.POST.get("usersearch")
            searched_user = get_object_or_404(User, username=username)
            owner = True
            user = request.user.userprofile
            #return render(request, 'carte/mylife.html', {'user': user, 'owner': owner, 'searched_user': searched_user})
            context = {'request': request,'loggedin_userprofile': user, 'owner': owner, 'searched_user': searched_user}
            return JsonResponse(context)
    else:
        user_form = UserForm()
        #return render(request, 'carte/login.html',
        #           {'user_form': user_form})
        context = {'user_form': user_form }
        return JsonResponse (context)
Example #19
0
def login_facebook(request):
    if request.GET.get('error'):
        messages.error(request, '사용자가 페이스북 로그인을 취소했습니다')
        return redirect('member:login')

    if request.GET.get('code'):
        # 사용자가 페이스북로그인 버튼을 눌러 페이스북에서 로그인에 성공했을 경우,
        # 페이스북에서 mysite로 access_token을 요청할 수 있는 'code'값을 보내준다

        REDIRECT_URL = 'http://127.0.0.1:8000/member/login/facebook/'
        code = request.GET.get('code')

        access_token = facebook.get_access_token(code, REDIRECT_URL)
        user_id = facebook.get_user_id_from_token(access_token)
        user_info = facebook.get_user_info(user_id, access_token)

        # authenticate backends에 FacebookBackend추가해서 dict_user_info객체로 로그인 가능
        user = auth_authenticate(user_info=user_info)
        if user is not None:
            auth_login(request, user)
            messages.success(request, '페이스북 유저로 로그인 되었습니다')
            return redirect('blog:post_list')
        else:
            messages.error(request, '페이스북 로그인에 실패하였습니다')
            return redirect('member:login')
Example #20
0
def register(request):
    context = {}
    if request.method == "POST":
        form = UserCreationForm(request.POST)
        if form.is_valid():
            try:
                form.save()
            except Exception as e:
                messages.error(request, '{}'.format(e))
            else:
                if email_verified:
                    email = request.POST['email']
                    password = request.POST['password1']
                    user = auth_authenticate(username=email, password=password)
                    auth_login(request, user)
                    return HttpResponseRedirect(reverse('home'))
                else:
                    messages.success(
                        request, 'Account created! Verify Email ID by '
                        'clicking the link in the email sent to your inbox')
                    return HttpResponseRedirect(settings.LOGIN_URL)
    else:
        form = UserCreationForm()

    return render(request, 'register.html', {
        'form': form,
    })
Example #21
0
def register(request):
    if request.method == 'POST':
        if 'username' in request.POST:
            uform = UserForm(data=request.POST)
            if uform.is_valid():
                user = uform.save ()
                # form brings back a plain text string, not an encrypted password
                pw = user.password
                # thus we need to use set password to encrypt the password string
                user.set_password (pw)
                user.save()
                #login
                username = request.POST.get ('username')
                password = request.POST.get ('password')
                print (username)
                print (password)
                user = auth_authenticate(request, username=username, password=password)
                auth_login (request, user)
            pform = ProfileAccountTypeForm(data=request.POST)
            if pform.is_valid():
                profile = pform.save(commit=False)
                profile.user = user
                profile.save()
                #forms staff
                user_form = 0
                profile_form = ProfilePictureForm()
        if 'profile_pic' in request.FILES:
            pform = ProfilePictureForm(data=request.POST, instance=request.user.userprofile, files=request.FILES)
            if pform.is_valid ():
                profile = pform.save()
                profile.profile_pic = request.FILES['profile_pic']
                profile.save()
                # forms staff
                user_form = 0
                profile_form = ProfileLifeForm()
        if 'life_desc' in request.POST:
            pform = ProfileLifeForm(data=request.POST, instance=request.user.userprofile)
            if pform.is_valid():
                profile = pform.save()
                profile.save()
                #forms staff
                user_form = 0
                profile_form = ProfileWayForm()
        if 'way_desc' in request.POST:
            pform = ProfileWayForm(data=request.POST, instance=request.user.userprofile)
            if pform.is_valid ():
                profile = pform.save()
                profile.save ()
                return redirect('/carte/' + 'account/' + request.user.username )

    else:
        user_form= UserForm()
        profile_form = ProfileAccountTypeForm()

    context = {
        "user_form": user_form,
        "profile_form": profile_form
    }
    return JsonResponse(context)
Example #22
0
 def _signin(self, email, password):
     """Attempts to log the user in with the provided credentials"""
     user = auth_authenticate(username=email, password=password)
     if user:
         auth_login(self.request, user)
         return user
     else:
         raise forms.ValidationError(_("Incorrect email or password"))
Example #23
0
def login(request):
    if request.POST:
        user = auth_authenticate(username=request.POST["user"],
                                 password=request.POST["password"])
        if user is not None:
            auth_login(request, user)
        return HttpResponseRedirect(reverse("app:index"))
    else:
        return render(request, "app/login.html")
Example #24
0
 def form_valid(self, form):
     username = form.cleaned_data['username']
     password = form.cleaned_data['password']
     user = auth_authenticate(username=username, password=password)
     if user is not None:
         auth_login(self.request, user)
     else:
         return HttpResponse('로그인 실패 하였습니다.')
     return super().form_valid(form)
Example #25
0
 def change_password(self):
     from django.contrib.auth import authenticate as auth_authenticate
     if 'password' not in self.initial_data:
         raise ValidationError("Current password needs to be provided")
     user = auth_authenticate(username=self.instance.username, password=self.initial_data['password'])
     if user is not None:
         self.instance.set_password(self.initial_data['password1'])
         self.instance.save()
     else:
         raise ValidationError("Username or password is incorrect.")
Example #26
0
 def form_valid(self, form):
     username = form.cleaned_data.get('username')
     password = form.cleaned_data.get('password')
     user = auth_authenticate(username=username, password=password)
     if user is not None:
         auth_login(self.request, user)
         # return redirect('photo:photo_list')
     else:
         pass
     return super().form_valid(form)
Example #27
0
    def change_password(self):
        from django.contrib.auth import authenticate as auth_authenticate

        if 'password' not in self.initial_data:
            raise ValidationError("Current password needs to be provided")
        user = auth_authenticate(username=self.instance.username, password=self.initial_data['password'])
        if user is not None:
            self.instance.set_password(self.initial_data['password1'])
            self.instance.save()
        else:
            raise ValidationError("Old password is incorrect.")
Example #28
0
def authenticate(request, service,
                 template_name='api/sso/base.xml'):
    """
    Returns xml blob in the following format. Only accepts POST requests.

    <result>
      <success>True|False</success>
      <error_code>ERROR_CODE</error_code>
      <session>
        ...
      </session>
      <user>
        ...
      </user>
    </result>

    """

    if request.method != 'POST':
        return HttpResponseBadRequest()

    form = forms.AuthenticateInputForm(request.POST)

    data = {}

    if not form.is_valid():
        return render_to_response(template_name, {'success' : False,
                                                  'error_code' : ErrorCodes.AUTH_MALFORMED_INPUT})

    username = form.cleaned_data.get('username')
    password = form.cleaned_data.get('password')

    user = auth_authenticate(username=username, password=password)

    if user is None:
        return render_to_response(template_name, {'success' : False,
                                                  'error_code' : ErrorCodes.AUTH_WRONG_CREDENTIALS})

    if not user.is_active:
        return render_to_response(template_name, {'success' : False,
                                                  'error_code' : ErrorCodes.AUTH_USER_INACTIVE})

    session = models.get_new_user_session(user)

    session_data = {'auth_token' : session.session_key,
                    'expire' : time.mktime(session.get_expiry_date().timetuple()),
                    'path' : settings.SESSION_COOKIE_PATH,
                    'domain': settings.SESSION_COOKIE_DOMAIN}

    return render_to_response(template_name,
                              {'success' : True,
                               'user' : user,
                               'session' : session_data,
                               'groups' : _filter_groups(user, service)})
Example #29
0
def iniciar_sesion(request):
    if request.method == 'POST':
        form = AuthenticationForm(request=request, data=request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = auth_authenticate(username=username, password=password)
            if user is not None:
                auth_login(request, user)
                return redirect('perfil')
        else:
            return redirect('login')
Example #30
0
def login_as(request, username):
    if request.user.is_authenticated():
        return HttpResponseBadRequest("Error 400 :(\nNo-no-no!")

    user = auth_authenticate(username=username, from_login_as_view=True)

    if not user:
        return HttpResponseBadRequest("Error 400 ;(\nNo-no-no!")

    auth_login(request, user)

    return redirect(reverse('index'))
    def test_set_new_password_post_incorrect_link(self):
        self.register()
        user = User.collection.find_one({'email' : '*****@*****.**'})
        link = PasswordRecoveryLink({'user':user['_id']})
        link.save()

        response = self.client.post('/new-password/' + 'abc' + '/', {'new_password' : 'new_password'})
        self.assertEqual(response.status_code, 404)
        link = PasswordRecoveryLink({'user':user['_id']})
        self.assertIsNotNone(link)
        auth_user = auth_authenticate(username='******', password='******')
        self.assertIsNone(auth_user)
Example #32
0
 def post(self, request, format=None):
     parser = JSONParser().parse(request)
     if parser['username'] and parser['password']:
         user = auth_authenticate(username=parser['username'], password=parser['password'])
         if user is not None:
             token = login_token(user)
             logger.info("JWT is sent to registered user:{0}".format(parser['username']))
             return JsonResponse(data=token, status=status.HTTP_200_OK)
         if user is None:
             logger.error("JWT generation failed for the user:{0}, exception-{1}".format(parser['username'], status.HTTP_401_UNAUTHORIZED))
             return Response(data={'error': 'invalid authentication key'}, status=status.HTTP_401_UNAUTHORIZED)
     return Response(data={'error': 'password and username required'}, status=status.HTTP_400_BAD_REQUEST)
Example #33
0
def login(request):
    context = {}
    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = auth_authenticate(username=username, password=password)
        if user is not None:
            auth_login(request, user)
            return redirect('photo:photo_list')

    else:
        return render(request, 'auth/login.html')
Example #34
0
def initial_password_set(request, token, template_name='emailauth/set_password.html'):
    if request.method == 'POST':
        form = PasswordInitialSetForm(request.POST)
        if form.is_valid():
            user = form.save()
            user = auth_authenticate(email = user.primary_email.email, password = form.cleaned_data['password'])
            print ("user backend %s" % user.backend)
            auth_login(request, user)
            return redirect('achievements')
    elif token:
        form = PasswordInitialSetForm(initial = {'token': token})
    else: 
        raise Http404('Need token')
    return render_to_response(template_name, {'form': form, 'token':token}, context_instance=RequestContext(request))
Example #35
0
def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            person = auth_authenticate(username=username,
                                       password=raw_password)
            auth_login(request, person)
            return redirect('index')
    else:
        form = UserCreationForm()
    return render(request, 'registration/register.html', {'form': form})
Example #36
0
def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        username = request.POST['username']
        password = request.POST['password']
        user = auth_authenticate(username = username, password = password)
        if user is not None:
            auth_login(request, user)
            return redirect('home')
        else:
            return HttpResponse('로그인 실패. 다시 시도 해보세요.')
    else:
        form = LoginForm()
        return render(request, 'login.html', {'form': form})
Example #37
0
def resetpassword(request, step):
    if step is None:
        step = '0'
    error = u''
    title = u'重置密码'
    resetpasswordForm0 = ResetpasswordForm0()
    if step == '0' and request.method == 'POST':
        resetpasswordForm0 = ResetpasswordForm0(request.POST)
        if resetpasswordForm0.is_valid():
            email = resetpasswordForm0.cleaned_data['email']
            try:
                user = User.objects.get(email=email)
            except User.DoesNotExist:
                user = None
            if user is not None and user.is_active:
                Mailer().send_resetpassword(email)
                return HttpResponseRedirect('/resetpassword/1/')
            error = u'邮箱 %s 还没有注册' % email
        else:
            error = u'请检查邮箱,验证码是否正确'
    resetpasswordForm1 = ResetpasswordForm1()
    if len(step) > 1 and request.method == 'POST':
        resetpasswordForm1 = ResetpasswordForm1(request.POST)
        if resetpasswordForm1.is_valid():
            email = cache.get(step)
            if email is not None and email_re.match(email):
                password = resetpasswordForm1.cleaned_data['password']
                try:
                    user = User.objects.get(email=email)
                except User.DoesNotExist:
                    user = None
                if user is not None and user.is_active:
                    user.set_password(password)
                    user.save()
                    user = auth_authenticate(username=user.username,
                                             password=password)
                    auth_login(request, user)
                    cache.delete(step)
                    return HttpResponseRedirect('/resetpassword/3/')
            return HttpResponseRedirect('/resetpassword/4/')
    response_dictionary = {
        'step': step,
        'error': error,
        'title': title,
        'resetpasswordForm0': resetpasswordForm0,
        'resetpasswordForm1': resetpasswordForm1
    }
    return render_to_response('user/resetpassword.html',
                              response_dictionary,
                              context_instance=RequestContext(request))
Example #38
0
File: views.py Project: Aleda/tomb
def login(request):
    if request.method == 'GET':
        next_url = request.GET.get('next', '/home')
        return render_to_response('djsite/login.html', {'next': next_url}, RequestContext(request))
    else: # POST
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')
        next_url = request.POST.get('next', '/home')
        user = auth_authenticate(username = username, password = password)
        if user and user.is_active:
            auth_login(request, user)
            return redirect(next)
        else:
            return render_to_response('djsite/login.html', {'next': next_url}, RequestContext(request))
Example #39
0
def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            values = form.cleaned_data
            user = auth_authenticate(username=values['username'], password=values['password'])
            if user is not None:
                if user.is_active:
                    auth_login(request, user)
                    return HttpResponseRedirect('/')
    else:
        form = LoginForm()

    return render(request,'layout.html',{'form': form, 'login': True})
Example #40
0
 def get(self, request, *args, **kwargs):
     csrf_token = unicode(csrf(request)['csrf_token'])
     if csrf_token == request.GET.get('state'):
         code = request.GET.get("code")
         source = self.kwargs['source']
         user = auth_authenticate(code=code, source=source)
         if user:
             if user.is_active:
                 auth_login(request, user)
             else:
                 error = 'AUTH_DISABLED'
         else:
             error = 'AUTH_FAILED'
     return super(OAuth2Authentication, self).get(request, *args, **kwargs)
Example #41
0
def login(request):
    """authorized the user and returns Json web token.
    :param request:
    :return:JWT
    """
    parser = JSONParser().parse(request)
    if parser['username'] and parser['password']:
        user = auth_authenticate(username=parser['username'], password=parser['password'])
        if user is not None:
            token = login_token(user)
            return JsonResponse(data=token, status=status.HTTP_200_OK)
        if user is None:
            return Response(data={'error':'invalid authentication key'}, status=status.HTTP_401_UNAUTHORIZED)
    else:
        return Response(data={'error': 'password and username required'}, status=status.HTTP_400_BAD_REQUEST)
Example #42
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    elif request.method == 'POST':
        username = request.POST.get('username')
        raw_password = request.POST.get('password')
        user = auth_authenticate(request, username=username, password=raw_password)
        if user is not None:
            auth_login(request, user)
            return redirect(reverse('product_list'))
        else:
            context = {
                'message': 'Invalid login! Please try again.',
            }
            return render(request, 'login.html', context)
Example #43
0
def login_fbv(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
        user = auth_authenticate(username=username, password=password)
        if user is not None:
            auth_login(request, user)
            return redirect('photo:photo_list')
        else:
            return HttpResponse('로그인 실패 하였습니다.')
    else:
        form = LoginForm()
        return render(request, 'member/login.html', {'form': form})
def login(request):

	context = RequestContext(request)

	if request.user.is_authenticated():
		return HttpResponseRedirect(reverse('dashboard'))

	elif all((x in request.POST for x in ['email', 'password'])):
		email = request.POST['email']
		password = request.POST['password']
		user = auth_authenticate(username=email, password=password)
		auth_login(request, user)
		return HttpResponseRedirect(reverse('dashboard'))
	else:
		template = get_template('dashboard.html')
		return HttpResponse(template.render(context))
Example #45
0
def signin(request):
    errors = []
    form = SignInForm()
    if request.method == "POST":
        form = SignInForm(request.POST)
        username = request.POST["email"]
        password = request.POST["password"]
        user = auth_authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                auth_login(request, user)
                return HttpResponseRedirect("/")
            else:
                errors.append("disabled account")
        else:
            errors.append("username password does not match")
    variables = RequestContext(request, {"signInForm": form, "errors": errors})
    return render_to_response("auth/signin.html", variables)
Example #46
0
    def authenticate(self, request):
        from django.contrib.auth import authenticate as auth_authenticate

        # self.redirect_to = request.POST.get('next', '') #to be changed, POST does not contain any data

        username = request.data.get('username', '')
        password = request.data.get('password', '')

        email_or_username = username

        # match with username if not email
        if not re.match(r"[^@]+@[^@]+\.[^@]+", email_or_username):
            username = email_or_username
        else:
            user = get_model_or_none(User, email=email_or_username)

            if user is not None:
                username = user.username

        user = auth_authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                oauth2_utils = Oauth2Utils()
                client = oauth2_utils.create_client(request, user)

                response_data = dict()
                response_data["client_id"] = client.client_id
                response_data["client_secret"] = client.client_secret
                response_data["username"] = user.username
                response_data["email"] = user.email
                response_data["first_name"] = user.first_name
                response_data["last_name"] = user.last_name
                response_data["date_joined"] = user.date_joined
                response_data["last_login"] = user.last_login
                response_data["is_requester"] = user.profile.is_requester
                response_data["is_worker"] = user.profile.is_worker

                return response_data, status.HTTP_201_CREATED
            else:
                raise AuthenticationFailed(_('Account is not activated yet.'))
        else:
            raise AuthenticationFailed(_('Username or password is incorrect.'))
Example #47
0
    def post(self, request, *args, **kwargs):
        if request.user.is_authenticated():
            return redirect(reverse('index_url'))

        if self.request.POST:
            username = self.request.POST['username']
            password = self.request.POST['password']

            user = auth_authenticate(username=username, password=password)
            if user is not None:
                auth_login(request, user)

                if self.request.GET.get('next'):
                    return redirect(self.request.GET.get('next'))

                return redirect(reverse('index_url'))

        messages.add_message(request, messages.ERROR, 'Username or password is incorrect. Try again.')
        return render(request, self.template_name, self.get_context_data())
    def test_set_new_password_post(self):
        self.register()
        user = User.collection.find_one({'email' : '*****@*****.**'})
        link = PasswordRecoveryLink({'user':user['_id']})
        link.save()

        response = self.client.post('/new-password/' + unicode(link._id) + '/', {'new_password' : 'new_password',
                                                                                 'new_password_repeat' : 'new_password'})
        self.assertEqual(response.status_code, 200)

        self.assertIn('password_set', response.context)
        self.assertTrue(response.context['password_set'])

        link = PasswordRecoveryLink.objects.get_one({'user':user['_id']})
        self.assertIsNone(link)
        auth_user = auth_authenticate(username='******', password='******')
        self.assertIsNotNone(auth_user)
        response = self.client.get('/')
        self.assertEqual(response.status_code, 302)
Example #49
0
def login_ajax(request):
    if request.is_ajax() and request.method == "POST":
        exito = False
        formulario = LoginForm(request.POST)
        errores = ''
        if formulario.is_valid():
            username = formulario.cleaned_data['username']
            password = formulario.cleaned_data['password']
            usuario = auth_authenticate(username=username, password=password)
            if usuario is not None and usuario.is_active:
                exito = True
                auth_login(request, usuario)
                return HttpResponseRedirect('/')
        else:
            errores = formulario.errors
        response = {'errores': errores, 'exito': exito}
        return HttpResponse(json.dumps(response), mimetype="application/json")
    else:
        raise Http404
Example #50
0
def login(request):
	if request.method == 'POST' and  not request.user.is_authenticated():
		username = request.POST.get('username')
		password = request.POST.get('password')
		
		auth_user = auth_authenticate(username=username, password=password)
		
		if auth_user is not None:
			if auth_user.is_active:
				auth_login(request, auth_user)
				return redirect('home')
			else:
				context = RequestContext(request, {'login_message': 'Your account is not active.'})
				return render(request, 'home.html', context)
		else:
			context = RequestContext(request, {'login_message': 'Wrong username or password.'})
			return render(request, 'home.html', context)
	else:
		return redirect('home')
Example #51
0
def resetpassword(request, step):
    if step is None:
        step = '0'
    error = u''; title = u'重置密码'
    resetpasswordForm0 = ResetpasswordForm0()
    if step == '0' and request.method == 'POST':
        resetpasswordForm0 = ResetpasswordForm0(request.POST)
        if resetpasswordForm0.is_valid():
            email = resetpasswordForm0.cleaned_data['email']
            try:
                user = User.objects.get(email=email)
            except User.DoesNotExist:
                user = None
            if user is not None and user.is_active:
                Mailer().send_resetpassword(email)
                return HttpResponseRedirect('/resetpassword/1/')
            error = u'邮箱 %s 还没有注册' % email
        else:
            error = u'请检查邮箱,验证码是否正确'
    resetpasswordForm1 = ResetpasswordForm1()
    if len(step) > 1 and request.method == 'POST':
        resetpasswordForm1 = ResetpasswordForm1(request.POST)
        if resetpasswordForm1.is_valid():
            email = cache.get(step)
            if email is not None and email_re.match(email):
                password = resetpasswordForm1.cleaned_data['password']
                try:
                    user = User.objects.get(email=email)
                except User.DoesNotExist:
                    user = None
                if user is not None and user.is_active:
                    user.set_password(password)
                    user.save()
                    user = auth_authenticate(username=user.username, password=password)
                    auth_login(request, user)
                    cache.delete(step)
                    return HttpResponseRedirect('/resetpassword/3/')
            return HttpResponseRedirect('/resetpassword/4/')
    response_dictionary = {'step': step, 'error': error, 'title': title, 'resetpasswordForm0': resetpasswordForm0, 'resetpasswordForm1': resetpasswordForm1}
    return render_to_response('user/resetpassword.html',
                          response_dictionary,
                          context_instance=RequestContext(request))
Example #52
0
def login(request):
    if request.method == 'POST':
        for item in request.session.items():
            print(item)
        try:
            username = request.POST['username']
            password = request.POST['password']
        except KeyError:
            return HttpResponse('username 또는 password는 필수항목입니다')
        user = auth_authenticate(
            username=username,
            password=password
        )

        if user is not None:
            auth_login(request, user)
            return HttpResponse('로그인 되었습니다')
        else:
            return HttpResponse('로그인에 실패하였습니다')
    else:
        pass
Example #53
0
    def post(self, request, *args, **kwargs):
        from django.contrib.auth import authenticate as auth_authenticate

        email = request.data.get('email', '')
        password = request.data.get('password', '')
        user = auth_authenticate(username=email, password=password)

        if user is not None:
            if user.is_active:
            	response_data = dict()
                response_data["email"] = user.email
                response_data["client_id"] = settings.CLIENT_ID
                if hasattr(user, 'customer'):
                    response_data["id"] = user.customer.id
                elif hasattr(user, 'restaurant'):
                    response_data["id"] = user.restaurant.id
                return Response(response_data, status.HTTP_200_OK)
            else:
                raise AuthenticationFailed(_('Account is not activated yet.'))
        else:
            raise AuthenticationFailed(_('Username or password is incorrect.'))
Example #54
0
def login(request):
    next = request.GET.get('next')
    if request.method == 'POST':
        try:
            username = request.POST['username']
            password = request.POST['password']
        except KeyError:
            return HttpResponse('username 또는 password는 필수항목입니다')
        user = auth_authenticate(
            username=username,
            password=password
        )

        if user is not None:
            auth_login(request, user)
            messages.success(request, '로그인에 성공하였습니다')
            return redirect(next)
        else:
            messages.error(request, '로그인에 실패하였습니다')
            return render(request, 'member/login.html', {})
    else:
        return render(request, 'member/login.html', {})
Example #55
0
    def authenticate(self, request):
        from django.contrib.auth import authenticate as auth_authenticate
        #self.redirect_to = request.POST.get('next', '') #to be changed, POST does not contain any data
        username = request.data.get('username', '')
        password = request.data.get('password', '')
        email_or_username = username
        if not re.match(r"[^@]+@[^@]+\.[^@]+", email_or_username):
            username = email_or_username
        else:
            user = get_model_or_none(User,email=email_or_username)
            if user is not None:
                username = user.username

        user = auth_authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                oauth2_utils = Oauth2Utils()
                client = oauth2_utils.create_client(request,user)
                response_data = {}
                response_data["client_id"] = client.client_id
                response_data["client_secret"] = client.client_secret
                response_data["username"] = user.username
                response_data["email"] = user.email
                response_data["first_name"] = user.first_name
                response_data["last_name"] = user.last_name
                response_data["date_joined"] = user.date_joined
                response_data["last_login"] = user.last_login
                return response_data, status.HTTP_201_CREATED
                #return Response(response_data,status=status.HTTP_201_CREATED)
            else:
                return {
                    'status': 'Unauthorized',
                    'message': 'Account is not activated yet.'
                }, status.HTTP_401_UNAUTHORIZED
        else:
            return {
            'status': 'Unauthorized',
            'message': 'Username or password is incorrect.'
        }, status.HTTP_401_UNAUTHORIZED
def create_user(request):
	
	context = RequestContext(request)

	if all((x in request.POST for x in ['email', 'password'])):

		if User.objects.filter(email=request.POST['email']).count() > 0:
			print 'User Already Exists'
			template = get_template('login.html')
			return HttpResponse(template.render(context))

		else:
			#Username isn't important for this system so we'll just use the email. Less stuff for the user to fill out
			user = User.objects.create_user(request.POST['email'], request.POST['email'], request.POST['password'])
			user.save()

			user = auth_authenticate(username=request.POST['email'], password=request.POST['password'])
			
			student = Student(user=user)
			student.save()

			auth_login(request, user)

			# student = Student(user=user)
			# student.save()

			# msg = EmailMultiAlternatives("<<Subject Line>>", "", "sender-email", [user.email])
			# msg.attach_alternative(render_to_string("<<Link to HTML representation of email contents>>.html"), "text/html")
			# msg.send()

			context = RequestContext(request)
			template = get_template('dashboard.html')

			return HttpResponse(template.render(context))

	else:
		print "Need to add some shit here to handle missing form fields"
		return HttpResponseRedirect(reverse('dashboard'))
Example #57
0
def shib_login(request):
    
    #check if there is valid remote user.
    #if one exists, try to match them
    #if one does not exist, create it and assign to proper institution
    #then redirect
    
    #setup the redirect first: code borrowed from django contrib library
    redir_to = request.GET.get('next', '/accounts/profile')
    netloc = urlparse.urlparse(redir_to)[1]
       
    # Heavier security check -- don't allow redirection to a different
    # host.
    if netloc and netloc != request.get_host():
        redir_to = '/accounts/profile'
                
    #Use EduPersonPrincipalName http://www.incommonfederation.org/attributesummary.html#eduPersonPrincipal
    #as username in our system.  We could support other persistent identifiers later, but it will take some
    #work
    if ('REMOTE_USER' in request.META) and ('eppn' in request.META) and (request.META['REMOTE_USER']==request.META['eppn']) and request.META['eppn']:
        
        #if we get here, the user has authenticated properly
        
        shib = {'givenName':'',
                'sn':'',
                'mail':'',
                'affiliation':'',
                'Shib-Identity-Provider':'',}
        
        shib.update(request.META)
        #Clean up first name, last name, and email address
        shib['sn'] = string.split(shib['sn'],";")[0]
        shib['givenName'] = string.split(shib['givenName'],";")[0]
        if not shib['mail']:
            shib['mail'] = shib['eppn']

        if not User.objects.filter(username=shib['REMOTE_USER']).exists():
            #here, we need to create the new user
            ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            rg = random.SystemRandom(random.randint(0,100000))
            password = (''.join(rg.choice(ALPHABET) for i in range(16))) + '1' #create a random password, which they will never use
            User.objects.create_user(shib['REMOTE_USER'], shib['mail'], password)
            # authenticate() always has to be called before login(), and
            # will return the user we just created.
            new_user = auth_authenticate(username=shib['REMOTE_USER'], password=password)

            new_user.first_name, new_user.last_name = shib['givenName'].capitalize(), shib['sn'].capitalize()
            new_user.save()
                
            profile = new_user.get_profile()
            profile.site_data = shib['affiliation']
            
            if 'stanford.edu' in shib['affiliation']:
                profile.institutions.add(Institution.objects.get(title='Stanford'))
                profile.save()
        
            auth_login(request, new_user)

            signals.user_registered.send(sender=__file__,
                             user=new_user,
                             request=request)

        else:
            #User already exists, so log him/her in
            user = User.objects.get(username=shib['REMOTE_USER'])
            user.backend = 'django.contrib.auth.backends.ModelBackend'
            auth_login(request, user)
            messages.add_message(request,messages.SUCCESS, 'You have successfully logged in!')

    else:
        messages.add_message(request,messages.ERROR, 'WebAuth did not return your identity to us!  Please try logging in again.  If the problem continues please contact [email protected]')

    return HttpResponseRedirect(redir_to)
Example #58
0
def _login(req, username, password):
    user = auth_authenticate(
            username = username,
            password = password)
    auth_login(req, user)