Exemple #1
0
def list_view(request):
    if is_sponsor(request.user):
        sponsor_page = SponsorPage.objects.get(sponsor=request.user)
        venues = Venue.objects.filter(sponsor=sponsor_page)
        template = 'spuddercern/sponsor_dashboard/venues.html'
    else:
        venues = Venue.objects.filter(user=request.user)
        template = 'venues/list.html'

    return render(request, template, {'venues': venues})
Exemple #2
0
def list_view(request):
    if is_sponsor(request.user):
        sponsor_page = SponsorPage.objects.get(sponsor=request.user)
        venues = Venue.objects.filter(sponsor=sponsor_page)
        template = 'spuddercern/sponsor_dashboard/venues.html'
    else:
        venues = Venue.objects.filter(user=request.user)
        template = 'venues/list.html'

    return render(request, template, {'venues': venues})
Exemple #3
0
def just_login(request):
    raise DeprecationWarning("This code is deprecated")
    error = get_request_param(request, 'error', None)

    if error is not None:
        error_message = request.GET.get('error_description') + \
                        '<br><a href="' + request.GET.get('error_uri') + \
                        '">Learn more</a>'
        return render(request, 'spuddercern/old/login.html', {
            'error': error_message
        })

    access_token = get_request_param(request, 'access_token')
    query_parameters = urllib.urlencode({'access_token': access_token})

    token_request = urllib2.urlopen(
        'https://api.amazon.com/auth/O2/tokeninfo?%s' % query_parameters)
    json_data = json.load(token_request)
    if token_request.getcode() == 200:
        is_verified = json_data['aud'] == settings.AMAZON_LOGIN_CLIENT_ID
        if not is_verified:
            return render(request, 'spuddercern/old/login.html', {
                'error': 'Verification failed! Please contact administrators'
            })

        profile_request = urllib2.urlopen(
            'https://api.amazon.com/user/profile?%s' % query_parameters)
        profile_json_data = json.load(profile_request)

        if profile_request.getcode() == 200:
            amazon_user_id = profile_json_data['user_id']
            amazon_user_name = profile_json_data['name']
            amazon_user_email = profile_json_data['email']

            profiles = UserProfile.objects.filter(amazon_id=amazon_user_id)
            if profiles.count() == 0:
                users_with_email = User.objects.filter(
                    email=amazon_user_email)

                if len(users_with_email) == 0:
                    return HttpResponseRedirect('/cern/')
                else:  # User exists, but for some reason it's profile
                    # wasn't created
                    user = users_with_email[0]

                user_profile = UserProfile(user=user)
                user_profile.amazon_id = amazon_user_id
                user_profile.amazon_access_token = access_token
                user_profile.username = amazon_user_name
                user_profile.save()

            user = authenticate(username=amazon_user_email,
                                password=amazon_user_id)
            profile = user.get_profile()

            if not profile.amazon_access_token:
                profile.amazon_access_token = access_token
                profile.save()

            try:
                Student.objects.get(user=user)
            except ObjectDoesNotExist:
                if is_sponsor(user):
                    django.contrib.auth.login(request, user)

                    logging.info(request.user.is_authenticated())
                    logging.info(is_sponsor(request.user))

                    return HttpResponseRedirect('/dashboard/')
                else:
                    # Redirect to splash page w/o authentication
                    return HttpResponseRedirect('/cern/register')
            else:
                django.contrib.auth.login(request, user)

                logging.info(request.user.is_authenticated())
                logging.info(is_sponsor(request.user))

                return HttpResponseRedirect('/cern/')
        else:
            return _handle_amazon_conn_error(request, profile_json_data)
    else:
        return _handle_amazon_conn_error(request, json_data)
Exemple #4
0
def just_login(request):
    raise DeprecationWarning("This code is deprecated")
    error = get_request_param(request, 'error', None)

    if error is not None:
        error_message = request.GET.get('error_description') + \
                        '<br><a href="' + request.GET.get('error_uri') + \
                        '">Learn more</a>'
        return render(request, 'spuddercern/old/login.html',
                      {'error': error_message})

    access_token = get_request_param(request, 'access_token')
    query_parameters = urllib.urlencode({'access_token': access_token})

    token_request = urllib2.urlopen(
        'https://api.amazon.com/auth/O2/tokeninfo?%s' % query_parameters)
    json_data = json.load(token_request)
    if token_request.getcode() == 200:
        is_verified = json_data['aud'] == settings.AMAZON_LOGIN_CLIENT_ID
        if not is_verified:
            return render(request, 'spuddercern/old/login.html', {
                'error':
                'Verification failed! Please contact administrators'
            })

        profile_request = urllib2.urlopen(
            'https://api.amazon.com/user/profile?%s' % query_parameters)
        profile_json_data = json.load(profile_request)

        if profile_request.getcode() == 200:
            amazon_user_id = profile_json_data['user_id']
            amazon_user_name = profile_json_data['name']
            amazon_user_email = profile_json_data['email']

            profiles = UserProfile.objects.filter(amazon_id=amazon_user_id)
            if profiles.count() == 0:
                users_with_email = User.objects.filter(email=amazon_user_email)

                if len(users_with_email) == 0:
                    return HttpResponseRedirect('/cern/')
                else:  # User exists, but for some reason it's profile
                    # wasn't created
                    user = users_with_email[0]

                user_profile = UserProfile(user=user)
                user_profile.amazon_id = amazon_user_id
                user_profile.amazon_access_token = access_token
                user_profile.username = amazon_user_name
                user_profile.save()

            user = authenticate(username=amazon_user_email,
                                password=amazon_user_id)
            profile = user.get_profile()

            if not profile.amazon_access_token:
                profile.amazon_access_token = access_token
                profile.save()

            try:
                Student.objects.get(user=user)
            except ObjectDoesNotExist:
                if is_sponsor(user):
                    django.contrib.auth.login(request, user)

                    logging.info(request.user.is_authenticated())
                    logging.info(is_sponsor(request.user))

                    return HttpResponseRedirect('/dashboard/')
                else:
                    # Redirect to splash page w/o authentication
                    return HttpResponseRedirect('/cern/register')
            else:
                django.contrib.auth.login(request, user)

                logging.info(request.user.is_authenticated())
                logging.info(is_sponsor(request.user))

                return HttpResponseRedirect('/cern/')
        else:
            return _handle_amazon_conn_error(request, profile_json_data)
    else:
        return _handle_amazon_conn_error(request, json_data)