Beispiel #1
0
    def setUp(self):
        password = '******'
        user = User(username='******')
        user.set_password(password)
        user.full_clean()
        user.save()
        ut = UserToken(user=user, tokens=1)
        ut.full_clean()
        ut.save()
        company = Company(name='Tramcar',
                          url='http://www.tramcar.org',
                          site_id=1,
                          user_id=user.id)
        company.full_clean()
        company.save()
        category = Category(name='Software Development', site_id=1)
        category.full_clean()
        category.save()
        self.job = Job(title='Software Developer',
                       description='Test description',
                       application_info='test',
                       category_id=category.id,
                       company_id=company.id,
                       site_id=1,
                       user_id=user.id,
                       city='Toronto',
                       state='Ontario',
                       email='*****@*****.**')
        self.job.full_clean()
        self.job.save()

        self.client.post('/login/', {
            'username': user.username,
            'password': password
        })
Beispiel #2
0
 def setUp(self):
     user = User(username='******')
     user.set_password('password')
     user.full_clean()
     user.save()
     company = Company(name='Tramcar',
                       url='http://www.tramcar.org',
                       site_id=1,
                       user_id=user.id)
     company.full_clean()
     company.save()
     category = Category(name='Software Development', site_id=1)
     category.full_clean()
     category.save()
     self.job = Job(title='Software Developer',
                    description='Test description',
                    application_info='test',
                    category_id=category.id,
                    company_id=company.id,
                    site_id=1,
                    user_id=user.id,
                    city='Toronto',
                    state='Ontario',
                    email='*****@*****.**')
     self.job.full_clean()
     self.job.save()
     self.job.activate()
Beispiel #3
0
    def setUp(self):
        password = '******'
        owner = User(username='******')
        owner.set_password(password)
        owner.full_clean()
        owner.save()

        other = User(username='******')
        other.set_password(password)
        other.full_clean()
        other.save()

        self.company1 = Company(name='Tramcar',
                                url='http://www.tramcar.org',
                                site_id=1,
                                user_id=owner.id)
        self.company1.full_clean()
        self.company1.save()

        self.company2 = Company(name='WFH.io',
                                url='https://www.wfh.io',
                                site_id=1,
                                user_id=other.id)
        self.company2.full_clean()
        self.company2.save()

        self.client.post('/login/', {
            'username': owner.username,
            'password': password
        })
    def test_move_view(self):
        ct = get_content_type(User)
        user = User(username='******', is_staff=True, is_superuser=True,
                    is_active=True)
        user.set_password('test')
        user.full_clean()
        user.save()

        for x in range(1, 10):
            obj = Iframe(position=x, region='test', content_id=user.pk,
                         content_type=ct, url='http://example.com/')
            obj.full_clean()
            obj.save()

        first_obj = EditRegionChunk.objects.all()[0]
        request = RequestFactory().get('/', {'position': 3,
                                             'pk': first_obj.pk,
                                             'region': 'test'})
        request.user = user
        response = self.admin.move_view(request=request)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response['Content-type'], 'application/json')
        json_data = json.loads(force_text(response.content))
        self.assertIn('action', json_data)
        self.assertIn('html', json_data)
        self.assertEqual('move', json_data['action'])
        self.assertIn('<div class="region-inline-wrapper"',
                      json_data['html'])
    def test_continue_editing_parent_object(self):
        """
        if continue editing is hit, it should go back to the parent URL,
        I think?
        """
        user = User(username='******', is_staff=True, is_superuser=True,
                    is_active=True)
        user.set_password('test')
        user.full_clean()
        user.save()
        admin_instance = get_modeladmin(Iframe)
        self.assertIsInstance(admin_instance, RealishAdmin)

        request = RequestFactory().get('/', {
            '_continue': 1,
        })
        request.user = user
        iframe_admin = reverse('admin:embeds_iframe_add')
        response_301 = HttpResponsePermanentRedirect(redirect_to=iframe_admin)

        ct = get_content_type(User)
        iframe = Iframe(position=2, region='test', content_type=ct,
                        content_id=user.pk, url='https://news.bbc.co.uk/')
        iframe.full_clean()
        iframe.save()

        new_response = admin_instance.maybe_fix_redirection(
            request=request, response=response_301, obj=iframe)
        self.assertEqual(new_response['X-Chunkadmin-Response'],
                         'redirect-to-parent')

        self.assertEqual(301, new_response.status_code)
        self.assertEqual('/admin_mountpoint/auth/user/1/?_data_changed=1',
                         new_response['Location'])
    def _test_view(self, func='add_view', generate_chunks=1):
        user = User(username='******', is_staff=True, is_superuser=True,
                    is_active=True)
        user.set_password('test')
        user.full_clean()
        user.save()
        ct = get_content_type(User)
        request = RequestFactory().get('/', {
            REQUEST_VAR_CT: ct.pk,
            REQUEST_VAR_ID: user.pk,
            REQUEST_VAR_REGION: 'test'
        })
        request.user = user
        admin_instance = get_modeladmin(Iframe)

        for x in range(0, generate_chunks):
            iframe = Iframe(position=2, region='test', content_type=ct,
                            content_id=user.pk, url='https://news.bbc.co.uk/')
            iframe.full_clean()
            iframe.save()

        kwargs = {'request': request}
        if func != 'add_view':
            kwargs.update({'object_id': force_text(iframe.pk)})
        view = getattr(admin_instance, func)
        view(**kwargs)

        # now do the view again without the fields required by the decorator
        request = RequestFactory().get('/')
        request.user = user
        kwargs.update({'request': request})
        with self.assertRaises(SuspiciousOperation):
            view(**kwargs)
