Beispiel #1
0
def process_csv_file(election, f):
    reader = unicode_csv_reader(f)

    num_voters = 0
    for voter in reader:
        # bad line
        if len(voter) < 1:
            continue

        num_voters += 1
        voter_id = voter[0]
        name = voter_id
        email = voter_id

        if len(voter) > 1:
            email = voter[1]

        if len(voter) > 2:
            name = voter[2]

        # create the user
        user = User.update_or_create(user_type='password', user_id=voter_id,
                                     info={'password': helios_utils.random_string(10), 'email': email, 'name': name})
        user.save()

        # does voter for this user already exist
        voter = Voter.get_by_election_and_user(election, user)

        # create the voter
        if not voter:
            voter_uuid = str(uuid.uuid1())
            voter = Voter(uuid=voter_uuid, voter_type='password', voter_id=voter_id, name=name, election=election)
            voter.save()

    return num_voters
Beispiel #2
0
def _get_demo_user(email_address):
    password = email_address

    try:
        user = User.objects.get(name=email_address)
    except User.DoesNotExist:
        pass
    else:
        if user.user_id.startswith("demo_"):
            user.info = {
                'name': email_address,
                'password': make_password(password)
            }
            user.save()
            return user, password

    try:
        inst = Institution.objects.get(name="DEMO")
    except Institution.DoesNotExist:
        return None, ''

    tries = 10
    while tries > 0:
        user_id = "demo_%d" % randint(1000, 1000000)
        try:
            User.objects.get(user_id=user_id)
        except User.DoesNotExist:
            break
        tries -= 1

    if tries <= 0:
        return None, ''

    demogroup = None
    try:
        demogroup = UserGroup.objects.get(name="demo")
    except UserGroup.DoesNotExist:
        pass
    newuser = User()
    newuser.user_type = "password"
    newuser.admin_p = True
    newuser.info = {'name': email_address, 'password': make_password(password)}
    newuser.name = email_address
    newuser.user_id = user_id
    newuser.superadmin_p = False
    newuser.institution = inst
    newuser.ecounting_account = False
    newuser.save()
    if demogroup:
        newuser.user_groups.add(demogroup)
        newuser.save()
    return newuser, password
Beispiel #3
0
def _get_demo_user(email_address):
    password = email_address

    try:
        user = User.objects.get(name=email_address)
    except User.DoesNotExist:
        pass
    else:
        if user.user_id.startswith("demo_"):
            user.info = {'name': email_address,
                         'password': make_password(password)}
            user.save()
            return user, password

    try:
        inst = Institution.objects.get(name="DEMO")
    except Institution.DoesNotExist:
        return None, ''

    tries = 10
    while tries > 0:
        user_id = "demo_%d" % randint(1000, 1000000)
        try:
            User.objects.get(user_id=user_id)
        except User.DoesNotExist:
            break

    if tries <= 0:
        return None, ''

    newuser = User()
    newuser.user_type = "password"
    newuser.admin_p = True
    newuser.info = {'name': email_address,
                    'password': make_password(password)}
    newuser.name = email_address
    newuser.user_id = user_id
    newuser.superadmin_p = False
    newuser.institution = inst
    newuser.ecounting_account = False
    newuser.save()
    return newuser, password