Ejemplo n.º 1
0
def register(request):
    form = forms.NewUserForm()
    if request.POST:
        ensure_permissions()
        form = forms.NewUserForm(request.POST)
        role = request.POST.get('role')
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            user = User.objects.create_user(username=username, password=password)
            if role is not None:
                if have_permission(request, ['blog.can_add', 'blog.can_edit_schedule']):
                    if role == 'is_admin' or role == 'is_cashier':
                        if role == 'is_admin':
                            permission = Permission.objects.get(codename='can_add')
                        elif role == 'is_cashier':
                            permission = Permission.objects.get(codename='can_edit_schedule')
                    else:
                        user.delete()
                        return redirect('no_permission')
                    e = UserProfile()
                    e.profile = user
                    e.author = request.user
                    e.save()
                    user.user_permissions.add(permission)
                    user.save()
            if request.user.has_perm('blog.can_add') or request.user.has_perm('blog.can_edit_schedule'):
                return redirect('users.html')
            else:
                return redirect('login.html')
    perm = have_permission(request, ['blog.can_add', 'blog.can_edit_scheduele'])
    return render(request, 'register.html', {'form': form, 'perm': perm})
Ejemplo n.º 2
0
def signup(request):
    if request.method == 'GET':
        context = {
            'form': UserCreationForm(),
        }

        return render(request, 'accounts/signup.html', context)
    else:
        form = UserCreationForm(request.POST)

        if form.is_valid():
            user = form.save()
            profile = UserProfile(
                user=user,
            )
            profile.save()

            login(request, user)
            return redirect('current user profile')

        context = {
            'form': form,
        }

        return render(request, 'accounts/signup.html', context)
Ejemplo n.º 3
0
 def registration(self, request, **kwargs):
     self.method_check(request, allowed=['post'])
     data = json.loads(request.body)
     try:
         email = data.get('email')
         password = data.get('password')
         confirm_password = data.get('confirm_password')
         phone_number = data.get('phone_number')
     except KeyError:
         return self.create_response(request, {}, HttpBadRequest)
     first_name = data.get('first_name', '')
     last_name = data.get('last_name', '')
     try:
         User.objects.get(username=email)
         return self.create_response(request, {}, HttpBadRequest)
     except ObjectDoesNotExist:
         if password == confirm_password:
             user = User.objects.create_user(email, email, password,
                 first_name=first_name, last_name=last_name)
             user.save()
             user_profile = UserProfile(user=user, phone_number=phone_number)
             try:
                 user_profile.save()
             except:
                 user.delete()
                 return self.create_response(request, {}, HttpBadRequest)
             return self.create_response(request, {})
         else:
             return self.create_response(request, {}, HttpBadRequest)
Ejemplo n.º 4
0
    def create_voters(self):
        res = []
        for i in range(10):
            u = User(username='******'.format(i))
            u.set_password('1234abcd')
            u.save()
            user_profile = UserProfile(user=u, gender='Male', birthdate='2019-01-13 11:39:48.792042+01:00')
            user_profile.save()

            user_id = User.objects.filter(username='******'.format(i)).values('id')[0]['id']
            res.append(user_id)
        return res
Ejemplo n.º 5
0
    def setUp(self):
        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='C',
                                 is_staff=True,
                                 is_superuser=True,
                                 is_active=True)
        user_admin.set_password('qwerty')
        user_admin.save()
        self.client.force_login(user_admin)

        super().setUp()
Ejemplo n.º 6
0
def register_webapp(request):
    '''
	Input
	==================================
	name
	email
	'''
    registered = False
    flag = 0
    response = {}
    response['success'] = 0
    if request.method == "POST":
        profile = UserProfile()
        name = request.POST['name']
        email = request.POST['email']
        password = ""
        mobile_id = "Not avaliable"
        try:
            user = User.objects.get(username=email)
        except User.DoesNotExist:
            user = User()
            flag = 1
        if flag == 1:
            user.first_name = name
            user.username = email
            user.password = password
            user.set_password(user.password)
            user.is_active = True
            user.save()
            profile.user = user
            profile.mobile_id = mobile_id
            profile.lastLoginDate = datetime.now()
            profile.ipaddress = get_client_ip(request)
            profile.save()
            registered = True
            response['success'] = 1
            response['email'] = email
            response['id'] = user.id
        else:
            response['success'] = 1
            response['message'] = "User is already present"
            response['email'] = user.username
            response['id'] = user.id
        user = authenticate(username=email, password=password)
        login(request, user)
        user.lastLoginDate = datetime.now()
        user.userprofile.loggedIn = True
        user.save()
        if len(SectionScore.objects.filter(email=user.username)) > 0:
            s = SectionScore.objects.filter(email=user.username)[0]
            s.is_download = True
            s.save()
    return JsonResponse(response)
