@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'))
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"))
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'))
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'))