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})
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)
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)