Ejemplo n.º 7
0
    def setUp(self):
        self.base = BaseTestCase()
        self.base.setUp()

        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='N',
                                 is_staff=True,
                                 is_superuser=True,
                                 is_active=True)
        user_admin.set_password('qwerty')
        user_admin.save()
        self.base.login(user='******', password='******')
Ejemplo n.º 8
0
 def setUp(self):
     self.client = APIClient()
     mods.mock_query(self.client)
     u = UserProfile(id=1, username='******', sex='M')
     u.set_password('123')
     u.save()
     token= mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
     #Add session token
     session = self.client.session
     session['user_token'] = token
     session['voter_id']=u.id
     session['username']=u.username
     session.save()
Ejemplo n.º 9
0
def registergoogle(request):
    print('google sign-in register method called')
    registered = False
    flag = 0
    response = {}
    response['success'] = 0
    if request.method == "POST":
        method = request.POST['method']
        profile = UserProfile()
        name = request.POST['name']
        email = request.POST['email']
        print(email)
        password = ""
        if method == 'normal':
            password = request.POST['password']
        #mobile_id=request.POST['mobile_id']	# we are doing only google sign in registration
        try:
            user = User.objects.get(username=email)
        except User.DoesNotExist:
            user = User()
            flag = 1
        if flag == 1:
            user.first_name = name
            user.username = email
            user.password = password
            user.set_password(user.password)
            user.is_active = True
            user.save()
            profile.user = user
            #profile.mobile_id=mobile_id
            profile.lastLoginDate = datetime.now()
            profile.ipaddress = get_client_ip(request)
            profile.save()
            registered = True
            response['success'] = 1
            response['email'] = email
            response['id'] = user.id
        else:
            #user.userprofile.mobile_id=mobile_id
            user.first_name = name
            #user.userprofile.save()
            user.save()
            response['success'] = 1
            response['message'] = "User is already present"
            response['email'] = user.username
            response['id'] = user.id
        if len(SectionScore.objects.filter(email=user.username)) > 0:
            s = SectionScore.objects.filter(email=user.username)[0]
            s.is_download = True
            s.save()
    return JsonResponse(response)
Ejemplo n.º 10
0
def newuser(request, utype, password, email):
    response = {}
    if request.method == "POST":
        user = authenticate(username=email, password=password)
        if user is not None:
            if not user.is_active:
                print "User is registering"
                first_name = request.POST['first_name']
                password = request.POST['password']
                conpassword = request.POST['conpassword']
                if password == conpassword:
                    user.set_password(password)
                    user.first_name = first_name
                    user.is_active = True
                    user.save()
                    userp = UserProfile()
                    userp.user = user
                    userp.collegeName = request.POST['collegeName']
                    userp.phone = request.POST['telephone']
                    userp.description = request.POST['description']
                    userp.usertype = utype
                    if request.FILES['picture']:
                        userp.profilepicture = request.FILES['picture']
                    else:
                        userp.profilepicture = 'default.jpg'
                    userp.lastLoginDate = datetime.now()
                    userp.save()
                    if utype == 'Organisation':
                        org = Organisation()
                        org.user = user
                        org.name = request.POST['first_name']
                        org.description = request.POST['description']
                        if request.FILES['picture']:
                            org.logo = request.FILES['picture']
                        else:
                            org.logo = 'default.jpg'
                        org.address = request.POST['address']
                        org.save()
                    return HttpResponseRedirect('/login')
                else:
                    response['message'] = "Password not matching"
            else:
                response['message'] = 'User already active'
        else:
            response['message'] = 'User is not allowed to be registered'
    response['utype'] = utype
    response['password'] = password
    response['email'] = email
    return render(request, 'site/registernewuser.html', response)
