コード例 #1
0
ファイル: routes.py プロジェクト: 17lucky17/Trivia
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)
コード例 #2
0
ファイル: test_post_model.py プロジェクト: AguStarlip/blogone
 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)
コード例 #3
0
 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)
コード例 #4
0
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"))
コード例 #5
0
 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))
コード例 #6
0
ファイル: routes.py プロジェクト: 17lucky17/Trivia
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)
コード例 #7
0
ファイル: routes.py プロジェクト: mjt145/FireFlask
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)
コード例 #8
0
 def validate_email(self, email):
     u = User.get_by_email(email.data)
     if u is not None:
         raise ValidationError("Email already taken")