コード例 #1
0
ファイル: views.py プロジェクト: rohitkush1/owantsbeta_git
def signup(request, **kwargs):

    form_class = kwargs.pop("form_class", SignupForm)
    template_name = kwargs.pop("template_name", "account/signup.html")
    redirect_field_name = kwargs.pop("redirect_field_name", "next")
    success_url = kwargs.pop("success_url", None)

    group, bridge = group_and_bridge(kwargs)
    ctx = group_context(group, bridge)
    ctx['invite_parameters'] = get_invite_parameters(request)

    if success_url is None:
        if hasattr(settings, "SIGNUP_REDIRECT_URLNAME"):
            fallback_url = reverse(settings.SIGNUP_REDIRECT_URLNAME)
        else:
            if hasattr(settings, "LOGIN_REDIRECT_URLNAME"):
                fallback_url = reverse(settings.LOGIN_REDIRECT_URLNAME)
            else:
                fallback_url = settings.LOGIN_REDIRECT_URL
        success_url = get_default_redirect(request, fallback_url,
                                           redirect_field_name)

    if request.method == "POST":
        form = form_class(request.POST, request.FILES, group=group)
        if form.is_valid():
            user = form.save(request=request)
            accept_invite(request, user)
            if settings.ACCOUNT_EMAIL_VERIFICATION:
                ctx.update({
                    "email": form.cleaned_data["email"],
                    "success_url": success_url,
                })
                ctx = RequestContext(request, ctx)
                return render_to_response("account/verification_sent.html",
                                          ctx)
            else:
                form.login(request, user)
                messages.add_message(
                    request, messages.SUCCESS,
                    ugettext("Successfully logged in as %(user)s.") %
                    {"user": user_display(user)})
                return HttpResponseRedirect(success_url)
    else:
        form = form_class(group=group,
                          initial={
                              'username': ugettext('Username'),
                              'email': ugettext('Email address')
                          })

    ctx.update({
        "form":
        form,
        "redirect_field_name":
        redirect_field_name,
        "redirect_field_value":
        request.REQUEST.get(redirect_field_name),
    })

    return render_to_response(template_name, RequestContext(request, ctx))
コード例 #2
0
ファイル: tests.py プロジェクト: cheetos007/owantsbeta_git
	def test_invite_acceptance(self):
		inv = EmailInvite.objects.create(user=self.user, email='*****@*****.**')
		user = User.objects.create(username='******', email='*****@*****.**')
		req = self.factory.get(inv.get_absolute_url())
		accept_invite(req, user)
		inv = EmailInvite.objects.get(pk=inv.pk)
		self.assertEqual(inv.accepted_user, user)


		#assert that users follow each other by default
		self.assertEqual(follow.get_user_followers(self.user.pk),[user.pk])
		self.assertEqual(follow.get_user_followers(user.pk),[self.user.pk])
