Пример #1
0
    def setUp(self):
        super(TestTeam, self).setUp()

        self.user, _ = User.create_or_update(
            '1234f5', 'Tom Hopkins', '*****@*****.**',
            'http://image.com/image.jpg')
        self.user_2, _ = User.create_or_update(
            '5432g1', 'Christy O\'Reiley', '*****@*****.**',
            'http://image.com/image.jpg')
Пример #2
0
def lazy_register(loginza_user, is_active=True):
    user = User(first_name=loginza_user.first_name,
                last_name=loginza_user.last_name,
                email=loginza_user.email,
                is_active=is_active,
                )
    user.save()
    profile = user.profile
    profile.mobile = ''
    profile.save()
    return user
Пример #3
0
    def setUp(self):
        super(CRUDTestCase, self).setUp()
        self.APP = APP.test_client()
        self.header = {'Content-Type:': 'APPlication/json'}

        self.entity_id = 1
        self.entity_class = 'Booking'
        self.user = User()
        self.content = 'test content'

        self.user = User(email='asd',
                         last_name='asd',
                         first_name='asd',
                         user_id=1)
Пример #4
0
    def setUp(self):
        super(TestViews, self).setUp()

        self.user, _ = User.create_or_update(
            '1234f5', 'Tom Hopkins', '*****@*****.**',
            'http://image.com/image.jpg')
        team1, _ = Team.create_or_update(
            'Team 1', [self.user])
        team2, _ = Team.create_or_update(
            'Team 2', [self.user])
Пример #5
0
 def clean_email(self):
     email = self.cleaned_data["email"].lower()
     user = User.objects(email=email).only('is_active').first()
     if user:
         if user.is_active:
             raise forms.ValidationError(_("A user with that email already"
                                           " exists."))
         else:
             raise forms.ValidationError("inactive")
     return email
Пример #6
0
 def clean_email(self):
     email = self.cleaned_data["email"].lower()
     user = User.objects(email=email).only('is_active').first()
     if user:
         if user.is_active:
             raise forms.ValidationError(_("A user with that email already"
                                           " exists."))
         else:
             raise forms.ValidationError("inactive")
     return email
Пример #7
0
def register(request):
    form = UserCreationForm(request.POST)
    if form.is_valid():
        user = User(
            first_name=form.cleaned_data['first_name'],
            last_name=form.cleaned_data['last_name'],
            email=form.cleaned_data['email'],
            is_active=True  #False
        )
        user.gen_activation_code()
        user.set_password(form.cleaned_data['password1'])
        user.save()
        profile = user.profile
        profile.mobile = form.cleaned_data['phone']
        profile.save()
        #user.send_activation_code() # uncomment for send activation code

        invite_id = request.session.get('invite_id')

        if invite_id:
            invite = Invite.objects.with_id(invite_id)

            # временная заглушка для неуникальных приглашений
            inviter = User.objects.with_id(invite_id)
            if not invite and inviter:
                invite = Invite(sender=inviter)
                invite.save()
            # временная заглушка для неуникальных приглашений end

            if invite:
                if invite.recipient:
                    messages.add_message(
                        request, messages.WARNING,
                        _('The invitation has already been used by another user'
                          ))
                else:
                    invite.register(user)
            else:
                messages.add_message(request, messages.WARNING,
                                     _('Incorrect reference to an invitation'))

        if user.is_active:
            login_form = LoginForm()
            request.session.set_test_cookie()
            return direct_to_template(
                request, 'registration_complete_without_activation.html', {
                    'login_form': login_form,
                })
        return direct_to_template(request, 'registration_complete.html')

    return form
Пример #8
0
def cam_form(request, user, cam):
    if cam:
        initial = cam._data
        initial['type'] = cam.type.get_option_value()
        initial['operator'] = initial['operator'] and initial['operator'].id
        initial['tags'] = initial['tags'] and [i.id for i in initial['tags']]
        for tariff_type in Camera.TARIFF_FIELDS:
            value = getattr(cam, tariff_type)
            if value:
                initial[tariff_type] = value.id
    else:
        initial = {}

    if request.POST and request.POST.get('form', None) == 'cam':
        form = CameraForm(user, request.POST, initial=initial)
        if form.is_valid():
            if not cam:
                cam = Camera()
                cam.owner = user
                old_tag_ids = []
            elif form.cleaned_data['tags']:
                old_tag_ids = map(str, cam.tags)

            for k, v in form.cleaned_data.items():
                setattr(cam, k, v)

            cam.type = CameraType.objects.get(
                id=form.cleaned_data['type'][:-2])
            cam.operator = form.cleaned_data['operator'] and User.objects(
                id=form.cleaned_data['operator']).first() or None
            if form.cleaned_data['tags']:
                new_tag_ids = map(str, form.cleaned_data['tags'])
                CameraTag.calc_count(new_tag_ids, old_tag_ids)
                cam.tags = CameraTag.objects(id__in=form.cleaned_data['tags'])

            for tariff_type in Camera.TARIFF_FIELDS:
                value = form.cleaned_data[tariff_type]
                if value:
                    value = Tariff.objects.get(id=value)
                    assert value in getattr(Tariff,
                                            'get_%s_list' % tariff_type)()
                    setattr(cam, tariff_type, value)
                else:
                    setattr(cam, tariff_type, None)

            cam.save()
            messages.add_message(request, messages.SUCCESS,
                                 _('Camera successfully updated'))
            return
    else:
        form = CameraForm(user, None, initial=initial)

    return dict(cam_form=form, camera=cam)