Ejemplo n.º 11
0
def newuser(request,utype,password,email):
	response={}
	if request.method == "POST":
		user=authenticate(username=email, password=password)
		if user is not None:
			if not user.is_active:
				print "User is registering"
				first_name=request.POST['first_name']
				password=request.POST['password']
				conpassword=request.POST['conpassword']
				if password == conpassword:
					user.set_password(password)
					user.first_name=first_name
					user.is_active=True
					user.save()
					userp=UserProfile()
					userp.user=user
					userp.collegeName=request.POST['collegeName']
					userp.phone=request.POST['telephone']
					userp.description=request.POST['description']
					userp.usertype=utype
					if request.FILES['picture']:
						userp.profilepicture=request.FILES['picture']
					else:
						userp.profilepicture='default.jpg'
					userp.lastLoginDate=datetime.now()
					userp.save()
					if utype == 'Organisation':
						org=Organisation()
						org.user=user
						org.name=request.POST['first_name']
						org.description=request.POST['description']
						if request.FILES['picture']:
							org.logo=request.FILES['picture']
						else:
							org.logo='default.jpg'
						org.address=request.POST['address']
						org.save()
					return HttpResponseRedirect('/login')
				else:
					response['message']="Password not matching"
			else:
				response['message']='User already active'
		else:
			response['message']='User is not allowed to be registered'
	response['utype']=utype
	response['password']=password
	response['email']=email
	return render(request,'site/registernewuser.html',response)
Ejemplo n.º 12
0
    def setUp(self):
        self.client = APIClient()
        self.token = None
        mods.mock_query(self.client)

        user_noadmin = UserProfile(username='******', sex='M', style='N')
        user_noadmin.set_password('qwerty')
        user_noadmin.save()

        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='N',
                                 is_staff=True)
        user_admin.set_password('qwerty')
        user_admin.save()
Ejemplo n.º 13
0
 def test_dashboard_details(self):
     #Create user 2
     self.client = APIClient()
     mods.mock_query(self.client)
     u2 = UserProfile(id=2, username='******', sex='M')
     u2.set_password('123')
     u2.save()
     token2 = mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
     #Add session token 2
     session = self.client.session
     session['user_token'] = token2
     session['voter_id'] = u2.id
     session.save()
     response = self.client.get(reverse('dashboard'), follow=True)
     self.assertEqual(response.status_code, 200)
Ejemplo n.º 14
0
 def setUp(self):
     self.client = APIClient()
     self.token = None
     mods.mock_query(self.client)
     options = webdriver.ChromeOptions()
     options.headless = True
     self.driver = webdriver.Chrome(options=options)
     user_admin = UserProfile(username='******',
                              sex='F',
                              style='N',
                              is_staff=True,
                              is_superuser=True)
     user_admin.set_password('qwerty')
     user_admin.save()
     super().setUp()
  def setUp(self):
    self.base = BaseTestCase()
    self.base.setUp()
    user_admin_superuser = UserProfile(username='******', sex='F', style='N', is_staff=True, is_superuser=True)
    user_admin_superuser.set_password('qwerty')
    user_admin_superuser.save()
    self.base.user_admin = user_admin_superuser

    options = webdriver.FirefoxOptions()
    options.headless = True
    self.driver = webdriver.Firefox(options=options)
    self.vars = {}
    self.driver.maximize_window() #For maximizing window
    self.driver.implicitly_wait(20) #gives an implicit wait for 20 seconds

    super().setUp() 
Ejemplo n.º 16
0
    def setUp(self):
        # Create user
        self.client = APIClient()
        mods.mock_query(self.client)
        u = UserProfile(id=1, username='******', sex='M')
        u.set_password('123')
        u.save()
        token= mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
        # Add session token
        session = self.client.session
        session['user_token'] = token
        session.save()

        #Create voting

        #Create question 1
        q1 = Question(id=1,desc='Unique option question', option_types=1)
        q1.save()
        for i in range(3):
            opt = QuestionOption(question=q1, option='option {}'.format(i+1))
            opt.save()

        #Create question 2
        q2 = Question(id=2,desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i+1))
            opt.save()

        #Create question 3
        q3 = Question(id=3,desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i+1))
            opt.save()

        v = Voting(id=1, name='Single question voting',desc='Single question voting...', points=1, start_date=timezone.now())
        v.save()
        v.question.add(q1), v.question.add(q2), v.question.add(q3)
        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={'me': True, 'name': 'base'})
        a.save()
        v.auths.add(a)
        Voting.create_pubkey(v)
        #Add user to census
        census = Census(voting_id=v.id, voter_id=u.id)
        census.save()
