def register_page(): if current_user.is_authenticated: return render_template('register.html') form = UserRegisterForm() if form.validate_on_submit(): db.session.add(User(form.username.data, form.password.data)) db.session.commit() homeberry_flash(FLASH_SUCCESS, 'User {} registered.'.format(form.username.data)) return redirect('/login') return render_template('register.html', form=form)
def login_page(): if current_user.is_authenticated: return redirect('/') form = UserLoginForm() if form.validate_on_submit(): user = User.query.filter_by(username=form.username.data).first() login_user(user) homeberry_flash(FLASH_SUCCESS, 'User {} logged in.'.format(user.username)) return redirect('/') return render_template('login.html', form=form)
def remove_user(id): if current_user.is_authenticated and current_user.is_admin: user_to_delete = User.query.get(id) if user_to_delete: db.session.delete(user_to_delete) db.session.commit() homeberry_flash(FLASH_SUCCESS, 'User {} deleted.'.format(user_to_delete.username)) else: homeberry_flash(FLASH_ERROR, 'Unable to delete user {}.'.format(user_to_delete.username)) return redirect('/admin') else: abort(403)
def admin_page(): if current_user.is_authenticated and current_user.is_admin: users = [ user for user in User.query.all() if not user.is_admin] return render_template('admin.html', form=AdminLoginForm(), users=users) form = AdminLoginForm() if form.validate_on_submit(): login_user(form.user) homeberry_flash(FLASH_SUCCESS, 'User admin logged in.') return redirect('/admin') elif request.method == 'POST': homeberry_flash(FLASH_ERROR, 'Unable to login admin user.') return render_template('admin_login.html', form=form)
def change_user_password(username): if current_user.is_authenticated and (str(current_user.username) == username or current_user.is_admin): form = UserChangePasswordForm() if form.validate_on_submit(): current_user.set_password(form.password.data) db.session.commit() homeberry_flash(FLASH_SUCCESS, "Changed user's password.") if current_user.is_admin: return redirect('/admin') else: return redirect('/') elif request.method == 'POST': homeberry_flash(FLASH_ERROR, "Unable to change password.") return render_template('change_password.html', form=form) else: abort(403)
def inside_function(*args, **kwargs): try: view_function(*args, **kwargs) except tuple(warning_exceptions) as e: homeberry_flash(FLASH_WARNING, e.msg) except tuple(error_exceptions) as e: homeberry_flash(FLASH_ERROR, e.msg) except Exception: homeberry_flash(FLASH_ERROR, "Unknown error occurred.") finally: return redirect(redirect_url)
def logout_page(): if current_user.is_authenticated: homeberry_flash(FLASH_SUCCESS, "Successfully logged out {}.".format(current_user.username)) logout_user() return redirect('/')