Пример #9
0
def cam_form(request, user, cam):
    if cam:
        initial = cam._data
        initial["type"] = cam.type.get_option_value()
        initial["operator"] = initial["operator"] and initial["operator"].id
        initial["tags"] = initial["tags"] and [i.id for i in initial["tags"]]
        for tariff_type in Camera.TARIFF_FIELDS:
            value = getattr(cam, tariff_type)
            if value:
                initial[tariff_type] = value.id
    else:
        initial = {}

    if request.POST and request.POST.get("form", None) == "cam":
        form = CameraForm(user, request.POST, initial=initial)
        if form.is_valid():
            if not cam:
                cam = Camera()
                cam.owner = user
                old_tag_ids = []
            elif form.cleaned_data["tags"]:
                old_tag_ids = map(str, cam.tags)

            for k, v in form.cleaned_data.items():
                setattr(cam, k, v)

            cam.type = CameraType.objects.get(id=form.cleaned_data["type"][:-2])
            cam.operator = (
                form.cleaned_data["operator"] and User.objects(id=form.cleaned_data["operator"]).first() or None
            )
            if form.cleaned_data["tags"]:
                new_tag_ids = map(str, form.cleaned_data["tags"])
                CameraTag.calc_count(new_tag_ids, old_tag_ids)
                cam.tags = CameraTag.objects(id__in=form.cleaned_data["tags"])

            for tariff_type in Camera.TARIFF_FIELDS:
                value = form.cleaned_data[tariff_type]
                if value:
                    value = Tariff.objects.get(id=value)
                    assert value in getattr(Tariff, "get_%s_list" % tariff_type)()
                    setattr(cam, tariff_type, value)
                else:
                    setattr(cam, tariff_type, None)

            cam.save()
            messages.add_message(request, messages.SUCCESS, _("Camera successfully updated"))
            return
    else:
        form = CameraForm(user, None, initial=initial)

    return dict(cam_form=form, camera=cam)
Пример #10
0
def register(request):
    form = UserCreationForm(request.POST)
    if form.is_valid():
        user = User(
            first_name=form.cleaned_data["first_name"],
            last_name=form.cleaned_data["last_name"],
            email=form.cleaned_data["email"],
            is_active=False,
        )
        user.gen_activation_code()
        user.set_password(form.cleaned_data["password1"])
        user.save()
        profile = user.profile
        profile.mobile = form.cleaned_data["phone"]
        profile.save()
        user.send_activation_code()

        invite_id = request.session.get("invite_id")

        if invite_id:
            invite = Invite.objects.with_id(invite_id)

            # временная заглушка для неуникальных приглашений
            inviter = User.objects.with_id(invite_id)
            if not invite and inviter:
                invite = Invite(sender=inviter)
                invite.save()
            # временная заглушка для неуникальных приглашений end

            if invite:
                if invite.recipient:
                    messages.add_message(
                        request, messages.WARNING, _("The invitation has already been used by another user")
                    )
                else:
                    invite.register(user)
            else:
                messages.add_message(request, messages.WARNING, _("Incorrect reference to an invitation"))

        return direct_to_template(request, "registration_complete.html")

    return form
Пример #11
0
 def test_create_user(self):
     field = User.created_date
     mock_now = lambda: datetime(2015, 8, 1)
     with patch.object(field, 'default', new=mock_now):
         user, created = User.create_or_update(
             '1234f5', 'Tom Hopkins', '*****@*****.**',
             'http://image.com/image.jpg')
     self.assertTrue(created)
     self.assertEqual(user.google_id, '1234f5')
     self.assertEqual(user.name, 'Tom Hopkins')
     self.assertEqual(user.email, '*****@*****.**')
     self.assertEqual(user.avatar, 'http://image.com/image.jpg')
     self.assertEqual(user.created_date, datetime(2015, 8, 1))
     self.assertTrue(user.is_authenticated)
     self.assertTrue(user.is_active)
     self.assertFalse(user.is_anonymous)
