Exemplo n.º 1
0
def sign_up(request):
    """
    Renders the sign up template. Creates a new user and user profile using the POST data provided.
    It first validates all the provided data. If no error message is returned by the validation
    function, then the user and user profile are created successfully and user is signed in. Else,
     the sign up template is rendered with the error message. Also, every time an error occurs,
     the previous data input by the user is also used while rendering the template (except password).
    """
    user = request.user
    if user.is_authenticated():
        return HttpResponseRedirect('/mytravelog/user/' + user.username + '/')
    else:
        data_dict = {}
        if request.method == "POST":
            post_data = request.POST
            file_data = request.FILES
            first_name = post_data.get('first_name', "")
            last_name = post_data.get('last_name', "")
            email = post_data.get('email', "")
            username = post_data.get('username', "")
            password = post_data.get('password', "")
            profile_picture = file_data.get('profile_picture', None)
            cover_picture = file_data.get('cover_picture', None)

            # validate user input
            error = validate_sign_up_form(first_name, last_name, email, username, password, profile_picture, cover_picture)
            if error is None:
                # create new user
                new_user = User()
                new_user.first_name = first_name
                new_user.last_name = last_name
                new_user.email = email
                new_user.username = username
                new_user.set_password(password)  # encrypt password
                new_user.save()

                # create new user profile
                new_user_profile = UserProfile()
                new_user_profile.city_count = 0
                new_user_profile.country_count = 0
                new_user_profile.log_count = 0
                if profile_picture is not None:
                    new_user_profile.profile_picture = profile_picture
                if cover_picture is not None:
                    new_user_profile.cover_picture = cover_picture
                new_user_profile.user = new_user
                new_user_profile.save()

                # now, sign in the user
                new_user_to_be_signed_in = authenticate(username=username, password=password)
                login(request, new_user_to_be_signed_in)
                return HttpResponseRedirect('/mytravelog/user/' + new_user.username + '/')
            else:
                data_dict['error'] = error
                data_dict['previous_post_data'] = post_data
        return render(request, 'mytravelog/sign_up.html', data_dict)
Exemplo n.º 2
0
def add_sample_user_and_user_profile(user_sample_data):
    user = User()
    user.username = user_sample_data['username']
    user.set_password(user_sample_data['password'])
    user.first_name = user_sample_data['first_name']
    user.last_name = user_sample_data['last_name']
    user.email = user_sample_data['email']
    user.save()
    user_profile = UserProfile()
    user_profile.user = user
    user_profile.save()
    return user
Exemplo n.º 3
0
def add_sample_user_and_user_profile(user_sample_data):
    user = User()
    user.username = user_sample_data['username']
    user.set_password(user_sample_data['password'])
    user.first_name = user_sample_data['first_name']
    user.last_name = user_sample_data['last_name']
    user.email = user_sample_data['email']
    user.save()
    user_profile = UserProfile()
    user_profile.user = user
    user_profile.save()
    return user