def register(): if current_user.is_authenticated: return redirect(url_for('public.index')) form = RegisterForm() error = None if form.validate_on_submit(): username = form.username.data email = form.email.data password = form.password.data # Comprobamos que no hay ya un usuario con ese email user = User.get_by_email(email) if user is not None: flash( 'El email {} ya está siendo utilizado por otro usuario'.format( email)) else: # Creamos el usuario y lo guardamos user = User(name=username, email=email) user.set_password(password) user.save() # Creo el rol del nuevo usuaricio usuario_nuevo = User.get_by_email(email) rol = Role(rolename="user", user_id=usuario_nuevo.id) rol.save() # Dejamos al usuario logueado login_user(user, remember=True) return redirect(url_for('public.index')) return render_template("register.html", form=form)
def test_title_slug(self): with self.app.app_context(): admin = User.get_by_email('*****@*****.**') post = Post(user_id=admin.id, title='Post de prueba', content='Lorem Ipsum') post.save() self.assertEqual('post-de-prueba', post.title_slug)
def test_index_with_posts(self): with self.app.app_context(): admin = User.get_by_email('*****@*****.**') post = Post(user_id=admin.id, title='Post de prueba', content='Lorem Ipsum') post.save() res = self.client.get('/') self.assertEqual(200, res.status_code) self.assertNotIn(b'No hay entradas', res.data)
def reset_password_request(): if current_user.is_authenticated: return redirect(url_for("auth.view_user", id=current_user.id)) form = RequestPasswordForm() if form.validate_on_submit(): user = User.get_by_email(form.email.data) if user: send_request_password_email(user) flash('Check your email for the instructions to reset your password') return redirect(url_for("auth.login")) return redirect(url_for("auth.login"))
def test_title_slug_duplicated(self): with self.app.app_context(): admin = User.get_by_email('*****@*****.**') post = Post(user_id=admin.id, title='Prueba', content='Lorem Ipsum') post.save() post_2 = Post(user_id=admin.id, title='Prueba', content='Lorem Ipsum Lorem Ipsum') post_2.save() self.assertEqual('prueba-1', post_2.title_slug) post_3 = Post(user_id=admin.id, title='Prueba', content='Lorem Ipsum Lorem Ipsum') post_3.save() self.assertEqual('prueba-2', post_3.title_slug) posts = Post.get_all() self.assertEqual(3, len(posts))
def login(): if current_user.is_authenticated: return redirect(url_for('public.index')) form = LoginForm() if form.validate_on_submit(): #print("mail = ", form.email.data) #get by email valida user = User.get_by_email(form.email.data) if user is not None and user.check_password(form.password.data): # funcion provista por Flask-Login, el segundo parametro gestion el "recordar" login_user(user, remember=form.remember_me.data) next_page = request.args.get('next', None) if not next_page: next_page = url_for('public.index') return redirect(next_page) else: flash('Usuario o contraseña inválido') return redirect(url_for('auth.login')) # no loggeado, dibujamos el login con el form vacio return render_template('login.html', form=form)
def invite_user(team_id): role = Membership.user_role(current_user.id, team_id) if role not in ["ADMIN", "OWNER"]: abort(401, "You don't have access to invite to this team.") form = InviteForm() team = Team.get(team_id) if form.validate_on_submit(): email = form.email.data role = form.role.data #create a team try: user = User.get_by_email(email) if not user: user = User.invite(email) membership = Membership.create(user.id, team_id, role) # Update successful flash( 'User {} added to team {} with role {}'.format( membership.user_id, membership.team_id, membership.role), 'teal') return redirect(url_for('teams.view_team', team_id=team.id)) except Exception as e: # Update unsuccessful flash("Error: {}".format(e), 'red') return render_template('teams/invite_user.html', title='Invite User', form=form, team=team)
def validate_email(self, email): u = User.get_by_email(email.data) if u is not None: raise ValidationError("Email already taken")