ensl.org/app/controllers/posts_controller.rb

72 lines
1.4 KiB
Ruby
Raw Normal View History

class PostsController < ApplicationController
2014-03-31 21:33:16 +00:00
before_filter :get_post, except: [:new, :create]
respond_to :html, :js
layout 'forums'
def quote
raise AccessError unless @post.can_show? cuser
end
def new
@post = Post.new
@post.topic = Topic.find(params[:id])
raise AccessError unless @post.can_create? cuser
end
def edit
raise AccessError unless @post.can_update? cuser
2014-03-31 21:33:16 +00:00
render layout: 'forums'
end
def create
@post = Post.new(params[:post])
@post.user = cuser
raise AccessError unless @post.can_create? cuser
respond_to do |format|
if @post.save
flash[:notice] = t(:posts_create)
format.js { render }
else
format.html { render :new }
end
end
end
def update
raise AccessError unless @post.can_update? cuser, params[:post]
if @post.update_attributes(params[:post])
flash[:notice] = t(:posts_update)
redirect_to @post.topic
else
2014-03-31 21:33:16 +00:00
render :edit
end
end
def trash
raise AccessError unless @post.can_destroy? cuser
@post.trash
if Topic.exists? @post.topic
redirect_to @post.topic
else
redirect_to @post.topic.forum
end
end
def destroy
raise AccessError unless @post.can_destroy? cuser
@post.destroy
if Topic.exists? @post.topic
redirect_to @post.topic
else
redirect_to @post.topic.forum
end
end
private
def get_post
@post = Post.find(params[:id])
end
end