Пример #12
0
def lost_password(request, template='social/lost_password.html'):
    if request.method == 'POST':
        form = LostPasswordForm(request.POST)
        if form.is_valid():
            user = User.objects(email=form.cleaned_data['email']).first()
            if user:
                if user.is_active:
                    user.gen_activation_code()
                    user.save()
                    user.send_restore_password_code()
                elif not user.is_banned:
                    user.send_activation_code()
            messages.add_message(request, messages.SUCCESS, _('Email with a link sent to restore the address you specify.'))
            return redirect('social:index')
    else:
        form = LostPasswordForm()
    return direct_to_template(request, template , dict(form=form))
Пример #13
0
def register(request):
    form = UserCreationForm(request.POST)
    if form.is_valid():
        user = User(
                    first_name=form.cleaned_data['first_name'],
                    last_name=form.cleaned_data['last_name'],
                    email=form.cleaned_data['email'],
                    is_active=True#False
                    )
        user.gen_activation_code()
        user.set_password(form.cleaned_data['password1'])
        user.save()
        profile = user.profile
        profile.mobile = form.cleaned_data['phone']
        profile.save()
        #user.send_activation_code() # uncomment for send activation code

        invite_id = request.session.get('invite_id')

        if invite_id:
            invite = Invite.objects.with_id(invite_id)

            # временная заглушка для неуникальных приглашений
            inviter = User.objects.with_id(invite_id)
            if not invite and inviter:
                invite = Invite(sender=inviter)
                invite.save()
            # временная заглушка для неуникальных приглашений end

            if invite:
                if invite.recipient:
                    messages.add_message(request, messages.WARNING,
                             _('The invitation has already been used by another user'))
                else:
                    invite.register(user)
            else:
                messages.add_message(request, messages.WARNING,
                             _('Incorrect reference to an invitation'))

        if user.is_active:
            login_form = LoginForm()
            request.session.set_test_cookie()
            return direct_to_template(request, 
                            'registration_complete_without_activation.html',
                            {'login_form': login_form,})
        return direct_to_template(request, 'registration_complete.html')

    return form
Пример #14
0
def lost_password(request, template='social/lost_password.html'):
    if request.method == 'POST':
        form = LostPasswordForm(request.POST)
        if form.is_valid():
            user = User.objects(email=form.cleaned_data['email']).first()
            if user:
                if user.is_active:
                    user.gen_activation_code()
                    user.save()
                    user.send_restore_password_code()
                elif not user.is_banned:
                    user.send_activation_code()
            messages.add_message(
                request, messages.SUCCESS,
                _('Email with a link sent to restore the address you specify.')
            )
            return redirect('social:index')
    else:
        form = LostPasswordForm()
    return direct_to_template(request, template, dict(form=form))
Пример #15
0
def index(request):
    if not request.user.is_authenticated():
        return _index_unreg(request)

    params = dict(request.GET.items())
    if "kino" in params and params["kino"]:
        params["kino"] = request.GET.getlist("kino")

    if "page" in params:
        del params["page"]

    form = PeopleFilterForm(params or None)

    if params and form.is_valid():
        filter_user_data = {}
        filter_profile_data = {}

        data = dict(form.cleaned_data)

        filter_user_data["is_active"] = True

        if data["first_name"]:
            filter_user_data["first_name__icontains"] = data["first_name"]

        if data["last_name"]:
            filter_user_data["last_name__icontains"] = data["last_name"]

        if data["gender"]:
            filter_profile_data["sex"] = data["gender"]

        if data["is_dating"]:
            filter_profile_data["is_dating"] = True
            if data["age_from"]:
                filter_profile_data["age__gte"] = data["age_from"]

            if data["age_to"]:
                filter_profile_data["age__lte"] = data["age_to"]

            if data["interests"]:
                filter_profile_data["interests__icontains"] = data["interests"]

            if data["kino"]:
                filter_profile_data["kino__in"] = data["kino"]

        if data["has_photo"]:
            filter_user_data["avatar__exists"] = True

        if data["is_online"]:
            filter_user_data.update({"last_access__gt": User.get_delta_time()})

        if filter_profile_data:
            profiles = Profile.objects.filter(**filter_profile_data).only("user")
            if filter_user_data:
                user_ids = [profile.user.id for profile in profiles]
                filter_user_data["id__in"] = user_ids
                users = User.objects.filter(**filter_user_data)
            else:
                users = [profile.user for profile in profiles]

        else:
            users = User.objects.filter(**filter_user_data)

        users_count = len(users)

    else:
        users = User.objects(last_access__gt=User.get_delta_time(), is_active=True)
        users_count = User.objects(last_access__gt=User.get_delta_time(), is_active=True).count()

    objects = paginate(request, users, users_count, 24)

    if request.is_ajax():
        return direct_to_template(request, "_user_list.html", {"objects": objects})
    else:
        return direct_to_template(request, "index.html", {"objects": objects, "form": form})
