ensl.org/app/controllers/forums_controller.rb
Ari Timonen e59e8ac8e7 Lots of rails 4 updates
- Add .params to models and update controllers
- Add afk time to gather
- Reannotate models
- Fix rspec problem by using latest rspec plugins from github
2020-03-18 05:38:17 +02:00

78 lines
1.8 KiB
Ruby

class ForumsController < ApplicationController
before_action :get_forum, only: [:show, :edit, :update, :up, :down, :destroy]
layout 'forums'
def index
@categories = Category.domain(Category::DOMAIN_FORUMS).ordered
@nobody = true
end
def show
raise AccessError unless @forum.can_show? cuser
@topics = Topic.where(forum_id: @forum.id)
.joins(posts: :user)
.includes(:lock)
.group('topics.id')
.order('state DESC, (SELECT created_at FROM posts p2 WHERE p2.topic_id = topics.id ORDER BY created_at DESC LIMIT 1) DESC')
.paginate(page: params[:page], per_page: 30)
@forum.mark_as_read! for: cuser if cuser
@nobody = true
end
def new
@forum = Forum.new
raise AccessError unless @forum.can_create? cuser
end
def edit
raise AccessError unless @forum.can_update? cuser
end
def create
@forum = Forum.new(Forum.params(params, cuser))
raise AccessError unless @forum.can_create? cuser
if @forum.save
flash[:notice] = t(:forums_create)
redirect_to(@forum)
else
render :new
end
end
def update
raise AccessError unless @forum.can_update? cuser
if @forum.update_attributes(Forum.params(params, cuser))
flash[:notice] = t(:forums_update)
redirect_to(@forum)
else
render :edit
end
end
def up
raise AccessError unless @forum.can_update? cuser
@forum.move_up(category_id: @forum.category.id)
redirect_to_back
end
def down
raise AccessError unless @forum.can_update? cuser
@forum.move_down(category_id: @forum.category.id)
redirect_to_back
end
def destroy
raise AccessError unless @forum.can_destroy? cuser
@forum.destroy
redirect_to(forums_url)
end
private
def get_forum
@forum = Forum.find(params[:id])
end
end