Ejemplo n.º 17
0
    def test_search_filter(self):
        date = datetime.datetime.now()
        voting = Voting(name='test 1', desc='r')
        voting.save()

        voting2 = Voting(name='test 2', desc='r', start_date=date)
        voting2.save()

        voting3 = Voting(name='test 3',
                         desc='r',
                         start_date=date,
                         end_date=date)
        voting3.save()

        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='N',
                                 is_staff=True,
                                 is_superuser=True,
                                 is_active=True)
        user_admin.set_password('qwerty')
        user_admin.save()
        self.client.force_login(user_admin)

        response = self.client.get('/visualizer/?filter=A')
        votings = response.context['votings']
        self.assertEqual(votings.first(), voting2)
        self.assertEqual(votings.count(), 1)
        response = self.client.get('/visualizer/?filter=S')
        votings = response.context['votings']
        self.assertEqual(votings.first(), voting)
        self.assertEqual(votings.count(), 1)
        response = self.client.get('/visualizer/?filter=Fn')
        votings = response.context['votings']
        self.assertEqual(votings.first(), voting3)
        self.assertEqual(votings.count(), 1)
        response = self.client.get('/visualizer/?nombre=1')
        votings = response.context['votings']
        self.assertEqual(votings.first(), voting)
        self.assertEqual(votings.count(), 1)
        response = self.client.get('/visualizer/?nombre=3')
        votings = response.context['votings']
        self.assertEqual(votings.first(), voting3)
        self.assertEqual(votings.count(), 1)

        self.client.logout()
Ejemplo n.º 18
0
def newusercap(request,utype,password,email,capadminid):
	print "newusercap"
	response={}
	if request.method == "POST":
		user=authenticate(username=email, password=password)
		if user is not None:
			if not user.is_active:
				print "User is registering"
				first_name=request.POST['first_name']
				password=request.POST['password']
				conpassword=request.POST['conpassword']
				if password == conpassword:
					user.set_password(password)
					user.first_name=first_name
					user.is_active=True
					user.save()
					userp=UserProfile()
					userp.user=user
					userp.collegeName=request.POST['collegeName']
					userp.phone=request.POST['telephone']
					userp.description=request.POST['description']
					userp.usertype=utype
					if request.FILES['picture']:
						userp.profilepicture=request.FILES['picture']
					else:
						userp.profilepicture='default.jpg'
					userp.lastLoginDate=datetime.now()
					userp.save()
					cap=CapMember()
					cap.capadmin=User.objects.get(id=capadminid)
					cap.capmember=user
					cap.save()
					return HttpResponseRedirect('/login')
				else:
					response['message']="Password not matching"
			else:
				response['message']='User already active'
		else:
			response['message']='User is not allowed to be registered'
	response['utype']=utype
	response['password']=password
	response['email']=email
	response['capadminid']=capadminid
	response['capadmin']=User.objects.get(id=capadminid)
	return render(request,'site/registernewuser.html',response)
Ejemplo n.º 19
0
def newusercap(request, utype, password, email, capadminid):
    print "newusercap"
    response = {}
    if request.method == "POST":
        user = authenticate(username=email, password=password)
        if user is not None:
            if not user.is_active:
                print "User is registering"
                first_name = request.POST['first_name']
                password = request.POST['password']
                conpassword = request.POST['conpassword']
                if password == conpassword:
                    user.set_password(password)
                    user.first_name = first_name
                    user.is_active = True
                    user.save()
                    userp = UserProfile()
                    userp.user = user
                    userp.collegeName = request.POST['collegeName']
                    userp.phone = request.POST['telephone']
                    userp.description = request.POST['description']
                    userp.usertype = utype
                    if request.FILES['picture']:
                        userp.profilepicture = request.FILES['picture']
                    else:
                        userp.profilepicture = 'default.jpg'
                    userp.lastLoginDate = datetime.now()
                    userp.save()
                    cap = CapMember()
                    cap.capadmin = User.objects.get(id=capadminid)
                    cap.capmember = user
                    cap.save()
                    return HttpResponseRedirect('/login')
                else:
                    response['message'] = "Password not matching"
            else:
                response['message'] = 'User already active'
        else:
            response['message'] = 'User is not allowed to be registered'
    response['utype'] = utype
    response['password'] = password
    response['email'] = email
    response['capadminid'] = capadminid
    response['capadmin'] = User.objects.get(id=capadminid)
    return render(request, 'site/registernewuser.html', response)
Ejemplo n.º 20
0
    def test_no_political_party_voting_senate(self):

        u = User(username='******')
        u.set_password('senator')
        u.save()

        q = Question(desc='Choose')
        q.save()

        opt = QuestionOption(question=q, option='senator')
        opt.save()

        political_party = PoliticalParty(name='Partido Popular',
                                         acronym='PP',
                                         description='test',
                                         headquarters='test')
        political_party.save()

        birthdate = date(2000, 2, 28)
        userProfile = UserProfile(related_political_party=political_party,
                                  birthdate=birthdate,
                                  sex='F',
                                  related_user=u,
                                  province='S',
                                  employment='S')
        userProfile.save()

        v = Voting(name='test voting',
                   question=q,
                   tipe='S',
                   province='S',
                   political_party=political_party)
        v.save()

        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={
                                              'me': True,
                                              'name': 'test auth'
                                          })
        a.save()
        v.auths.add(a)

        self.assertRaises(ValidationError, v.clean)
