示例#1
0
def associate_steam(request):
    """Associate a Steam account with a Lutris account"""
    LOGGER.info("Associating Steam user with Lutris account")
    if not request.user.is_authenticated:
        return login_complete(request)

    account_url = reverse('user_account', args=(request.user.username, ))
    try:
        openid_response = parse_openid_response(request)
    except HTTPFetchingError:
        messages.warning(
            request,
            "Steam server is unreachable, please try again in a few moments")
        return redirect(account_url)

    if openid_response.status == 'failure':
        messages.warning(request, "Failed to associate Steam account")
        LOGGER.warning("Failed to associate Steam account for %s",
                       request.user.username)
        return redirect(account_url)
    openid_backend = OpenIDBackend()
    try:
        openid_backend.associate_openid(request.user, openid_response)
    except IdentityAlreadyClaimed:
        messages.warning(
            request, "This Steam account is already claimed by another Lutris "
            "account.\nPlease contact an administrator if you want "
            "to reattribute your Steam account to this current account.")
        return redirect(account_url)

    request.user.set_steamid()
    request.user.save()
    return redirect(reverse("library_steam_sync"))
示例#2
0
def login_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', False)
    r = openid_views.login_complete(
        request, render_failure=render_openid_login_failure)
    if isinstance(r, http.HttpResponseRedirect):
        try:
            user = request.user.get_profile()
        except UserProfile.DoesNotExist:
            user = request.user
            username = ''
            if user.username[:10] != 'openiduser':
                username = user.username
            form = forms.CreateProfileForm(initial={
                'full_name': ' '.join((user.first_name, user.last_name)),
                'email': user.email,
                'username': username,
            })
            return render_to_response('dashboard/setup_profile.html', {
                'form': form,
            }, context_instance=RequestContext(request))

        redirect_url = _get_redirect_url(request)
        if redirect_url:
            return http.HttpResponseRedirect(redirect_url)

    return r
示例#3
0
文件: views.py 项目: mkcode/lernanta
def login_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', False)
    r = openid_views.login_complete(
        request, render_failure=render_openid_login_failure)
    if isinstance(r, http.HttpResponseRedirect):
        try:
            user = request.user.get_profile()
        except UserProfile.DoesNotExist:
            user = request.user
            username = ''
            if user.username[:10] != 'openiduser':
                username = user.username
            form = forms.CreateProfileForm(initial={
                'full_name': ' '.join((user.first_name, user.last_name)),
                'email': user.email,
                'username': username,
            })
            return render_to_response('dashboard/setup_profile.html', {
                'form': form,
            }, context_instance=RequestContext(request))

        redirect_url = _get_redirect_url(request)
        if redirect_url:
            return http.HttpResponseRedirect(redirect_url)

    return r
示例#4
0
def associate_steam(request):
    """Associate a Steam account with a Lutris account"""
    LOGGER.info("Associating Steam user with Lutris account")
    if not request.user.is_authenticated:
        LOGGER.info("User is authenticated, completing login")
        return login_complete(request)
    else:
        openid_response = parse_openid_response(request)
        account_url = reverse('user_account', args=(request.user.username, ))
        if openid_response.status == 'failure':
            messages.warning(request, "Failed to associate Steam account")
            REQUEST_LOGGER.error("Failed to associate Steam account for %s",
                                 request.user.username,
                                 extra={
                                     'status_code': 400,
                                     'request': request
                                 })
            return redirect(account_url)
        openid_backend = OpenIDBackend()
        try:
            openid_backend.associate_openid(request.user, openid_response)
        except IdentityAlreadyClaimed:
            messages.warning(
                request,
                "This Steam account is already claimed by another Lutris "
                "account.\nPlease contact an administrator if you want "
                "to reattribute your Steam account to this current account.")
            return redirect(account_url)

        request.user.set_steamid()
        request.user.save()
        return redirect(reverse("library_steam_sync"))
示例#5
0
文件: views.py 项目: arlton2/lernanta
def login_openid_complete(request):
    setattr(settings, "OPENID_CREATE_USERS", False)
    r = openid_views.login_complete(request, render_failure=render_openid_login_failure)
    if isinstance(r, http.HttpResponseRedirect):
        try:
            user = request.user.get_profile()
        except UserProfile.DoesNotExist:
            user = request.user
            username = ""
            if user.username[:10] != "openiduser":
                username = user.username
            form = forms.CreateProfileForm(
                initial={
                    "full_name": " ".join((user.first_name, user.last_name)),
                    "email": user.email,
                    "username": username,
                }
            )
            return render_to_response(
                "dashboard/setup_profile.html", {"form": form}, context_instance=RequestContext(request)
            )
        if user.confirmation_code:
            logout(request)
            unconfirmed_account_notice(request, user)
            return render_to_response(
                "users/login_openid.html", {"form": forms.OpenIDForm()}, context_instance=RequestContext(request)
            )

        redirect_url = _get_redirect_url(request)
        if redirect_url:
            return http.HttpResponseRedirect(redirect_url)

    return r
示例#6
0
文件: views.py 项目: lutris/website
def associate_steam(request):
    """Associate a Steam account with a Lutris account"""
    LOGGER.info("Associating Steam user with Lutris account")
    if not request.user.is_authenticated:
        LOGGER.info("User is authenticated, completing login")
        return login_complete(request)
    else:
        openid_response = parse_openid_response(request)
        account_url = reverse('user_account', args=(request.user.username, ))
        if openid_response.status == 'failure':
            messages.warning(request, "Failed to associate Steam account")
            REQUEST_LOGGER.error("Failed to associate Steam account for %s", request.user.username,
                                 extra={
                                     'status_code': 400,
                                     'request': request
                                 })
            return redirect(account_url)
        openid_backend = OpenIDBackend()
        try:
            openid_backend.associate_openid(request.user, openid_response)
        except IdentityAlreadyClaimed:
            messages.warning(
                request,
                "This Steam account is already claimed by another Lutris "
                "account.\nPlease contact an administrator if you want "
                "to reattribute your Steam account to this current account."
            )
            return redirect(account_url)

        request.user.set_steamid()
        request.user.save()
        return redirect(reverse("library_steam_sync"))
