2014-03-23 00:22:25 +00:00
|
|
|
class PostsController < ApplicationController
|
2014-03-31 21:33:16 +00:00
|
|
|
before_filter :get_post, except: [:new, :create]
|
2014-03-23 00:22:25 +00:00
|
|
|
respond_to :html, :js
|
2014-04-20 01:29:52 +00:00
|
|
|
layout 'forums'
|
2014-03-23 00:22:25 +00:00
|
|
|
|
|
|
|
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'
|
2014-03-23 00:22:25 +00:00
|
|
|
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
|
2014-04-20 01:29:52 +00:00
|
|
|
format.html { render :new }
|
2014-03-23 00:22:25 +00:00
|
|
|
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
|
2014-03-23 00:22:25 +00:00
|
|
|
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
|