Ejemplo n.º 1
0
def delete_user():
    user = User.objects(email=current_user.email).first()
    posts = Post.objects(author=current_user.id)
    user.delete()
    posts.delete()
    flash("Account has been deleted", "success")
    return redirect(url_for("users.register"))
Ejemplo n.º 2
0
def change_password():

    change_form = ChangePasswordForm()
    
    if change_form.validate_on_submit():
        oldpassword = change_form.old_password.data
        newpassword = change_form.password.data
    
        
        user = User.objects(username = session['username']).first()
        
        if user :

            if oldpassword == newpassword :
                flash("New password can not be same the old password")
                return redirect(url_for("user.change_password"))


            elif oldpassword !=  user.password:
                flash("Incorrect Password")
                return redirect(url_for("user.change_password"))

            else :

                user.change_password(oldpassword, newpassword)
                user.save()
                flash("Your password has been successfully changed.")


        return redirect(url_for("user.profile"))    


    return render_template('user/change_password.html' , form = change_form )
Ejemplo n.º 3
0
def edit_user():

    edit_form = EditUserInfoForm() 
    
    if request.method == "GET":

    #set values in the form
        edit_form.first_name.data = session['firstname']
        edit_form.last_name.data = session['lastname']
        edit_form.biography.data = session['biography']

    if  edit_form.validate_on_submit():

        new_firstname = edit_form.first_name.data
        new_lastname = edit_form.last_name.data
        new_bio = edit_form.biography.data

        user = User.objects(username = session["username"]).first()

        user.first_name = new_firstname
        user.last_name = new_lastname
        user.biography = new_bio 

        user.save()

        session['firstname'] = new_firstname
        session['lastname'] = new_lastname
        session['biography'] = new_bio

        return redirect('/profile') 

    return render_template("user/edituser.html", form = edit_form)
Ejemplo n.º 4
0
def login():

    login_form = LoginForm()

    if login_form.validate_on_submit():

        # read values from the login wtform
        username = login_form.username.data
        password = login_form.password.data

        user = User.objects(username=username).first()

        # if user  != None:
        # check if credentials are valid
        if user and user.authenticate(username, password):
            # store the user ID in the session
            session['uid'] = str(user.id)
            session['username'] = user.username
            session['firstname'] = user.first_name
            session['lastname'] = user.last_name
            session['biography'] = user.biography
            session['role'] = user.role

        return redirect("/profile")

    # render the login template
    return render_template('login/login.html', form=login_form)
Ejemplo n.º 5
0
 def validate_username(self, username):
     if username.data != current_user.username:
         existing_user = User.objects(username=username.data).first()
         if existing_user:
             raise ValidationError(
                 "This username is already taken. Please choose another one."
             )
Ejemplo n.º 6
0
def profile():

    user = User.objects(username = session['uid'])

    posts = Post.objects(author = session['uid']).order_by('-created')

        
    flash('You were successfully logged in')

    return render_template("user/profile.html", user = user, posts = posts ) 
Ejemplo n.º 7
0
def login():
    login_form = LoginForm()
    if login_form.validate_on_submit():
        # Login User if User exists in database and credentials are correct.
        user = User.objects(email=login_form.email.data.lower()).first()
        if user and bcrypt.check_password_hash(user.password,
                                               login_form.password.data):
            login_user(user)
            flash("You are logged in.", "success")
            return redirect(url_for("main.home"))
        else:
            flash("Login unsuccessful. Check email and password.", "danger")
    return render_template("users/login.html", title="Login", form=login_form)
Ejemplo n.º 8
0
def create_post():
    create_post_form = CreateOrUpdatePostForm()
    author = User.objects(id=current_user.id).first()
    if create_post_form.validate_on_submit():
        # Creating new Post.
        new_post = Post(title=create_post_form.title.data,
                        content=create_post_form.content.data,
                        author=author)
        # Saving Post to database.
        new_post.save()
        return redirect(url_for("main.home"))
    return render_template("posts/create_or_update_post.html",
                           form=create_post_form,
                           legend="New Post",
                           title="New Post")
Ejemplo n.º 9
0
def login():
    if current_user.is_authenticated:
        return redirect(url_for("main.home"))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.objects(email=form.email.data).first()
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember.data)
            next_page = request.args.get("next")
            flash("Logged in sucsessfuly", "success")
            return redirect(next_page) if next_page \
                else redirect(url_for('main.home'))
        else:
            flash('Login Unsuccessful. Please check email and password',
                  'danger')
    return render_template("users/login.html", title="Login", form=form)
Ejemplo n.º 10
0
def comment_post(post_id):
    page = request.args.get("page", 1, type=int)
    post = Post.objects.get_or_404(id=post_id)
    comments = Comment.objects(post=post).order_by("-date").paginate(
        page=page, per_page=2)
    comment_form = CommentForm()
    comment_author = User.objects(id=current_user.id).first()
    if comment_form.validate_on_submit():
        new_comment = Comment(author=comment_author,
                              post=post,
                              content=comment_form.content.data)
        new_comment.save()
        return redirect(url_for("posts.comment_post", post_id=post_id))
    return render_template("posts/comment_post.html",
                           post=post,
                           form=comment_form,
                           comments=comments,
                           title="Post")
Ejemplo n.º 11
0
 def validate_email(self, email):
     if email.data != current_user.email:
         user = User.objects(email=email.data).first()
         if user is not None:
             raise ValidationError("Email already used!")
Ejemplo n.º 12
0
 def validate_username(self, username):
     if username.data != current_user.username:
         user = User.objects(username=username.data).first()
         if user is not None:
             raise ValidationError("Username already used!")
Ejemplo n.º 13
0
def delete_user(username):

    User.objects(username = username).first().delete()
    
    return redirect(url_for("user.get_users"))
Ejemplo n.º 14
0
def user_posts(username):
    page = request.args.get('page', 1, type=int)
    user = User.objects(username=username).first_or_404()
    posts = Post.objects(author=user.id).order_by("-date_posted").paginate(
        page=page, per_page=2)
    return render_template("users/user_posts.html", posts=posts, user=user)
Ejemplo n.º 15
0
 def validate_email(self, email):
     existing_user = User.objects(email=email.data.lower()).first()
     if existing_user:
         raise ValidationError(
             "This email is already taken. Please choose another one.")