This repository has been archived on 2024-08-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
redstoner.com/app/controllers/forumthreads_controller.rb
2014-02-03 01:47:49 +01:00

63 lines
2.2 KiB
Ruby

class ForumthreadsController < ApplicationController
def index
f = Forum.find(params[:forum_id])
redirect_to forum_path(f.forumgroup, f)
end
def show
@thread = Forumthread.find(params[:id])
end
def update
@thread = Forumthread.find(params[:id])
if mod? || @thread.author.is?(current_user)
@thread.user_editor = current_user
if @thread.update_attributes(params[:forumthread] ? params[:forumthread].slice(:title, :content, :user_editor) : {})
redirect_to [@thread.forum, @thread], notice: 'Post has been updated.'
else
flash[:alert] = "There was a problem while updating the post"
render action: "edit"
end
else
flash[:alert] = "You are not allowed to edit this thread!"
redirect_to [@thread.forum, @thread]
end
end
def edit
@thread = Forumthread.find(params[:id])
end
def new
@forum = Forum.find(params[:forum_id])
if @forum && current_user && (@forum.group.role_read.nil? || @forum.group.role_read <= current_user.role) && (@forum.role_read.nil? || @forum.role_read <= current_user.role)
@thread = Forumthread.new(forum: @forum)
else
flash[:alert] = "You are not allowed to create a new thread here!"
redirect_to @forum
end
end
def create
@forum = Forum.find(params[:forum_id])
if (confirmed? && (@forum.group.role_read || Role.get(:default))<= current_user.role && (@forum.group.role_write || Role.get(:default))<= current_user.role && (@forum.role_read || Role.get(:default))<= current_user.role && (@forum.group.role_write || Role.get(:default))<= current_user.role)
@thread = Forumthread.new(mod? ? params[:forumthread] : params[:forumthread].slice(:title, :content))
@thread.user_author = current_user
@thread.forum = @forum
if @thread.save
flash[:notice] = "Thread created!"
redirect_to forum_forumthread_path(@forum, @thread)
return
else
flash[:alert] = "Seomthing went wrong while creating your thread."
render "new"
return
end
else
flash[:alert] = "You are not allowed to create a thread here!"
redirect_to @forum
end
end
end