示例#7
0
def associate_steam(request):
    if not request.user.is_authenticated():
        return login_complete(request)
    else:
        openid_response = parse_openid_response(request)
        if openid_response.status == "failure":
            messages.error(request, "Failed to associate Steam account")
            return redirect(reverse("user_account", args=(request.user.username,)))
        openid_backend = OpenIDBackend()
        openid_backend.associate_openid(request.user, openid_response)
        request.user.set_steamid()
        request.user.save()
        return redirect(reverse("library_steam_sync"))
示例#8
0
def login_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', False)
    r = openid_views.login_complete(
        request, render_failure=render_openid_login_failure)
    if isinstance(r, http.HttpResponseRedirect):
        user = request.user.get_profile()
        if user.confirmation_code:
            logout(request)
            unconfirmed_account_notice(request, user)
            return render_to_response('users/login_openid.html', {
                'form': forms.OpenIDForm(),
            }, context_instance=RequestContext(request))

        redirect_url = _get_redirect_url(request)
        if redirect_url:
            return http.HttpResponseRedirect(redirect_url)

    return r
示例#9
0
文件: views.py 项目: thornet/batucada
def login_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', False)
    r = openid_views.login_complete(request,
                                    render_failure=render_openid_login_failure)
    if isinstance(r, http.HttpResponseRedirect):
        user = request.user.get_profile()
        if user.confirmation_code:
            logout(request)
            unconfirmed_account_notice(request, user)
            return render_to_response('users/login_openid.html', {
                'form': forms.OpenIDForm(),
            },
                                      context_instance=RequestContext(request))

        redirect_url = _get_redirect_url(request)
        if redirect_url:
            return http.HttpResponseRedirect(redirect_url)

    return r
示例#10
0
def custom_login_complete(request, **kwargs):
    """
    Method invoked after successful OpenID login.
    Overridden to create user profile after first successful OpenID login.
    """
    
    # authenticate user
    response = login_complete(request, **kwargs)

    # create a stub profile with blank mandatory fields
    if not request.user.is_anonymous():
        openid = request.GET.get('openid.claimed_id', None)
        try:
            request.user.profile
            
        except ObjectDoesNotExist:

            print 'Discovering site for user with openid=%s' % openid
            
            # retrieve user home node
            site = discoverSiteForUser(openid)
            if site is None: 
                # set user home node to current node
                site = Site.objects.get_current()
                
            print 'User site=%s... creating user profile...' % site
                
            # create new ESGF/OpenID login, type=2: ESGF
            UserProfile.objects.create(user=request.user, institution='', city='', country='', type=2, site=site)
            
            # create user datacart
            DataCart.objects.create(user=request.user)
            
            # set openid cookie
            set_openid_cookie(response, openid)

    # check if user is valid
    return _custom_login(request, response)
示例#11
0
def associate_steam(request):
    if not request.user.is_authenticated():
        return login_complete(request)
    else:
        openid_response = parse_openid_response(request)
        account_url = reverse('user_account', args=(request.user.username, ))
        if openid_response.status == 'failure':
            messages.warning(request, "Failed to associate Steam account")
            return redirect(account_url)
        openid_backend = OpenIDBackend()
        try:
            openid_backend.associate_openid(request.user, openid_response)
        except IdentityAlreadyClaimed:
            messages.warning(
                request,
                "This Steam account is already claimed by another Lutris "
                "account.\nPlease contact an administrator if you want "
                "to reattribute your Steam account to this current account.")
            return redirect(account_url)

        request.user.set_steamid()
        request.user.save()
        return redirect(reverse("library_steam_sync"))
示例#12
0
文件: views.py 项目: dacp17/website
def associate_steam(request):
    if not request.user.is_authenticated():
        return login_complete(request)
    else:
        openid_response = parse_openid_response(request)
        account_url = reverse('user_account', args=(request.user.username, ))
        if openid_response.status == 'failure':
            messages.warning(request, "Failed to associate Steam account")
            return redirect(account_url)
        openid_backend = OpenIDBackend()
        try:
            openid_backend.associate_openid(request.user, openid_response)
        except IdentityAlreadyClaimed:
            messages.warning(
                request,
                "This Steam account is already claimed by another Lutris "
                "account.\nPlease contact an administrator if you want "
                "to reattribute your Steam account to this current account."
            )
            return redirect(account_url)

        request.user.set_steamid()
        request.user.save()
        return redirect(reverse("library_steam_sync"))
示例#13
0
def register_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', True)
    return openid_views.login_complete(
        request, render_failure=render_openid_registration_failure)
示例#14
0
文件: views.py 项目: mkcode/lernanta
def register_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', True)
    return openid_views.login_complete(
        request, render_failure=render_openid_registration_failure)
示例#15
0
def openid_complete(request):
    if not openid_views:
        raise Http404
    return openid_views.login_complete(request, render_failure=openid_failure)
示例#16
0
def login_openid_complete(request):
    setattr(settings, 'OPENID_CREATE_USERS', False)
    return openid_views.login_complete(
        request, render_failure=render_openid_login_failure)