Beispiel #7
0
class AlbumTest(TestCase):
    def setUp(self):
        self.user = User(username='******', email='*****@*****.**',
                         first_name='Sherlock', last_name="Holmes",
                         password='******')
        self.user.full_clean()
        self.user.save()
        self.photo = Photo(owner=self.user,
                           image='images/test.png',
                           name='test',
                           caption='testing')
        self.photo.clean()
        self.photo.save()
        self.tag = Tag(name='test tag', owner=self.user)
        self.tag.clean()
        self.tag.save()
        self.photo.tags.add(self.tag)
        self.album = Album(owner=self.user,
                           name='test album')
        self.album.clean()
        self.album.save()
        self.album.photos.add(self.photo)

    def test_id_creation(self):
        self.assertIsNotNone(self.album.id)

    def test_owner_entry(self):
        self.assertEqual(self.album.name, 'test album')

    def test_name_entry(self):
        self.assertEqual(self.photo.name, 'test')

    def test_album_to_photo_association(self):
        photos = Photo.objects.filter(album=self.album.id)
        self.assertEqual(photos[0].name, 'test')
    def test_get_response_add_context(self):
        request = RequestFactory().get('/')
        user = User(username='******')
        user.set_password('test')
        user.full_clean()
        user.save()
        ct = get_content_type(User)
        iframe = Iframe(position=2, region='test', content_type=ct,
                        content_id=user.pk, url='https://news.bbc.co.uk/')
        iframe.full_clean()
        iframe.save()

        results = self.chunk_admin.get_response_add_context(request=request,
                                                            obj=iframe)
        html = results.pop('html')
        self.assertEqual(results, {'action': {'add': True,
                                              'change': False,
                                              'delete': False},
                                   'object': {'pk': 1,
                                              'id': 1}
                                   })
        # self.assertIn('Please wait, saving changes', html)
        # self.assertIn('Add new content', html)
        # self.assertIn('Iframe', html)
        self.assertIn('<h3>Embeds</h3>', html)
        self.assertIn('<b>whee!:</b>', html)
class UserBuilder(ReloadableDbBuilderInterface):
    def __init__(self, username, full_name=None, email=None, is_superuser=False, is_staff=False):
        email = email or u'{}@example.com'.format(username)
        self.user = User(username=username, email=email,
            is_superuser=is_superuser, is_staff=is_staff)
        self.user.set_password('test')
        self.user.full_clean()
        self.user.save()
        profile = self.user.devilryuserprofile
        if full_name:
            profile.full_name = full_name
        profile.save()

    def update(self, **attributes):
        for attrname, value in attributes.iteritems():
            setattr(self.user, attrname, value)
        self.user.save()
        self.reload_from_db()

    def update_profile(self, **attributes):
        profile = self.user.devilryuserprofile
        for attrname, value in attributes.iteritems():
            setattr(profile, attrname, value)
        profile.save()
        self.reload_from_db()

    def reload_from_db(self):
        self.user = User.objects.get(id=self.user.id)
Beispiel #10
0
def user_register(request):
    register_template = loader.get_template('register.html')

    if request.method == "POST":
        name = request.POST["name"]
        last_name = request.POST["lastName"]
        email = request.POST["email"]
        username = request.POST["username"]
        password = request.POST["password"]

        is_exist = User.objects.filter(email=email).count() > 0
        u = User(username=username, first_name=name, last_name=last_name, email=email)
        u.set_password(password)
        try:
            if is_exist:
                raise ValidationError("")
            u.full_clean()
        except ValidationError as e:
            if is_exist:
                context = RequestContext(request, {'error_message': "You have been registered with this email"})
            else:
                context = RequestContext(request, {'validation_error': e})
            return HttpResponse(register_template.render(context))
        u.is_active = False
        u.save()

        from Postchi.Mail import send_confirm_mail

        send_confirm_mail(u)  # Send Confirmation Link

        return HttpResponseRedirect(reverse('pending'))
    else:
        context = RequestContext(request)
        return HttpResponse(register_template.render(context))
Beispiel #11
0
 def test_getting_max_pk(self):
     for x in range(0, 10):
         y = User(username=x)
         y.set_password(force_text(x))
         y.full_clean()
         y.save()
     self.assertEqual(10, get_maximum_pk(User))
def make_user(**kwargs):
    kwargs["username"] = kwargs.get("username", get_string())
    kwargs["password"] = "******"
    user = User(**kwargs)
    user.full_clean()
    user.save()
    return user
Beispiel #13
0
 def form_valid(self, form):
     login           = form.cleaned_data['login']
     password1       = form.cleaned_data['password1']
     first_name      = form.cleaned_data['first_name']
     image           = form.cleaned_data['image']
     new_user = User(
         username=login,
         first_name=first_name,
     )
     new_user.set_password(password1)
     try:
         new_user.full_clean()
     except ValidationError:
         self.set_message(u'Не правильно заполненна форма', True)
         return super(CreateCompanyView, self).form_invalid(form)
     new_user.save()
     new_profile = Profile(
         user=new_user,
         is_company=True,
         is_report=False,
         is_super_user=False,
         image=image,
     )
     new_profile.save()
     new_company = Company(com_user=new_user)
     new_company.save()
     self.set_message(u'Компания успешно добавлена.')
     return super(CreateCompanyView,self).form_valid(form)
