def authenticate(request, redirect_url): user = request.user token = request.GET.get('token') if request.session.get('fake_auth') and request.META[ 'SERVER_NAME'] in settings.FAKE_AUTH_URLS and hasattr( settings, 'FAKE_AUTH'): fake_auth = settings.FAKE_AUTH if not token: curr_url = request.get_full_path().split('?')[0] fake_token = binascii.b2a_hex(os.urandom(10)) return HttpResponseRedirect( '%s?show_public=%s&token=%s' % (curr_url, str(request.GET.get('show_public', 0)), fake_token)) name = fake_auth['name'] kennitala = fake_auth['kennitala'] else: fake_auth = None if not token: return HttpResponseRedirect(redirect_url) if fake_auth is None: result = get_saml(request, token) name, kennitala = parse_saml(result['saml']) ''' # If the WebFault exception is still popping up (yet to be determined), this should be # moved to an exception-handling middleware of some sorts. For now, we will let the # exception be raised at this point and handled by the 500-error handling mechanism. # # Remove this section if 2014-11-02 was a very long time ago, but please remember to then # also remove the "authentication_error" view in 'core.views.py'. try: result = get_saml(request, token) name, kennitala = parse_saml(result['saml']) except Exception as ex: template = "An exception of type {0} occured. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print message return authentication_error(request, '') ''' if not user.is_authenticated() or user.username != kennitala: user = ensure_user(request, name, kennitala) auth = UserAuthentication() auth.user = user auth.token = token auth.method = 'icekey' auth.save() return auth
def handle(self, *args, **options): petition_count = 100 signatures_min = 20 signatures_max = 30 user, newly_created = User.objects.get_or_create( username='******', first_name='Test User') petitions = Petition.objects.all().order_by( '-date_created')[:petition_count] for petition in petitions: signatures_count = randrange(signatures_min, signatures_max + 1) stdout.write("Generating %d signatures for petition '%s'" % (signatures_count, petition.name)) stdout.flush() for i in range(0, signatures_count): random_number = 0 # Just for formality's sake, really. user = None while user is None: random_number = randrange(100000, 999999) random_username = '******' % random_number random_name = 'Tester nr. %d' % random_number if User.objects.filter( username=random_username).count() == 0: user = User.objects.create(username=random_username) user.first_name = random_name user.save() # Generate a test authentication auth = UserAuthentication() auth.user = user auth.method = 'test' auth.token = 'test_%d' % random_number auth.save() # Generate a test signature sig = Signature() sig.user = user sig.petition = petition sig.authentication = auth sig.show_public = True sig.stance = 'oppose' if randrange( 0, 2) == 1 else 'endorse' # Coin toss sig.save() stdout.write(".") stdout.flush() stdout.write(" done\n") stdout.flush()
def authenticate(request, redirect_url): user = request.user token = request.GET.get('token') if request.session.get('fake_auth') and request.META['SERVER_NAME'] in settings.FAKE_AUTH_URLS and hasattr(settings, 'FAKE_AUTH'): fake_auth = settings.FAKE_AUTH if not token: curr_url = request.get_full_path().split('?')[0] fake_token = binascii.b2a_hex(os.urandom(10)) return HttpResponseRedirect('%s?show_public=%s&token=%s' % (curr_url, str(request.GET.get('show_public', 0)), fake_token)) name = fake_auth['name'] kennitala = fake_auth['kennitala'] else: fake_auth = None if not token: return HttpResponseRedirect(redirect_url) if fake_auth is None: result = get_saml(request, token) name, kennitala = parse_saml(result['saml']) ''' # If the WebFault exception is still popping up (yet to be determined), this should be # moved to an exception-handling middleware of some sorts. For now, we will let the # exception be raised at this point and handled by the 500-error handling mechanism. # # Remove this section if 2014-11-02 was a very long time ago, but please remember to then # also remove the "authentication_error" view in 'core.views.py'. try: result = get_saml(request, token) name, kennitala = parse_saml(result['saml']) except Exception as ex: template = "An exception of type {0} occured. Arguments:\n{1!r}" message = template.format(type(ex).__name__, ex.args) print message return authentication_error(request, '') ''' if not user.is_authenticated() or user.username != kennitala: user = ensure_user(request, name, kennitala) auth = UserAuthentication() auth.user = user auth.token = token auth.method = 'icekey' auth.save() return auth
def handle(self, *args, **options): petition_count = 100 signatures_min = 20 signatures_max = 30 user, newly_created = User.objects.get_or_create(username='******', first_name='Test User') petitions = Petition.objects.all().order_by('-date_created')[:petition_count] for petition in petitions: signatures_count = randrange(signatures_min, signatures_max + 1) stdout.write("Generating %d signatures for petition '%s'" % (signatures_count, petition.name)) stdout.flush() for i in range(0, signatures_count): random_number = 0 # Just for formality's sake, really. user = None while user is None: random_number = randrange(100000, 999999) random_username = '******' % random_number random_name = 'Tester nr. %d' % random_number if User.objects.filter(username=random_username).count() == 0: user = User.objects.create(username=random_username) user.first_name = random_name user.save() # Generate a test authentication auth = UserAuthentication() auth.user = user auth.method = 'test' auth.token = 'test_%d' % random_number auth.save() # Generate a test signature sig = Signature() sig.user = user sig.petition = petition sig.authentication = auth sig.show_public = True sig.stance = 'oppose' if randrange(0, 2) == 1 else 'endorse' # Coin toss sig.save() stdout.write(".") stdout.flush() stdout.write(" done\n") stdout.flush()