Ejemplo n.º 21
0
    def create_voting_senate_primaries(self):

        u = User(username='******')
        u.set_password('123')
        u.save()

        q = Question(desc='test question')
        q.save()

        opt = QuestionOption(question=q, option='senator')
        opt.save()

        political_party = PoliticalParty(name='for senator',
                                         acronym='test',
                                         description='test',
                                         headquarters='test')
        political_party.save()

        birthdate = date(2000, 2, 28)
        userProfile = UserProfile(related_political_party=political_party,
                                  birthdate=birthdate,
                                  sex='F',
                                  related_user=u,
                                  province='S',
                                  employment='B')
        userProfile.save()

        v = Voting(name='test voting',
                   question=q,
                   tipe='SP',
                   political_party=political_party)
        v.save()

        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={
                                              'me': True,
                                              'name': 'test auth'
                                          })
        a.save()
        v.auths.add(a)

        return v
Ejemplo n.º 22
0
    def update(self, instance, validated_data):
        profile_data = validated_data.pop('UserProfile')
        UserProfile = instance.UserProfile

        instance.email = validated_data.get('email', instance.email)
        instance.save()

        UserProfile.phone = profile_data.get('phone', UserProfile.phone)
        UserProfile.dob = profile_data.get('dob', UserProfile.dob)
        UserProfile.adhaar = profile_data.get('adhaar', UserProfile.adhaar)
        UserProfile.accountNumber = profile_data.get('accountNumber',
                                                     UserProfile.accountNumber)
        UserProfile.accountIFSC = profile_data.get('accountIFSC',
                                                   UserProfile.accountIFSC)
        UserProfile.accountBranch = profile_data.get('accountBranch',
                                                     UserProfile.accountBranch)
        UserProfile.photo = profile_data.get('photo', UserProfile.photo)
        UserProfile.save()

        return instance
Ejemplo n.º 23
0
    def test_get_votings_from_list_voting_admin(self):
        voting = Voting(name='test', desc='r')
        voting.save()

        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='N',
                                 is_staff=True,
                                 is_superuser=True,
                                 is_active=True)
        user_admin.set_password('qwerty')
        user_admin.save()
        self.client.force_login(user_admin)

        response = self.client.get('/visualizer/')
        votings = response.context['votings']

        self.client.logout()

        self.assertEqual(votings.first(), voting)
Ejemplo n.º 24
0
    def setUp(self):
        self.base = BaseTestCase()
        self.base.setUp()

        options = webdriver.FirefoxOptions()
        options.headless = True
        self.driver = webdriver.Firefox(options=options)
        self.driver.implicitly_wait(30)
        self.base_url = "https://www.google.com/"
        self.verificationErrors = []
        self.accept_next_alert = False
        user = UserProfile(username='******',
                           sex='M',
                           style='N',
                           is_staff=False,
                           is_superuser=False,
                           is_active=True)
        user.set_password('test')
        user.save()
        super().setUp()
Ejemplo n.º 25
0
    def setUp(self):
        self.base = BaseTestCase()
        self.base.setUp()

        options = webdriver.ChromeOptions()
        options.headless = True
        self.driver = webdriver.Chrome(options=options)

        voting = Voting(name='Test Voting', desc='r')
        voting.save()

        user_admin = UserProfile(username='******',
                                 sex='F',
                                 style='N',
                                 is_staff=True,
                                 is_superuser=True,
                                 is_active=True)
        user_admin.set_password('decide98')
        user_admin.save()

        super().setUp()
Ejemplo n.º 26
0
def register(request):
    #if request.user.is_authenticated():
    # They already have an account; don't let them register again
    #    return render_to_response('core/register.html', {'has_account': True})
    if request.method == 'GET':
        c = {}
        c.update(csrf(request))
        c['form'] = RegistrationForm()
        return render_to_response('authentication/register.html', c)

    if not request.method == 'POST': return HttpResponseRedirect('/')
    registrationForm = RegistrationForm(request.POST)
    if registrationForm.is_valid():
        user = registrationForm.save(commit=False)
        user.is_active = False
        user.save()
        profile = UserProfile(
            user=user,
            activation_key=hashlib.sha224(user.username).hexdigest()[:40],
            key_expires=datetime.datetime.today() + datetime.timedelta(days=2))
        profile.save()

        host = request.META['SERVER_NAME']
        email_subject = 'Welcome!'
        email_body = """Thanks for signing up.  To activate your account, follow this link: http://%(host)s/accounts/confirm/%(hash)s"""
        email_body = email_body % {
            'host': host,
            'hash': profile.activation_key
        }

        send_mail(email_subject, email_body, 'account_creator@' + host,
                  [user.email])
        return render_to_response('authentication/register.html',
                                  {'created': True})
    c = {}
    c.update(csrf(request))
    c['form'] = registrationForm
    return render_to_response('authentication/register.html', c)
