mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-28 21:41:16 +00:00
73 lines
1.6 KiB
Ruby
73 lines
1.6 KiB
Ruby
|
class PostsController < ApplicationController
|
||
|
before_filter :get_post, :except => [:new, :create]
|
||
|
respond_to :html, :js
|
||
|
|
||
|
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
|
||
|
render :layout => "forums"
|
||
|
end
|
||
|
|
||
|
def edit
|
||
|
raise AccessError unless @post.can_update? cuser
|
||
|
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
|
||
|
flash[:error] = t(:posts_invalid) + @post.errors.full_messages.to_s
|
||
|
format.html { return_to }
|
||
|
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
|
||
|
render :action => "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
|