コード例 #3
0
ファイル: views.py プロジェクト: festlv/django-social-auth
def complete_process(request, backend, *args, **kwargs):
    """Authentication complete process"""
    # pop redirect value before the session is trashed on login()
    redirect_value = request.session.get(REDIRECT_FIELD_NAME, "")
    user = auth_complete(request, backend, *args, **kwargs)
    inv_code = request.session.get("code", "")
    inv_type = request.session.get("inv_type", "")

    if isinstance(user, HttpResponse):
        return user

    if not user and request.user.is_authenticated():
        return HttpResponseRedirect(redirect_value)

    if user:
        if getattr(user, "is_active", True):
            login(request, user)
            request.session["code"] = inv_code
            request.session["inv_type"] = inv_type
            from invite_friends.helpers import accept_invite

            accept_invite(request, user)
            # user.social_user is the used UserSocialAuth instance defined
            # in authenticate process
            social_user = user.social_user

            if setting("SOCIAL_AUTH_SESSION_EXPIRATION", True):
                # Set session expiration date if present and not disabled by
                # setting. Use last social-auth instance for current provider,
                # users can associate several accounts with a same provider.
                if social_user.expiration_delta():
                    request.session.set_expiry(social_user.expiration_delta())

            # store last login backend name in session
            key = setting("SOCIAL_AUTH_LAST_LOGIN", "social_auth_last_login_backend")
            request.session[key] = social_user.provider

            # Remove possible redirect URL from session, if this is a new
            # account, send him to the new-users-page if defined.
            new_user_redirect = backend_setting(backend, "SOCIAL_AUTH_NEW_USER_REDIRECT_URL")
            if new_user_redirect and getattr(user, "is_new", False):
                url = new_user_redirect
            else:
                url = redirect_value or backend_setting(backend, "SOCIAL_AUTH_LOGIN_REDIRECT_URL") or DEFAULT_REDIRECT
        else:
            url = backend_setting(backend, "SOCIAL_AUTH_INACTIVE_USER_URL", LOGIN_ERROR_URL)
    else:
        msg = setting("LOGIN_ERROR_MESSAGE", None)
        if msg:
            messages.error(request, msg)
        url = backend_setting(backend, "LOGIN_ERROR_URL", LOGIN_ERROR_URL)
    return HttpResponseRedirect(url)
コード例 #4
0
ファイル: tests.py プロジェクト: rohitkush1/owantsbeta_git
    def test_invite_acceptance(self):
        inv = EmailInvite.objects.create(user=self.user,
                                         email='*****@*****.**')
        user = User.objects.create(username='******',
                                   email='*****@*****.**')
        req = self.factory.get(inv.get_absolute_url())
        accept_invite(req, user)
        inv = EmailInvite.objects.get(pk=inv.pk)
        self.assertEqual(inv.accepted_user, user)

        #assert that users follow each other by default
        self.assertEqual(follow.get_user_followers(self.user.pk), [user.pk])
        self.assertEqual(follow.get_user_followers(user.pk), [self.user.pk])
コード例 #5
0
ファイル: views.py プロジェクト: cheetos007/owantsbeta_git
def signup(request, **kwargs):
    
    form_class = kwargs.pop("form_class", SignupForm)
    template_name = kwargs.pop("template_name", "account/signup.html")
    redirect_field_name = kwargs.pop("redirect_field_name", "next")
    success_url = kwargs.pop("success_url", None)
    
    group, bridge = group_and_bridge(kwargs)
    ctx = group_context(group, bridge)
    ctx['invite_parameters'] = get_invite_parameters(request)  
    
    if success_url is None:
        if hasattr(settings, "SIGNUP_REDIRECT_URLNAME"):
            fallback_url = reverse(settings.SIGNUP_REDIRECT_URLNAME)
        else:
            if hasattr(settings, "LOGIN_REDIRECT_URLNAME"):
                fallback_url = reverse(settings.LOGIN_REDIRECT_URLNAME)
            else:
                fallback_url = settings.LOGIN_REDIRECT_URL
        success_url = get_default_redirect(request, fallback_url, redirect_field_name)
    
    if request.method == "POST":
        form = form_class(request.POST, request.FILES, group=group)
        if form.is_valid():
            user = form.save(request=request)
            accept_invite(request, user)
            if settings.ACCOUNT_EMAIL_VERIFICATION:
                ctx.update({
                    "email": form.cleaned_data["email"],
                    "success_url": success_url,
                })
                ctx = RequestContext(request, ctx)
                return render_to_response("account/verification_sent.html", ctx)
            else:
                form.login(request, user)
                messages.add_message(request, messages.SUCCESS,
                    ugettext("Successfully logged in as %(user)s.") % {
                        "user": user_display(user)
                    }
                )
                return HttpResponseRedirect(success_url)
    else:
        form = form_class(group=group, initial={'username': ugettext('Username'), 'email': ugettext('Email address')})
    
    ctx.update({
        "form": form,
        "redirect_field_name": redirect_field_name,
        "redirect_field_value": request.REQUEST.get(redirect_field_name),
    })
    
    return render_to_response(template_name, RequestContext(request, ctx))