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()
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")
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()
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'))
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))
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)
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'))
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)
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
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)
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"))
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)
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
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)