Exemple #1
0
def register(city_repo: CityRepo, user_registration: UserRegistration,
             auth_manager: AuthManager):
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = RegistrationForm(request.form)
    form.city.choices = [(city.id, city.name) for city in city_repo.find_all()]
    if request.method == 'POST' and form.validate():
        user = user_registration.register(
            email=form.email.data,
            password=form.password.data,
            first_name=form.first_name.data,
            last_name=form.last_name.data,
            interests=form.interests.data,
            birth_date=form.birth_date.data,
            gender=form.gender.data,
            city_id=form.city.data,
        )
        auth_manager.login_user(user)
        resp = make_response(
            redirect(url_for('main.profile', profile_id=user.profile.id)))
        resp.set_cookie('auth_token',
                        jwt.create_token(current_user.profile),
                        max_age=60 * 60 * 24 * 360)

        return resp

    return render_template('auth/register.html', form=form)
Exemple #2
0
def register():
    form = RegistrationForm()

    if request.method == 'POST' and form.validate():
        user = User.create(username=form.username.data, email=form.email.data)
        user.setPassword(form.password.data)
        db.session.commit()
        flash("Thanks for registering!")
        return redirect(url_for('auth.login'))
    return render_template('auth/register.html', title='Register', form=form)
Exemple #3
0
def register(service: RegistrationService):
    form = RegistrationForm(data=request.get_json())
    if not form.validate():
        return {'success': False, 'errors': form.errors}
    user = User()
    form.populate_obj(user)
    success, errors = service.register(user)
    if errors:
        form.email.errors.append(errors)
    return {'success': success, 'errors': form.errors}
    def test_registration_form(self):
        # Add user
        form = RegistrationForm(username="******",
                                email="*****@*****.**",
                                password="******",
                                password2="abc")
        self.assertTrue(form.validate())

        self.add_user(form.username.data, form.email.data, form.password.data)

        # Add user with same email
        form = RegistrationForm(username="******",
                                email="*****@*****.**",
                                password="******",
                                password2="abc")
        self.assertFalse(form.validate())
        self.assertEqual(form.errors["email"][0],
                         "Email address already in use.")

        # Add user with same username
        form = RegistrationForm(username="******",
                                email="*****@*****.**",
                                password="******",
                                password2="abc")
        self.assertFalse(form.validate())
        self.assertEqual(form.errors["username"][0],
                         "Username already in use.")

        # Test passwords not equal
        form = RegistrationForm(username="******",
                                email="*****@*****.**",
                                password="******",
                                password2="xyz")
        self.assertFalse(form.validate())
        self.assertEqual(form.errors["password2"][0],
                         "Field must be equal to password.")
Exemple #5
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = RegistrationForm()
    form_creator = RegistrationFormTeamCreator()
    if form.submit.data:
        creator = False
    elif form_creator.submit_creator.data:
        creator = True
    if form.submit.data and form.validate():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash(_('Congratulations, you are now a registered user!'),
              category='success')
        return redirect(url_for('auth.login'))
    if form_creator.submit_creator.data and form_creator.validate():
        team = Team(teamname=form_creator.teamname.data)
        db.session.add(team)
        user = User(username=form_creator.username.data,
                    email=form_creator.email.data,
                    team=team,
                    online_state=1)
        user.set_password(form_creator.password.data)
        user.has_team = True
        user.is_admin = True
        user.is_creator = True
        db.session.add(user)
        db.session.commit()
        flash(_(
            'Congratulations, you are now a registered user and %(team)s has been created!',
            team=team.teamname),
              category='success')
        return redirect(url_for('auth.login'))
    if request.method == 'POST':
        return render_template('auth/register.html',
                               title=_('Register'),
                               form=form,
                               form_creator=form_creator,
                               skip_question=True,
                               creator=creator)
    else:
        return render_template('auth/register.html',
                               title=_('Register'),
                               form=form,
                               form_creator=form_creator)
    def test_validate_invalid_password_format(self):
        """Test incorrect data does not validate.

        Returns:
            None
        """

        date = datetime.strptime('1996-01-01', '%Y-%m-%d').date()
        form = RegistrationForm(
            email='*****@*****.**',
            username='******',
            first_name='test',
            last_name='test',
            date_of_birth=date,
            password='******',
            confirm_password='******',
            csrf_enabled=False
        )
        self.assertFalse(form.validate())
    def test_validate_email_already_registered(self):
        """Test user can't register when a duplicate email is used.

        Returns:
            None

        """

        date = datetime.strptime('1996-01-01', '%Y-%m-%d').date()
        form = RegistrationForm(
            email='*****@*****.**',
            username='******',
            first_name='test',
            last_name='test',
            date_of_birth=date,
            password='******',
            confirm_password='******',
            csrf_enabled=False
        )
        self.assertFalse(form.validate())
    def test_validate_success_register_form(self):
        """Test whether registration works correctly.

        Returns:
            None

        """

        date = datetime.strptime('1996-01-01', '%Y-%m-%d').date()
        form = RegistrationForm(
            email='*****@*****.**',
            username='******',
            first_name='test',
            last_name='test',
            date_of_birth=date,
            password='******',
            confirm_password='******',
            csrf_enabled=False

        )
        self.assertTrue(form.validate())
Exemple #9
0
def register():
    form = RegistrationForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User()
        user.name = form.name.data
        user.username = form.username.data
        user.email = form.email.data
        user.password = form.password.data

        db.session.add(user)
        db.session.commit()

        flash('You have successfully registered! You may now login', 'success')
        # redirect to the login page
        return redirect(url_for('auth.login'))

    data = {
        'title': 'Register',
        'form': form,
    }
    return render_template('auth/register.html', **data)
Exemple #10
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = RegistrationForm(request.form)
    if request.method == 'POST' and form.validate():
        user = User(
            username=form.username.data,
            email=form.email.data,
            start_date=form.start_date.data,
        )
        user.set_start_balance(form.start_balance.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()

        row = User.query.filter_by(username=form.username.data).first()

        transaction = Transaction(
            user_id=row.id,
            title="Initial Balance", 
            date=form.start_date.data,
            description="Initial Balance",
            income=True,
            is_recurring=False,
        )
        transaction.set_amount(form.start_balance.data)
        db.session.add(transaction)
        db.session.commit()

        flash('Congratulations, you are now a registered user!')
        return redirect(url_for('auth.login'))
        
    return render_template(
        'auth/register.html',
        title='Register',
        form=form,
    )