Ejemplo n.º 27
0
def register_view(request):
    error = None
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password1']

            if User.objects.filter(username=username).exists():
                error = 'Username already exist'
            else:
                User.objects.create_user(username=username,
                                         password=password)
                user = authenticate(username=username, password=password)
                login(request, user)
                profile = UserProfile(user=user, email='', preferences='')
                profile.save()
                #return HttpResponseRedirect(reverse('events:events_page', args=(1,)))          установка параметров
                return HttpResponseRedirect(reverse('media:index'))
    else:
        form = UserCreationForm()

    return render(request, 'authentication/register.html', {'form': form, 'error': error})
Ejemplo n.º 28
0
def getEvent(request):
    if request.method == "POST":
        response = {}
        eventid = request.POST['id']
        email = request.POST['email']
        try:
            user = User.objects.get(username=email)
        except User.DoesNotExist:
            user = User()
            user.first_name = email.split('@')[0]
            user.username = email
            user.password = ""
            user.set_password(user.password)
            user.is_active = True
            user.save()
            profile = UserProfile()
            profile.user = user
            profile.mobile_id = "test12345"
            profile.lastLoginDate = datetime.datetime.now()
            profile.ipaddress = get_client_ip(request)
            profile.save()
            response['message'] = "User not found....creating user"
        event = Event.objects.get(id=eventid)
        try:
            uevent = UserEvents.objects.get(user=user, event=event)
            response['going'] = 1
        except UserEvents.DoesNotExist:
            response['going'] = 0
        try:
            ufeedback = EventRatings.objects.get(user=user, event=event)
            response['feedback'] = 1
        except EventRatings.DoesNotExist:
            response['feedback'] = 0

        cur_time = datetime.datetime.now()
        event_time = event.date_time
        if event_time < cur_time:
            response['started'] = 1
        else:
            response['started'] = 0
        users = UserEvents.objects.filter(event=event)
        ratings = EventRatings.objects.filter(event=event)
        response['id'] = event.id
        response['name'] = event.name
        response['date'] = event.date_time
        if event.club:
            response['club'] = event.club.name
        else:
            response['club'] = 'Club'
        response['contact_name_1'] = event.contact_name_1
        response['contact_number_1'] = event.contact_number_1
        response['contact_name_2'] = event.contact_name_2
        response['contact_number_2'] = event.contact_number_2
        response['venue'] = event.venue
        response['user_count'] = len(users)
        response['content'] = event.content.description
        response['average_rating'] = ratings.aggregate(
            Avg('rating'))['rating__avg']
        # try:
        # 	img=open(event.content.image.path,'rb')
        # 	data=img.read()
        # 	response['image']="%s" % data.encode('base64')
        # except IOError:
        # 	return event.content.image.url
        response['image'] = get_current_site(
            request).domain + event.content.image.url
        return JsonResponse(response)
    return JsonResponse({'success': 0})