Beispiel #14
0
    def setUp(self):
        password = '******'
        owner = User(username='******')
        owner.set_password(password)
        owner.full_clean()
        owner.save()

        other = User(username='******')
        other.set_password(password)
        other.full_clean()
        other.save()

        self.company1 = Company(name='Tramcar', url='http://www.tramcar.org',
                                site_id=1, user_id=owner.id)
        self.company1.full_clean()
        self.company1.save()

        self.company2 = Company(name='WFH.io', url='https://www.wfh.io',
                                site_id=1, user_id=other.id)
        self.company2.full_clean()
        self.company2.save()

        self.client.post(
          '/login/',
          {'username': owner.username, 'password': password}
        )
def mobile_signup(request):
	print request.POST
	err = ""
	username = request.POST.get('username')
	if User.objects.filter(username=username).exists():
		return HttpResponse(content=json.dumps({'result':'false', 'data':{}, 'message':'Username is already in use.Please use a different one.'}), status=200, content_type="application/json")
	if User.objects.filter(email=username).exists():
		return HttpResponse(content=json.dumps({'result':'false', 'data':{}, 'message':'Email is already in use.Please use a different one.'}), status=200, content_type="application/json")
	try:
		with transaction.atomic():
			data = request.POST
			obj_user = User(
				first_name = data.get('firstname'),
                last_name = data.get('lastname'),
                username = username,
                email = data.get('email'),
			)
			password = data.get('password')
			obj_user.set_password(password)
			obj_user.full_clean()
			obj_user.save()
			return HttpResponse(content=json.dumps({'result':'true','data':{'user_id':obj_user.id,'user_name':obj_user.username},'message':'Success'}), content_type="application/json", status=200)
	except Exception as e:
		exc_type, exc_value, exc_traceback = sys.exc_info()
        err = "\n".join(traceback.format_exception(*sys.exc_info()))
        print err
        return HttpResponse(content=json.dumps({'result':'false', 'data':{},'error': err, 'message':'Server error.'}), status=200, content_type="application/json")
    def test_inheritance_without_get_ancestors(self):
        user = User(username='******', is_staff=True, is_active=True,
                    is_superuser=True)
        user.set_password('test')
        user.full_clean()
        user.save()

        try:
            admin.site.unregister(User)
        except NotRegistered:
            pass
        admin.site.register(User, TestUserAdmin)

        request = RequestFactory().get('/')
        request.user = user
        ctx = RequestContext(request)
        ctx.update({'obj': user})
        tmpl = Template("""
        {% load editregion %}
        {% editregion "test" obj inherit %}fallback{% endeditregion %}
        """)
        with self.settings(DEBUG=True):
            with self.assertRaises(ImproperlyConfigured):
                tmpl.render(ctx).strip()
        with self.settings(DEBUG=False):
            rendered = tmpl.render(ctx).strip()
            self.assertEqual('fallback', rendered)
Beispiel #17
0
    def setUp(self):
        password = '******'
        user = User(username='******')
        user.set_password(password)
        user.full_clean()
        user.save()
        ut = UserToken(user=user, tokens=1)
        ut.full_clean()
        ut.save()
        company = Company(name='Tramcar', url='http://www.tramcar.org',
                          site_id=1, user_id=user.id)
        company.full_clean()
        company.save()
        category = Category(name='Software Development', site_id=1)
        category.full_clean()
        category.save()
        self.job = Job(title='Software Developer',
                       description='Test description',
                       application_info='test', category_id=category.id,
                       company_id=company.id, site_id=1, user_id=user.id,
                       city='Toronto', state='Ontario',
                       email='*****@*****.**')
        self.job.full_clean()
        self.job.save()

        self.client.post(
          '/login/',
          {'username': user.username, 'password': password}
        )
