Beispiel #1
0
def create(name, username, email, password):
    """ Creates a user """
    print("Create user: {}".format(name))
    newUser = User(name=name, email=email)
    newUser.set_password(password)
    print(newUser.get_password())
    db.session.add(newUser)
    db.session.commit()
Beispiel #2
0
    def test_avatar(self):
        """Test avatar loading"""

        user = User(email="*****@*****.**", fullname="Test Test")
        digest = md5(user.email.lower().encode("utf-8")).hexdigest()

        self.assertEqual(
            user.avatar(100),
            f"https://www.gravatar.com/avatar/{digest}?d=identicon&s=100")
Beispiel #3
0
    def test_email_unique(self):
        """Test email unique"""

        user = User(fullname="Test Test", email="*****@*****.**")
        db.session.add(user)
        db.session.commit()

        user_new = User(fullname="Test Test 1", email="*****@*****.**")
        db.session.add(user_new)

        # Check if DB throw exception on duplicate
        with self.assertRaises(IntegrityError):
            db.session.commit()
Beispiel #4
0
    def post(self):
        form = SetupForm(request.form)

        if form.validate():

            username = form.username.data
            password = User.hash_password(form.password.data)

            user = User(username=username, password=password)
            user.save()
            flask_login.login_user(user)

            return redirect(url_for('admin.add-post'))

        return redirect(url_for('admin.add-post'))
Beispiel #5
0
    def test_restore_token(self):
        """Test password restoring token"""

        user = User(fullname="Test Test", email="*****@*****.**")
        db.session.add(user)
        db.session.commit()

        token = user.get_restore_token(2)

        self.assertEqual(user, user.verify_restore_token(token))

        sleep(3)

        # Check expired token
        self.assertIsNone(user.verify_restore_token(token))
Beispiel #6
0
def reset_pass(token):
    """Restore password view"""

    if current_user.is_authenticated:
        return redirect(url_for("main.index"))

    # Find user by restore token
    user = User.verify_restore_token(token)

    if user is None:
        flash("Incorrect or expired token")
        return redirect(url_for("auth.login"))

    form = ResetPasswordForm()

    if request.method == "POST" and form.validate_on_submit():
        form.populate_obj(user)
        user.hash_password()
        db.session.add(user)
        db.session.commit()
        flash("Congratulations, you're successfully restored password!")
        return redirect(url_for("auth.login"))

    return render_template("auth/multi_form.html", title="Reset password",
                           form=form)
Beispiel #7
0
    def post(self):
        form = SetupForm(request.form)

        if form.validate():

            global_settings = GlobalSettings.get_global_settings_object()

            import logging
            logging.warn(global_settings)

            if form.disqus_shortname.data:
                global_settings.disqus_shortname = form.disqus_shortname.data

            if form.flog_name.data:
                global_settings.flog_name = form.flog_name.data

            if form.author_name.data:
                global_settings.author_name = form.author_name.data

            if form.author_bio.data:
                global_settings.author_bio = form.author_bio.data

            db.session.commit()

            username = form.username.data
            password = User.hash_password(form.password.data)

            user = User(username=username, password=password)
            db.session.add(user)
            db.session.commit()
            flask_login.login_user(user)

            return redirect(url_for('admin.add-post'))

        return redirect(url_for('admin.add-post'))
Beispiel #8
0
def register():
    """Public registration view"""

    if current_user.is_authenticated:
        return redirect(url_for("main.index"))

    form = RegistrationForm()

    if request.method == "POST" and form.validate_on_submit():
        user = User()
        form.populate_obj(user)
        user.active = True
        user.roles.append(Role.query.filter_by(name="User").first())
        user.hash_password()
        db.session.add(user)
        db.session.commit()
        flash("Congratulations, you're now a registered user!")
        return redirect(url_for("auth.login"))

    return render_template("auth/multi_form.html", title="Sign Up", form=form)
Beispiel #9
0
def create_user(data: dict) -> User:
    """
    Create a new user
    :param data: Fields of new record
    :type data: dict
    :return: Created user model
    :rtype: User
    :raise ValueError: If the email already exists.
    """

    if User.query.filter_by(email=data["email"]).first():
        raise ValueError("The email already exists")

    user = User(**data)
    user.active = True
    user.roles.append(Role.query.filter_by(name="User").first())
    user.hash_password()

    save_changes(obj=user)

    return user
Beispiel #10
0
def register():
    form = RegisterForm()
    if request.method == 'POST' and form.validate_on_submit():
        create_user(**form.data)
        user = User(username=form.username.data, email=form.email.data, first_name= form.first_name.data, last_name=form.surname.data, password=form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('User created')
        return redirect('/')
    context = {
        'form': form
        }
    return render_template('auth/register.html', **context)
Beispiel #11
0
    def test_password(self):
        """Test password hashing"""

        user = User(password="******")
        user.hash_password()

        self.assertTrue(user.verify_pass("test-user"))
        self.assertFalse(user.verify_pass("not-test-user"))
Beispiel #12
0
def register():
    forms = RegisterForm()
    if forms.validate_on_submit():
        user = User(username=forms.username.data,
                    email=forms.email.data,
                    first_name=forms.first_name.data,
                    last_name=forms.last_name.data,
                    password=forms.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Succesfully registered,sign in please.')
        return redirect('/sign')
    context = {'forms': forms}
    return render_template('auth/register.html', **context)
Beispiel #13
0
def create_user() -> int:
    """
    Creates a user and return his id
    :return: ID of created user
    :rtype: int
    """

    role = Role(name="User")
    user = User(fullname="Test Test", email="*****@*****.**")
    user.roles.append(role)

    db.session.add_all([role, user])
    db.session.commit()

    return user.id
Beispiel #14
0
    def test_roles(self):
        """Test adding and removing roles"""

        user = User(fullname="Test Test", email="*****@*****.**")

        role1 = Role(name="Role 1", description="Simple role 1")
        role2 = Role(name="Role 2", description="Simple role 2")

        # Add user role and check it
        user.roles.append(role1)
        self.assertIn(role1, user.roles)

        # Add user role and check it
        user.roles.append(role2)
        self.assertEqual([role1, role2], user.roles)

        # Remove user role and check it
        self.assertEqual(user.roles.pop(0), role1)

        # Check last role in user
        self.assertIn(role2, user.roles)
def register():
    if session.get('username'):
        flash('Your are already logged in.', 'info')
        return redirect(url_for('auth.home'))

    form = RegistrationForm()

    if form.validate_on_submit():
        username = request.form.get('username')
        password = request.form.get('password')
        existing_username = User.query.filter_by(username=username).first()
        if existing_username:
            flash('This username has been already taken. Try another one.',
                  'warning')
            return render_template('register.html', form=form)
        user = User(username, password)
        db.session.add(user)
        db.session.commit()
        flash('You are now registered. Please login.', 'success')
        return redirect(url_for('auth.login'))
    if form.errors:
        flash(form.errors, 'danger')

    return render_template('register.html', form=form)