Ejemplo n.º 29
0
    def setUp(self):
        #Create user 1
        self.client = APIClient()
        mods.mock_query(self.client)
        u1 = UserProfile(id=1, username='******', sex='M')
        u1.set_password('123')
        u1.save()
        token1 = mods.post('authentication', entry_point='/login/', json={'username':'******', 'password': '******'})
        #Add session token 1
        session = self.client.session
        session['user_token'] = token1
        session['voter_id'] = u1.id
        session.save()

        #Create voting 1

        #Create question 1
        q1 = Question(id=1,desc='Unique option question', option_types=1)
        q1.save()
        for i in range(3):
            opt = QuestionOption(question=q1, option='option {}'.format(i+1))
            opt.save()

        #Create question 2
        q2 = Question(id=2,desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i+1))
            opt.save()

        #Create question 3
        q3 = Question(id=3,desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i+1))
            opt.save()

        v1 = Voting(id=1, name='Single question voting',desc='Single question voting...', points=1, start_date=timezone.now())
        v1.save()
        v1.question.add(q1), v1.question.add(q2), v1.question.add(q3)
        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={'me': True, 'name': 'base'})
        a.save()
        v1.auths.add(a)
        Voting.create_pubkey(v1)

        #Create voting 2

        #Create question 4
        q4 = Question(id=4, desc='Unique option question 2', option_types=1)
        q4.save()
        for i in range(3):
            opt = QuestionOption(question=q4, option='option {}'.format(i+1))
            opt.save()

        #Create question 5
        q5 = Question(id=5, desc='Multiple option question 2', option_types=2)
        q5.save()
        for i in range(4):
            opt = QuestionOption(question=q5, option='option {}'.format(i+1))
            opt.save()

        #Create question 6
        q6 = Question(id=6, desc='Rank order scale question 2', option_types=3)
        q6.save()
        for i in range(5):
            opt = QuestionOption(question=q6, option='option {}'.format(i+1))
            opt.save()

        v2 = Voting(id=2, name='Single question voting 2',desc='Single question voting...', points=1, start_date=M_DATE, end_date=E_DATE)
        v2.save()
        v2.question.add(q4), v2.question.add(q5), v2.question.add(q6)
        v2.auths.add(a)
        Voting.create_pubkey(v2)

        #Add user to census
        census1 = Census(voting_id=v1.id, voter_id=u1.id)
        census1.save()
        census2 = Census(voting_id=v2.id, voter_id=u1.id)
        census2.save()

        #Create suggestion 1
        s1 = SuggestingForm(id=1, user_id=u1.id, title="Suggesting title", suggesting_date=S_DATE, content="Suggesting content...", send_date=NOW_DATE, is_approved=True)
        s1.save()
Ejemplo n.º 30
0
    def setUp(self):
        self.booth = BoothTests()
        self.booth.setUp()

        options = webdriver.ChromeOptions()
        options.headless = True
        self.driver = webdriver.Chrome(options=options)
        u = UserProfile(id=1, username='******', sex='M')
        u.set_password('123')
        u.save()
        token = mods.post('authentication',
                          entry_point='/login/',
                          json={
                              'username': '******',
                              'password': '******'
                          })
        # Add session token
        session = self.client.session
        session['user_token'] = token
        session.save()

        q2 = Question(id=2, desc='Multiple option question', option_types=2)
        q2.save()
        for i in range(4):
            opt = QuestionOption(question=q2, option='option {}'.format(i + 1))
            opt.save()

        q3 = Question(id=3, desc='Rank order scale question', option_types=3)
        q3.save()
        for i in range(5):
            opt = QuestionOption(question=q3, option='option {}'.format(i + 1))
            opt.save()

        a, _ = Auth.objects.get_or_create(url=settings.BASEURL,
                                          defaults={
                                              'me': True,
                                              'name': 'base'
                                          })
        a.save()
        v2 = Voting(id=2,
                    name='Rank question voting',
                    desc='Rank question voting...',
                    points=1,
                    start_date=timezone.now())
        v2.save()
        v2.question.add(q3)
        v3 = Voting(id=3,
                    name='Multiple question voting',
                    desc='Multiple question voting...',
                    points=1,
                    start_date=timezone.now())
        v3.save()
        v3.question.add(q2)

        v2.auths.add(a)
        Voting.create_pubkey(v2)
        #Add user to census
        census = Census(voting_id=v2.id, voter_id=u.id)
        census.save()

        v3.auths.add(a)
        Voting.create_pubkey(v3)
        #Add user to census
        census = Census(voting_id=v3.id, voter_id=u.id)
        census.save()

        super().setUp()
