예제 #1
0
def authenticate_user(**kwargs):
    """ Display user forms prefilled with data from mojeID """
    request = kwargs['request']
    openid_response = kwargs['openid_response']
    redirect_to = kwargs['redirect']
    user_model = get_user_model()

    # Get the user
    try:
        # Authenticate user
        user_openid = UserOpenID.objects.get(
            claimed_id__exact=openid_response.identity_url)
        try:
            user = user_model.objects.get(pk=user_openid.user_id)
            if OpenIDBackend.is_user_authenticated(user):
                OpenIDBackend.associate_user_with_session(request, user)
        except user_model.DoesNotExist:
            pass

        # Update all updatable attributes
        #attrs = OpenIDBackend.update_user_from_openid(user_id, openid_response)
        # Or Just display the updatable attributes to be updated
        attrs = OpenIDBackend.get_model_changes(openid_response,
                                                only_updatable=True)

        # Set url path
        path = reverse(display_user)

    except UserOpenID.DoesNotExist:
        # Create user

        # Get attributes for the new User model
        attrs = OpenIDBackend.get_model_changes(openid_response)

        # Set url path
        path = reverse(new_user)

    # set the params for redirect
    qd = QueryDict('').copy()
    params = attrs.get(get_user_model(), {})
    params['next'] = redirect_to
    if 'user_id_field_name' in params:
        del params['user_id_field_name']
    qd.update(params)
    # TODO claimed_id as a param!

    url = "%s?%s" % (path, qd.urlencode())
    return redirect(url)
예제 #2
0
def authenticate_user(**kwargs):
    """ Display user forms prefilled with data from mojeID """
    request = kwargs['request']
    openid_response = kwargs['openid_response']
    redirect_to = kwargs['redirect']
    user_model = get_user_model()

    # Get the user
    try:
        # Authenticate user
        user_openid = UserOpenID.objects.get(
            claimed_id__exact=openid_response.identity_url)
        try:
            user = user_model.objects.get(pk=user_openid.user_id)
            if OpenIDBackend.is_user_authenticated(user):
                OpenIDBackend.associate_user_with_session(request, user)
        except user_model.DoesNotExist:
            pass

        # Update all updatable attributes
        #attrs = OpenIDBackend.update_user_from_openid(user_id, openid_response)
        # Or Just display the updatable attributes to be updated
        attrs = OpenIDBackend.get_model_changes(openid_response, only_updatable=True)

        # Set url path
        path = reverse(display_user)

    except UserOpenID.DoesNotExist:
        # Create user

        # Get attributes for the new User model
        attrs = OpenIDBackend.get_model_changes(openid_response)

        # Set url path
        path = reverse(new_user)

    # set the params for redirect
    qd = QueryDict('').copy()
    params = attrs.get(get_user_model(), {})
    params['next'] = redirect_to
    if 'user_id_field_name' in params:
        del params['user_id_field_name']
    qd.update(params)
    # TODO claimed_id as a param!

    url = "%s?%s" % (path, qd.urlencode())
    return redirect(url)
예제 #3
0
def associate_user(**kwargs):
    """ Display associate forms prefilled with data from mojeID """
    request = kwargs['request']
    openid_response = kwargs['openid_response']
    redirect_to = kwargs['redirect']
    claimed_id = openid_response.endpoint.claimed_id
    user_associated = None
    claimed_associated = None

    # Check whether the claimed_id is already associated
    if UserOpenID.objects.filter(claimed_id__exact=claimed_id).exists():
        path = reverse(display_disassociate)
        user_associated = User.objects.get(pk=UserOpenID.objects.get(
            claimed_id__exact=claimed_id).user_id)
    else:
        if UserOpenID.objects.filter(user_id=request.user.id).exists():
            path = reverse(display_disassociate)
            claimed_associated = UserOpenID.objects.get(
                user_id=request.user.id).claimed_id
        else:
            path = reverse(display_associate)
            # Associate the user
            #OpenIDBackend.associate_openid_response(request.user, openid_response)

    # Update all updatable attributes
    #attrs = OpenIDBackend.update_user_from_openid(user_id, openid_response)
    # Or Just display the updatable attributes to be updated
    attrs = OpenIDBackend.get_model_changes(openid_response,
                                            only_updatable=True)

    # set the params for redirect
    qd = QueryDict('').copy()
    params = attrs.get(User, {})
    params['next'] = redirect_to
    params['claimed_id'] = claimed_id
    if user_associated:
        params['user_associated'] = user_associated
    if claimed_associated:
        params['claimed_associated'] = claimed_associated
    if 'user_id_field_name' in params:
        del params['user_id_field_name']
    qd.update(params)

    url = "%s?%s" % (path, qd.urlencode())
    return redirect(url)
예제 #4
0
def associate_user(**kwargs):
    """ Display associate forms prefilled with data from mojeID """
    request = kwargs['request']
    openid_response = kwargs['openid_response']
    redirect_to = kwargs['redirect']
    claimed_id = openid_response.endpoint.claimed_id
    user_associated = None
    claimed_associated = None

    # Check whether the claimed_id is already associated
    if UserOpenID.objects.filter(claimed_id__exact=claimed_id).exists():
        path = reverse(display_disassociate)
        user_associated = User.objects.get(pk=UserOpenID.objects.get(
            claimed_id__exact=claimed_id).user_id)
    else:
        if UserOpenID.objects.filter(user_id=request.user.id).exists():
            path = reverse(display_disassociate)
            claimed_associated = UserOpenID.objects.get(user_id=request.user.id).claimed_id
        else:
            path = reverse(display_associate)
            # Associate the user
            #OpenIDBackend.associate_openid_response(request.user, openid_response)

    # Update all updatable attributes
    #attrs = OpenIDBackend.update_user_from_openid(user_id, openid_response)
    # Or Just display the updatable attributes to be updated
    attrs = OpenIDBackend.get_model_changes(openid_response, only_updatable=True)

    # set the params for redirect
    qd = QueryDict('').copy()
    params = attrs.get(User, {})
    params['next'] = redirect_to
    params['claimed_id'] = claimed_id
    if user_associated:
        params['user_associated'] = user_associated
    if claimed_associated:
        params['claimed_associated'] = claimed_associated
    if 'user_id_field_name' in params:
        del params['user_id_field_name']
    qd.update(params)

    url = "%s?%s" % (path, qd.urlencode())
    return redirect(url)