Esempio n. 1
0
    @login_required
    def handle_request(self, post_id):
        post = Post.objects(id=ObjectId(post_id)).first()
        if current_user.is_admin():
            if request.method == 'POST':
                delete_text = request.form['delete-text']
                print(delete_text)
                if delete_text == 'DELETE':
                    post.delete()
                    return redirect(url_for('posts'))
                else:
                    error = "Confirmation text was not correct."
                    return render_template('post_delete.html', post=post, error=error, **self.context)
            else:
                return render_template('post_delete.html', post=post, **self.context)
        else:
            return redirect(url_for('posts'))

#Page View Rules
app.add_url_rule('/posts/',
                view_func=PostsView.as_view('posts'))
app.add_url_rule('/posts/<slug>',
                view_func=PostView.as_view('post'))
app.add_url_rule('/posts/create/',
                view_func=PostCreate.as_view('post_create'))
app.add_url_rule('/posts/edit/<post_id>',
                view_func=PostEdit.as_view('post_edit'))
app.add_url_rule('/posts/delete/<post_id>',
                view_func=PostDelete.as_view('post_delete'))

Esempio n. 2
0
        if request.method == "POST":
            name = request.form["name"]
            email = request.form["email"]
            pass1 = request.form["password1"]
            pass2 = request.form["password2"]
            args = {"name": name, "email": email}
            user = User.objects(email=email).first()
            if user is not None:
                error = "Email provided is already in use!"
                return render_template("signup.html", error=error, args=args, **self.context)
            if pass1 == "" or pass1 is None:
                error = "You must provide a valid password!"
                return render_template("signup.html", error=error, args=args, **self.context)
            if pass1 != pass2:
                error = "Passwords do not match!"
                return render_template("signup.html", error=error, args=args, **self.context)
            # All checks passed, create user
            newUser = User.create_user(name, email, pass1)
            login_user(newUser)
            return redirect(url_for("index"))
        else:
            args = {}
            return render_template("signup.html", args=args, **self.context)


# Page View Rules
app.add_url_rule("/", view_func=IndexView.as_view("index"))
app.add_url_rule("/login", view_func=LogInView.as_view("login"))
app.add_url_rule("/logout", view_func=LogOutView.as_view("logout"))
app.add_url_rule("/signup", view_func=SignUpView.as_view("signup"))
Esempio n. 3
0
        else:
            return render_template('project_create_edit.html', form=form, **self.context)


class ProjectEdit(BaseView):
    methods = ['GET', 'POST']

    @login_required
    def handle_request(self, slug):
        if not current_user.is_admin():
            return redirect(url_for('index'))
        form = ProjectForm()
        project = Project.objects(slug=slug).first()
        if form.validate_on_submit():
            project.name = form.name.data
            project.slug = form.slug.data
            project.save()
            return redirect(url_for('project', slug=project.slug))
        else:
            form.name.data = project.name
            form.slug.data = project.slug
            return render_template('project_create_edit.html', form=form, **self.context)

app.add_url_rule('/project/<slug>/',
                view_func=ProjectView.as_view('project'))
app.add_url_rule('/projects/create/',
                view_func=ProjectCreate.as_view('project_create'))
app.add_url_rule('/projects/edit/<slug>/',
                view_func=ProjectEdit.as_view('project_edit'))

Esempio n. 4
0
            return redirect(url_for('index'))
        user = User.objects(id=ObjectId(user_id)).first()
        if request.method == 'POST':
            user.name = request.form['name']
            user.email = request.form['email']
            user.active = False
            if 'active' in request.form:
                user.active = True
            user.admin = False
            if 'admin' in request.form:
                user.admin = True
            user.authenticated = False
            if 'authenticated' in request.form:
                user.authenticated = True
            user.author = False
            if 'author' in request.form:
                user.author = True
            user.save()
            return redirect(url_for('user', user_id=user.id))
        else:
            return render_template('user_edit.html', user=user, **self.context)

#Page View Rules
app.add_url_rule('/users/',
                view_func=UsersView.as_view('users'))
app.add_url_rule('/users/<user_id>',
                view_func=UserView.as_view('user'))
app.add_url_rule('/users/edit/<user_id>',
                view_func=UserEdit.as_view('user_edit'))