Ejemplo n.º 31
0
class CensusTestCase(BaseTestCase):

    def create_voters(self):
        res = []
        for i in range(10):
            u = User(username='******'.format(i))
            u.set_password('1234abcd')
            u.save()
            user_profile = UserProfile(user=u, gender='Male', birthdate='2019-01-13 11:39:48.792042+01:00')
            user_profile.save()

            user_id = User.objects.filter(username='******'.format(i)).values('id')[0]['id']
            res.append(user_id)
        return res

    def setUp(self):
        super().setUp()

        self.login()

        self.u = User(username='******')
        self.u.set_password('1234abcd')
        self.u.save()
        self.user_profile = UserProfile(user=self.u, gender='Male', birthdate='2019-01-13 11:39:48.792042+01:00')
        self.user_profile.save()

        voting_data = {
            'name': 'test_voting_General',
            'desc': 'Description example',
            'question': 'I want a ',
            'question_opt': ['cat', 'dog', 'horse']
        }
        response = self.client.post('/voting/', voting_data, format='json')
        self.assertEqual(response.status_code, 201)

        user_id = User.objects.filter(username='******').values('id')[0]['id']
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']
        self.voting = Voting.objects.get(id=voting_id)

        self.census = Census.create(voting_id=voting_id, voter_id=user_id)
        self.census.save()

    def tearDown(self):
        super().tearDown()
        self.census.delete()
        self.voting.delete()

    def test_check_vote_permissions(self):
        user_id = User.objects.filter(username='******').values('id')[0]['id']
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']

        response = self.client.get('/census/{}/?voter_id={}'.format(1, 2), format='json')
        self.assertEqual(response.status_code, 401)
        self.assertEqual(response.json(), 'Invalid voter')

        response = self.client.get('/census/{}/?voter_id={}'.format(voting_id, user_id), format='json')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), 'Valid voter')

    def test_list_voting(self):
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']
        user_id = User.objects.filter(username='******').values('id')[0]['id']

        response = self.client.get('/census/?voting_id={}'.format(voting_id), format='json')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(), {'voters': [user_id]})

        self.logout()
        response = self.client.get('/census/?voting_id={}'.format(voting_id), format='json')
        self.assertEqual(response.status_code, 401)

    def test_add_new_voters_conflict(self):
        user_id = User.objects.filter(username='******').values('id')[0]['id']
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']

        data = {'voting_id': voting_id, 'voters': [user_id]}
        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 409)

        self.login(user='******')
        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 403)

        self.logout()
        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 401)

    def test_add_new_voters(self):
        voters = self.create_voters()
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']
        data = {'voting_id': voting_id, 'voters': voters}

        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 201)
        self.assertEqual(len(data.get('voters')), Census.objects.count() - 1)

        self.login(user='******')
        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 403)

        self.logout()
        response = self.client.post('/census/', data, format='json')
        self.assertEqual(response.status_code, 401)

    def test_destroy_voter(self):
        user_id = User.objects.filter(username='******').values('id')[0]['id']
        voting_id = Voting.objects.filter(name='test_voting_General').values('id')[0]['id']

        data = {'voters': [user_id]}
        response = self.client.delete('/census/{}/'.format(voting_id), data, format='json')
        self.assertEqual(response.status_code, 204)
        self.assertEqual(0, Census.objects.count())

    def test_create_census_with_voting_restrictions(self):
        # username, gender, birthdate, voting_name, voting_gender, voting_min_age, voting_max_age, expected_status_code

        self.login()

        test_data = [
            ['newuser1', 'Male', '2001-12-08T00:00', 'test_voting1', 'Male', 10, 18, 201],  # Positive Test
            ['newuser2', 'Male', '2001-12-08T00:00', 'test_voting2', 'Female', 10, 18, 400],  # Negative Test - Gender
            ['newuser3', 'Female', '2001-12-08T00:00', 'test_voting3', 'Other', 10, 18, 400],  # Negative Test - Gender
            ['newuser4', 'Other', '2001-12-08T00:00', 'test_voting3', 'Male', 10, 18, 400],  # Negative Test - Gender
            ['newuser5', 'Male', '2010-12-08T00:00', 'test_voting4', 'Male', 10, 18, 400],  # Negative Test - min age
            ['newuser6', 'Male', '1993-12-08T00:00', 'test_voting5', 'Male', 10, 18, 400],  # Negative Test - max age
        ]

        for data in test_data:
            self.census_test_voting_restrictions(*data)

    def census_test_voting_restrictions(self, username, gender, birthdate, voting_name, voting_gender,
                                        voting_min_age, voting_max_age, expected_status_code):
        user_data = {'username': username,
                     'password1': '1234abcd',
                     'password2': '1234abcd',
                     'gender': gender,
                     'birthdate': birthdate}
        response = self.client.post('/authentication/signup/', user_data, format='json')
        self.assertEqual(response.status_code, 201)

        voting_data = {
            'name': voting_name,
            'desc': 'Description example',
            'question': 'I want a ',
            'question_opt': ['cat', 'dog', 'horse']
        }
        response = self.client.post('/voting/', voting_data, format='json')
        self.assertEqual(response.status_code, 201)

        user_id = User.objects.filter(username=username).values('id')[0]['id']
        voting_id = Voting.objects.filter(name=voting_name).values('id')[0]['id']

        voting = Voting.objects.get(id=voting_id)
        voting.gender = voting_gender
        voting.min_age = voting_min_age
        voting.max_age = voting_max_age
        voting.save()

        census_data = {
            'voting_id': voting_id,
            'voters': [user_id]
        }
        response = self.client.post('/census/', census_data, format='json')
        self.assertEqual(response.status_code, expected_status_code)