Пример #16
0
 def authenticate(self, email=None, password=None):
     user = User.objects(email=email).first()
     if user:
         if password and user.check_password(password):
             return user
     return None
Пример #17
0
def index(request):
    if not request.user.is_authenticated():
        return _index_unreg(request)

    params = dict(request.GET.items())
    if 'page' in params:
        del params['page']

    form = PeopleFilterForm(params or None)

    if params and form.is_valid():
        filter_user_data = {}
        filter_profile_data = {}

        data = dict(form.cleaned_data)

        filter_user_data['is_active'] = True

        if data['first_name']:
            filter_user_data['first_name__icontains'] = data['first_name']

        if data['last_name']:
            filter_user_data['last_name__icontains'] = data['last_name']

        if data['gender']:
            filter_profile_data['sex'] = data['gender']

        if data['has_photo']:
            filter_user_data['avatar__exists'] = True

        if data['is_online']:
            filter_user_data.update({'last_access__gt': User.get_delta_time()})

        if filter_profile_data:
            profiles = Profile.objects.filter(
                **filter_profile_data).only('user')
            if filter_user_data:
                user_ids = [profile.user.id for profile in profiles]
                filter_user_data['id__in'] = user_ids
                users = User.objects.filter(**filter_user_data)
            else:
                users = [profile.user for profile in profiles]

        else:
            users = User.objects.filter(**filter_user_data)

        users_count = len(users)

    else:
        users = User.objects(last_access__gt=User.get_delta_time(),
                             is_active=True)
        users_count = User.objects(last_access__gt=User.get_delta_time(),
                                   is_active=True).count()

    objects = paginate(request, users, users_count, 24)

    if request.is_ajax():
        return direct_to_template(request, '_user_list.html', {
            'objects': objects,
        })
    else:
        return direct_to_template(request, 'index.html', {
            'objects': objects,
            'form': form
        })
Пример #18
0
def index(request):
    if not request.user.is_authenticated():
        return _index_unreg(request)

    params = dict(request.GET.items())
    if 'page' in params:
        del params['page']

    form = PeopleFilterForm(params or None)

    if params and form.is_valid():
        filter_user_data = {}
        filter_profile_data = {}

        data = dict(form.cleaned_data)

        filter_user_data['is_active'] = True

        if data['first_name']:
            filter_user_data['first_name__icontains'] = data['first_name']

        if data['last_name']:
            filter_user_data['last_name__icontains'] = data['last_name']

        if data['gender']:
            filter_profile_data['sex'] = data['gender']

        if data['has_photo']:
            filter_user_data['avatar__exists'] = True

        if data['is_online']:
            filter_user_data.update(
            {'last_access__gt': User.get_delta_time()
            })

        if filter_profile_data:
            profiles = Profile.objects.filter(**filter_profile_data).only('user')
            if filter_user_data:
                user_ids = [profile.user.id for profile in profiles]
                filter_user_data['id__in'] = user_ids
                users = User.objects.filter(**filter_user_data)
            else:
                users = [profile.user for profile in profiles]

        else:
            users = User.objects.filter(**filter_user_data)

        users_count = len(users)
    
    else:
        users = User.objects(last_access__gt=User.get_delta_time(), is_active=True)
        users_count = User.objects(last_access__gt=User.get_delta_time(), is_active=True).count()

    objects = paginate(request,
                       users,
                       users_count,
                       24)

    if request.is_ajax():
        return direct_to_template(request, '_user_list.html', {
            'objects': objects,
        })
    else:
        return direct_to_template(request, 'index.html', {
            'objects': objects,
            'form': form
        })
Пример #19
0
 def validate_username(self, field):
     username = field.data
     if not re.match('[a-zA-Z][0-9a-zA-Z\.+-]+', username):
         raise ValidationError('Username has invalid Characters')
     if User.exists(username) or Group.exists(username):
         raise ValidationError('Username is already taken')