Beispiel #18
0
    def signup(self, request):
        '''
        Resource:
        api/v1/users/signup/

        Creates inactive user instance and
        sends an activation email to the user.
        '''

        serializer = UserCreateSerializer(data=request.data)

        if serializer.is_valid():
            user = User(first_name=serializer.data.get('first_name') or '',
                        last_name=serializer.data.get('last_name') or '',
                        email=serializer.data['email'],
                        username=serializer.data['email'],
                        is_active=False)

            user.set_password(request.data['password'])
            try:
                user.full_clean()
            except ValidationError as e:
                return Response({'error': 'cause:{}'.format(e)},
                                status=status.HTTP_400_BAD_REQUEST)
            else:
                user.save()
                app = create_application(user)
                create_token(user, app)
                # TO DO: convert mail sending to a celery task
                send_activation_mail(user=user)
                return Response(serializer.data,
                                status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
Beispiel #19
0
def create_test_user() -> User:
    """
    Creates a test user
    """
    user = User(username="******", password="******")
    user.full_clean()
    user.save()
    return user
Beispiel #20
0
def create_test_user():
    """
    Creates a test user
    """
    user = User(username='******', password='******')
    user.full_clean()
    user.save()
    return user
Beispiel #21
0
def create_user(*, username: str, email: str, password: str) -> User:
    user = User(username=username, email=email, is_active=True)
    user.set_password(password)

    user.full_clean()
    user.save()

    return user
Beispiel #22
0
 def setUp(self):
     user = User(username='******')
     user.set_password('password')
     user.full_clean()
     user.save()
     self.company = Company(name='Tramcar', url='http://www.tramcar.org',
                            site_id=1, user_id=user.id)
     self.company.full_clean()
     self.company.save()
Beispiel #23
0
 def setUp(self):
     user = User(username='******')
     user.set_password('password')
     user.full_clean()
     user.save()
     self.company = Company(name='Tramcar', url='http://www.tramcar.org',
                            site_id=1, user_id=user.id)
     self.company.full_clean()
     self.company.save()
Beispiel #24
0
 def _create_or_add_user(self, name):
     user = User(username=name)
     user.set_password("test")
     try:
         user.full_clean()
         user.save()
     except:
         user = User.objects.get(username=name)
     vars(self)[user.username] = user
     return user
Beispiel #25
0
 def test_usuario_duplicado(self):
     self.usuario.save()
     usuario2 = User(username='******',
                     email='*****@*****.**',
                     password='******')
     try:
         usuario2.full_clean()
     except ValidationError as ex:
         msg = str(ex.message_dict['username'][0])
         self.assertEqual(msg, 'A user with that username already exists.')
Beispiel #26
0
        def create_player(self, username, password, phone, email=None):
            user = User(username=username)
            if email:
                user.email = email
            user.set_password(password)
            user.full_clean()
            user.save()

            player = self.create(user=user, phone=phone)
            return player
Beispiel #27
0
 def test_ensure_user_has_password(self):
     user = User(username="******")
     try:
         user.full_clean()
     except Exception as e:
         print("Error: " + str(e))
         print("Test passed, user without password not alllowed")
     else:
         user.save()
         print("Test failed, user without password allowed")
Beispiel #28
0
 def _create_or_add_user(self, name):
     user = User(username=name, email="*****@*****.**" % name.strip())
     user.set_password("test")
     try:
         user.full_clean()
         user.save()
     except ValidationError:
         user = User.objects.get(username=name)
     vars(self)[user.username] = user
     return user
Beispiel #29
0
def create_user(username: str, password: str, email: str,
                is_active: bool) -> User:
    password = make_password(password)
    user = User(username=username,
                password=password,
                email=email,
                is_active=is_active)
    user.full_clean()
    user.save()
    return user
Beispiel #30
0
 def _create_or_add_user(self, name):
     user = User(username=name, email="*****@*****.**" % name.strip())
     user.set_password("test")
     try:
         user.full_clean()
         user.save()
     except ValidationError:
         user = User.objects.get(username=name)
     vars(self)[user.username] = user
     return user
    def test_usage(self):
        tmpl = Template("""
        output:
        {% load editregion %}
        {% editregion "test" obj %}fallback{% endeditregion %}
        {% get_editregion "test" obj as exposed %}
        {% for chunk in exposed %}
        {% endfor %}
        """)
        user = User(username='******', is_staff=True, is_active=True,
                    is_superuser=True)
        user.set_password('test')
        user.full_clean()
        user.save()
        user_content_type = get_content_type(User)

        # attach some chunks to the region in test
        for x in range(1, 11):
            iframe = Iframe(region='test', content_id=user.pk,
                            content_type=user_content_type,
                            url='https://news.bbc.co.uk/{0!s}'.format(x),
                            position=x)
            iframe.full_clean()
            iframe.save()

        # fix the admin in test
        try:
            admin.site.unregister(User)
        except NotRegistered:
            pass
        admin.site.register(User, TestUserAdmin)

        request = RequestFactory().get('/')
        request.user = user
        ctx = RequestContext(request)
        ctx.update({'obj': user})
        rendered = tmpl.render(ctx).strip()
        for x in range(1, 11):
            self.assertIn('name="chunk-iframe-{0}" data-pk="{0}" '
                          'data-position="{0}" data-region="{1}"'.format(
                              x, 'test'), rendered)

        tmpl = Template("""
        output:
        {% load editregion %}
        {% get_editregion "test" obj as exposed %}
        {% for chunk in exposed %}xxx:{{ chunk.output }}{% endfor %}
        """)
        rendered = tmpl.render(ctx).strip()
        self.assertIn('output:', rendered)
        for x in range(1, 11):
            self.assertIn('xxx:<iframe '.format(x), rendered)
            self.assertIn('src="https://news.bbc.co.uk/{0}"'.format(x),
                          rendered)
            self.assertIn('name="chunk-iframe-{0}"'.format(x), rendered)
    def create_user(self, username, email, password):
        user = User(username=username, email=email, password=password)
        user.full_clean()

        # Check e-mail since Django User class doesn't make it a required field
        if not email:
            raise ValidationError("Email was empty")

        user.save()

        return user
    def create_user(self, username, email, password):
        user = User(username=username, email=email, password=password)
        user.full_clean()

        # Check e-mail since Django User class doesn't make it a required field
        if not email:
            raise ValidationError("Email was empty")

        user.save()

        return user
 def handle(self, *args, **options):
     if len(args) != 1:
         raise CommandError('Username is required. See --help.')
     username = args[0]
     user = User(username=username,
                 first_name=options['first_name'],
                 last_name=options['last_name'],
                 is_superuser=options['is_superuser'],
                 is_staff=options['is_staff'])
     user.set_password(options['password'])
     user.full_clean()
     user.save()
Beispiel #35
0
def create_user(etat_civil):
    """Create user associated with an etat civil"""
    errors = []
    us = User()
    us.username = etat_civil.prenom[0].lower() + etat_civil.nom_insa.lower()
    chars = string.ascii_letters + string.digits
    us.password = "".join(choice(chars) for x in range(8)) # RANDOM PASSWORD OF 8 CHARACTERS
    try:
        us.full_clean()
    except ValidationError, e:
        m = dict(e.message_dict)
        errors.append([str("%s %s"%(etat_civil.prenom, etat_civil.nom_insa)), [list(k) for k in zip(m.keys(),m.values())]])  
 def test_get_changelists_for_object(self):
     request = RequestFactory().get('/')
     user = User(username='******', is_staff=True, is_superuser=True,
                 is_active=True)
     user.set_password('test')
     user.full_clean()
     user.save()
     received = self.admin.get_changelists_for_object(request=request,
                                                      obj=user)
     self.assertEqual(2, len(received))
     self.assertIsInstance(received[0], EditRegionChangeList)
     self.assertIsInstance(received[1], EditRegionChangeList)
Beispiel #37
0
def register_view(request, errors = None):
    # if no user and user is not anonymous, 
    # Redirect home with no warning
    if request.user and not request.user.is_anonymous():
        return HttpResponseRedirect(reverse('home'))
    else:
        # GET => blank register form
        if request.method == "GET":
            userform  = UserForm()
            # pass in an empty user form
            return render(request, 'controller/register.html',
                    context = {'uform': userform,
                        'errors': errors
                        })
        # POST => sign up user, redirect home
        elif request.method == "POST":
            username = request.POST['username']
            email = request.POST['email']
            password = request.POST['password1']
            new_user = User(username = username, 
                    email = email, password = password)
            try:
                validate_password(password, new_user)
            except ValidationError as err:
                errors = str(err)
                return render(request, "controller/register.html", context = {
                    'errors': errors,
                    })
            # sign up the user in the POST dict
            # using the form fields
            try: 
                try:
                    # user exists already 
                    usr = User.objects.get(username = username)
                    return render(request, 
                            'controller/register.html', context = 
                            {'errors': "user exists already!"})
                except Exception:
                    pass
                new_user.full_clean()
                new_user.save()
                # Send the user a confirm-registration email
                send_mail("Thank you for registering, {0}".format(username),
           'Please remember your password, we have to reset it manually.',
           '*****@*****.**', [email])
                login(request, new_user)
                return HttpResponseRedirect(reverse('home'))
            except Exception as e:
                errors = str(e)
                return render(request, "controller/register.html", context = {
                    'errors': errors,
                    })
Beispiel #38
0
 def test_email_duplicado(self):
     self.usuario.save()
     usuario2 = User(username='******',
                     email='*****@*****.**',
                     password='******')
     try:
         usuario2.full_clean()
     except ValidationError as ex:
         msg = str(ex.message_dict['email'][0])
         self.assertEqual(
             msg,
             'El correo electrónico ingresado ya se encuentra registrado' +
             ' en el sistema. Favor de verificarlo.')
Beispiel #39
0
    def create_superuser(self, name):
        """
        Create a superuser with the given username. Adds the user to ``self.<name>``.

        :return: The created user object.
        """
        su = User(username=name, is_superuser=True)
        su.email = name + '@example.com'
        su.set_password("test")
        su.full_clean()
        su.save()
        vars(self)[name] = su
        return su
Beispiel #40
0
def register(request):
    username = request.POST.get('username')
    password = request.POST.get('password')

    user = User(username=username)
    user.set_password(password)
    try:
        user.full_clean()
    except ValidationError as e:
        return JsonResponse({'message':e.message_dict}, status=400)
    else:
        user.save()
    return JsonResponse({'message':'successful'}, status=201)
    def setUp(self):
        request = RequestFactory().get('/')
        our_list_display = EditRegionAdmin.list_display
        our_list_links = (EditRegionAdmin(User, admin.site)
                          .get_list_display_links(request=request,
                                                  list_display=our_list_display))

        user = User(username='******')
        user.set_password('test')
        user.full_clean()
        user.save()
        self.user = user

        user_content_type = get_content_type(User)

        attach_configuration(user, EditRegionConfiguration)
        config = get_configuration(user)
        request.GET = QueryDict('', mutable=True)
        request.GET.update({REQUEST_VAR_ID: user.pk,
                            REQUEST_VAR_CT: user_content_type.pk,
                            REQUEST_VAR_REGION: 'test'})

        try:
            admin.site.unregister(User)
        except NotRegistered:
            pass
        admin.site.register(User, TestUserAdmin)

        cl = EditRegionChangeList(request=request, model=EditRegionChunk,
                                  list_display=our_list_display,
                                  list_display_links=our_list_links,
                                  list_filter=EditRegionAdmin.list_filter,
                                  date_hierarchy=None, search_fields=None,
                                  list_select_related=None, list_per_page=100,
                                  list_max_show_all=100, list_editable=None,
                                  model_admin=admin.site._registry[EditRegionChunk],  # noqa
                                  parent_obj=user, parent_conf=config)
        self.changelist = cl

        badconfig = EditRegionConfiguration()
        cl2 = EditRegionChangeList(request=request, model=EditRegionChunk,
                                   list_display=our_list_display,
                                   list_display_links=our_list_links,
                                   list_filter=EditRegionAdmin.list_filter,
                                   date_hierarchy=None, search_fields=None,
                                   list_select_related=None, list_per_page=100,
                                   list_max_show_all=100, list_editable=None,
                                   model_admin=admin.site._registry[EditRegionChunk],  # noqa
                                   parent_obj=user, parent_conf=badconfig)
        self.changelist2 = cl2
Beispiel #42
0
class CompanyMethodTests(TestCase):
    def setUp(self):
        self.user = User(username='******')
        self.user.set_password('password')
        self.user.full_clean()
        self.user.save()
        self.company = Company(name='Tramcar',
                               site_id=1,
                               user_id=self.user.id,
                               url='http://www.tramcar.org')
        self.company.full_clean()
        self.company.save()
        self.category = Category(name='Software Development', site_id=1)
        self.category.full_clean()
        self.category.save()

    def test_active_jobs(self):
        job = Job(title='Software Developer',
                  description='Test description',
                  application_info='test',
                  category_id=self.category.id,
                  company_id=self.company.id,
                  site_id=1,
                  user_id=self.user.id,
                  city='Toronto',
                  state='Ontario',
                  email='*****@*****.**')
        job.full_clean()
        job.save()
        self.assertEqual(len(self.company.active_jobs()), 0)
        job.activate()
        self.assertEqual(len(self.company.active_jobs()), 1)

    def test_paid_jobs(self):
        job = Job(title='Software Developer',
                  description='Test description',
                  application_info='test',
                  category_id=self.category.id,
                  company_id=self.company.id,
                  site_id=1,
                  user_id=self.user.id,
                  city='Toronto',
                  state='Ontario',
                  email='*****@*****.**')
        job.full_clean()
        job.save()
        self.assertEqual(len(self.company.paid_jobs()), 0)
        job.activate()
        self.assertEqual(len(self.company.paid_jobs()), 1)
Beispiel #43
0
    def post(self, request, *args, **kwargs):
        is_authenticated = request.user.is_authenticated()
        if is_authenticated:
            return redirect("/")

        username, password = request.POST.get('email'), request.POST.get(
            'password')

        try:
            validate_password(password)
        except ValidationError:
            self.result = "password_or_email_not_valid"
            return self.get(request, *args, **kwargs)

        if all((not is_authenticated, username, password)):
            user = User.objects.filter(username=username)
            if not user:
                user = User()
                user.username = username
                user.email = username
                user.set_password(password)

                j = "".join((str(randint(0, 9)) for _ in range(28)))

                user.first_name = j

                user.is_active = False
                try:
                    user.full_clean()
                except ValidationError:
                    self.result = "password_or_email_not_valid"
                    return self.get(request, *args, **kwargs)
                user.save()
                MailSender("Подтверждение почты",
                           "mail_templates/cod_dlya_uzera.html",
                           username,
                           context={
                               "user_id": user.id,
                               "cod": j
                           }).send_mail()
                login(request,
                      user,
                      backend='django.contrib.auth.backends.ModelBackend')
                self.result = "user_registered"
            else:
                self.result = "user_already_exists"
        else:
            self.result = "incorrect_data"
        return self.get(request, *args, **kwargs)
Beispiel #44
0
class UserTokenMethodTests(TestCase):
    def setUp(self):
        self.user = User(username='******')
        self.user.set_password('password')
        self.user.full_clean()
        self.user.save()

    def test_deduct_token(self):
        self.tokens = UserToken(user=self.user, tokens=10)
        self.tokens.full_clean()
        self.tokens.save()

        self.tokens.deduct()

        self.assertEqual(9, self.tokens.tokens)
Beispiel #45
0
def create_email_based_user(email):
    """
    Creates an inactive user from the email address. These users are
    placeholders for those users that do not have accounts. This is initially
    planned for use in conjunction with adding users to DataQuery.shared_users.
    """
    username = generate_random_username()
    email = User.objects.normalize_email(email)

    user = User(username=username, email=email, is_active=False)
    user.set_unusable_password()
    user.full_clean()
    user.save()

    return user
Beispiel #46
0
class UserTokenMethodTests(TestCase):
    def setUp(self):
        self.user = User(username='******')
        self.user.set_password('password')
        self.user.full_clean()
        self.user.save()

    def test_deduct_token(self):
        self.tokens = UserToken(user=self.user, tokens=10)
        self.tokens.full_clean()
        self.tokens.save()

        self.tokens.deduct()

        self.assertEqual(9, self.tokens.tokens)
Beispiel #47
0
def create_email_based_user(email):
    """
    Creates an inactive user from the email address. These users are
    placeholders for those users that do not have accounts. This is initially
    planned for use in conjunction with adding users to DataQuery.shared_users.
    """
    username = generate_random_username()
    email = User.objects.normalize_email(email)

    user = User(username=username, email=email, is_active=False)
    user.set_unusable_password()
    user.full_clean()
    user.save()

    return user
 def _test_changelist_display_methods(self, func, expected, extra):
     ct = get_content_type(User)
     user = User(username='******', is_staff=True, is_superuser=True,
                 is_active=True)
     user.set_password('test')
     user.full_clean()
     user.save()
     iframe = Iframe(position=2, region='test', content_type=ct,
                     content_id=user.pk, url='https://news.bbc.co.uk/')
     iframe.full_clean()
     iframe.save()
     render_html = getattr(self.admin, func)
     received = render_html(obj=iframe, **extra)
     for x in expected:
         self.assertIn(x, received)
 def test_changelist_view(self):
     request = RequestFactory().get('/')
     with self.assertRaises(MultiValueDictKeyError):
         self.admin.changelist_view(request=request)
     user = User(username='******', is_staff=True, is_superuser=True,
                 is_active=True)
     user.set_password('test')
     user.full_clean()
     user.save()
     request = RequestFactory().get('/', {
         REQUEST_VAR_CT: get_content_type(User).pk,
         REQUEST_VAR_ID: user.pk,
     })
     template_response = self.admin.changelist_view(request=request)
     self.assertIsInstance(template_response, TemplateResponse)
    def test_logging(self):
        user = User(username='******')
        user.set_password('test')
        user.full_clean()
        user.save()
        ct = get_content_type(User)
        iframe = Iframe(position=2, region='test', content_type=ct,
                        content_id=user.pk, url='https://news.bbc.co.uk/')
        iframe.full_clean()
        iframe.save()
        request = RequestFactory().get('/')
        request.user = user
        admin_instance = get_modeladmin(Iframe)

        admin_instance.log_addition(request, iframe)
        admin_instance.log_change(request, iframe, "we changed a thing!")
        admin_instance.log_deletion(request, iframe, "we deleted a thing!")

        # find them on the user
        logs = LogEntry.objects.get(content_type=ct, object_id=user.pk,
                                    user=user, action_flag=ADDITION)
        self.assertEqual(force_text(logs), 'Added "test".')
        logs = LogEntry.objects.get(content_type=ct, object_id=user.pk,
                                    user=user, action_flag=CHANGE)
        self.assertEqual(force_text(logs), 'Changed "test" - we changed a '
                                           'thing!')
        # can't check for deletions properly, see
        # https://code.djangoproject.com/ticket/21771#ticket

        # logs = LogEntry.objects.get(content_type=ct, object_id=user.pk,
        #                             user=user, action_flag=DELETION)
        # self.assertEqual(force_text(logs), 'Changed "test" - we changed a '
        #                                    'thing!')

        # find them on the iframe
        ct = get_content_type(Iframe)
        logs = LogEntry.objects.get(content_type=ct, object_id=iframe.pk,
                                    user=user, action_flag=ADDITION)
        self.assertEqual(force_text(logs), 'Added "https://news.bbc.co.uk/".')
        logs = LogEntry.objects.get(content_type=ct, object_id=iframe.pk,
                                    user=user, action_flag=CHANGE)
        self.assertEqual(force_text(logs), 'Changed "https://news.bbc.co.uk/" '
                                           '- we changed a thing!')
        # can't check for deletions properly, see
        # https://code.djangoproject.com/ticket/21771#ticket
        logs = LogEntry.objects.filter(content_type=ct, object_id=user.pk,
                                       user=user, action_flag=DELETION)
        self.assertEqual(force_text(logs[0]), 'Deleted "we deleted a thing!."')
Beispiel #51
0
 def mutate_and_get_payload(cls, input, context, info):
     try:
         user = User()
         user.username = input.get('username')
         user.first_name = input.get('first_name', '')
         user.last_name = input.get('last_name', '')
         user.email = input.get('email', '')
         user.is_staff = input.get('is_staff', False)
         user.is_active = input.get('is_active', False)
         if input.get('password'):
             user.set_password(input.get('password'))
         user.full_clean()
         user.save()
         return cls(user=user)
     except ValidationError as e:
         return cls(user=None, errors=get_errors(e))
Beispiel #52
0
def create_user(etat_civil):
    """Create user associated with an etat civil"""
    errors = []
    us = User()
    us.username = etat_civil.prenom[0].lower() + etat_civil.nom_insa.lower()
    chars = string.ascii_letters + string.digits
    us.password = "".join(choice(chars)
                          for x in range(8))  # RANDOM PASSWORD OF 8 CHARACTERS
    try:
        us.full_clean()
    except ValidationError, e:
        m = dict(e.message_dict)
        errors.append([
            str("%s %s" % (etat_civil.prenom, etat_civil.nom_insa)),
            [list(k) for k in zip(m.keys(), m.values())]
        ])
Beispiel #53
0
    def create_user(self, name, fullname=None):
        """
        Create a user with the given username. Adds the user to ``self.<name>``.

        :return: The created user object.
        """
        user = User(username=name)
        user.set_password('test')
        user.email = name + '@example.com'
        user.full_clean()
        user.save()
        if fullname:
            profile = user.get_profile()
            profile.full_name = fullname
            profile.save()
        vars(self)[name] = user
        return user
Beispiel #54
0
    def setUp(self):
        password = '******'
        admin = User(username='******')
        admin.is_staff = True
        admin.set_password(password)
        admin.full_clean()
        admin.save()

        self.other = User(username='******')
        self.other.set_password(password)
        self.other.full_clean()
        self.other.save()

        country = Country(name='Canada')
        country.full_clean()
        country.save()

        company = Company(name='Tramcar',
                          site_id=1,
                          user_id=self.other.id,
                          url='http://www.tramcar.org')
        company.full_clean()
        company.save()

        category = Category(name='Software Development', site_id=1)
        category.full_clean()
        category.save()

        self.job = Job(title='Software Developer',
                       description='Test description',
                       application_info='test',
                       category_id=category.id,
                       company_id=company.id,
                       site_id=1,
                       user_id=self.other.id,
                       city='Toronto',
                       state='Ontario',
                       email='*****@*****.**')
        self.job.full_clean()
        self.job.save()

        self.client.post('/login/', {
            'username': admin.username,
            'password': password
        })
Beispiel #55
0
 def post(self, request, format='json'):
     username = request.data["username"]
     email = request.data["email"]
     password = request.data["password"]
     user = User(username=username, email=email, password=password)
     try:
         user.full_clean()
     except ValidationError as e:
         return JsonResponse(e.message_dict, status=422)
     try:
         validate_password(password, user)
     except ValidationError as e:
         return JsonResponse({'errors': e.messages}, status=422)
     user.set_password(user.password)
     user.save()
     login(request, user)
     serializer = UserSerializer(user)
     return JsonResponse(serializer.data, safe=False)
 def signup(name, username, email, password):
     '''`ChirperUser.signup` creates and returns a new `ChirperUser` with the provided data.
     
     To create the `ChirperUser`, it creates the underlying `django.contrib.auth.models.User`,
     and then creates the `ChirperUser`.
     
     Any errors during `User` creation or `ChirperUser` creation are unhandled by this method
     and will bubble up. This may change in the future.
     '''
     user = User(username=username, email=email)
     user.set_password(password)
     user.full_clean()
     user.save()
     chirper = ChirperUser(user=user, name=name)
     try:
         chirper.full_clean()
     except ValidationError as e:
         user.delete()
         raise e
     chirper.save()
     return chirper
Beispiel #57
0
    def get(self, request: HttpRequest):
        try:
            code = request.GET["code"]
        except KeyError as err:
            return JsonResponse({"message": f"Missing parameter(s): {err}"},
                                status=422)


# TODO: Create classes for tokens and userdata
        tokens = google.token_exchange(code)
        userdata = google.get_bearer(settings.GOOGLE_USERINFO_URI,
                                     tokens["access_token"])
        # TODO: Data validation and error handling
        user = User(username=userdata["email"],
                    email=userdata["email"],
                    first_name=userdata.get("given_name", ""),
                    last_name=userdata.get("family_name", ""))
        account = GoogleAccount(user=user,
                                openid=userdata.get("id", ""),
                                access_token=tokens["access_token"],
                                refresh_token=tokens["refresh_token"])
        try:
            user.set_unusable_password()
            user.full_clean()
            account.full_clean(exclude=["user"])
            user.save()
            account.save()
        except ValidationError as err:
            pass
            # return JsonResponse({
            #     "messages": f", ".join(err.messages),
            # }, status=409)

        response = HttpResponse("", status=302)
        redirect_uri = f"{settings.GOOGLE_CUSTOM_LINK}?{urlencode({'user': user.pk, 'access_token': tokens['access_token']})}"
        response["Location"] = redirect_uri
        del response["X-Frame-Options"]
        del response["X-Content-Type-Options"]
        return response
Beispiel #58
0
    def setUp(self):
        password = '******'
        owner = User(username='******')
        owner.set_password(password)
        owner.full_clean()
        owner.save()

        admin = User(username='******')
        admin.is_staff = True
        admin.set_password(password)
        admin.full_clean()
        admin.save()

        self.company = Company(name='Tramcar', url='http://www.tramcar.org',
                               site_id=1, user_id=owner.id)
        self.company.full_clean()
        self.company.save()

        self.client.post(
          '/login/',
          {'username': admin.username, 'password': password}
        )
Beispiel #59
0
 def form_valid(self, form):
     login           = form.cleaned_data['login']
     password1       = form.cleaned_data['password1']
     email           = form.cleaned_data['email']
     first_name      = form.cleaned_data['first_name']
     last_name       = form.cleaned_data['last_name']
     is_super_user   = form.cleaned_data['is_super_user']
     is_report       = form.cleaned_data['is_report']
     telefon         = form.cleaned_data['telefon']
     is_buh          = form.cleaned_data['is_buh']
     image           = form.cleaned_data['image']
     new_user = User(
         username=login,
         first_name=first_name,
         last_name=last_name,
         email=email,
     )
     new_user.set_password(password1)
     try:
         new_user.full_clean()
     except ValidationError:
         self.set_message(u'Не правильно заполненна форма', True)
         return super(CreateUserView, self).form_invalid(form)
     new_user.save()
     new_profile = Profile(
         user=new_user,
         is_company=False,
         is_report=is_report,
         is_super_user=is_super_user,
         telefon=telefon,
         is_buh=is_buh,
         image=image,
     )
     new_profile.save()
     self.set_message(u'Пользователь успешно добавлен.')
     return super(CreateUserView,self).form_valid(form)