From eee3351c0f80b9e45ebbe6508ed7bcd0d40e30e6 Mon Sep 17 00:00:00 2001 From: albert Date: Mon, 17 Oct 2011 00:13:36 -0400 Subject: [PATCH] fixes #139: New forum threads submitted locked/stickied are neither. --- app/controllers/forum_topics_controller.rb | 4 ++-- app/logical/anonymous_user.rb | 4 ++++ app/models/forum_topic.rb | 1 + app/models/user.rb | 22 ++++++++++++++++++++++ app/views/forum_topics/show.html.erb | 2 ++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/controllers/forum_topics_controller.rb b/app/controllers/forum_topics_controller.rb index 7f2f7b335..e8012076f 100644 --- a/app/controllers/forum_topics_controller.rb +++ b/app/controllers/forum_topics_controller.rb @@ -30,7 +30,7 @@ class ForumTopicsController < ApplicationController end def create - @forum_topic = ForumTopic.create(params[:forum_topic]) + @forum_topic = ForumTopic.create(params[:forum_topic], :as => CurrentUser.role) respond_with(@forum_topic) end @@ -38,7 +38,7 @@ class ForumTopicsController < ApplicationController @forum_topic = ForumTopic.find(params[:id]) check_privilege(@forum_topic) assign_special_attributes(@forum_topic) - @forum_topic.update_attributes(params[:forum_topic]) + @forum_topic.update_attributes(params[:forum_topic], :as => CurrentUser.role) respond_with(@forum_topic) end diff --git a/app/logical/anonymous_user.rb b/app/logical/anonymous_user.rb index 1faf5b95e..133e35c9e 100644 --- a/app/logical/anonymous_user.rb +++ b/app/logical/anonymous_user.rb @@ -119,6 +119,10 @@ class AnonymousUser def update_column(*params) end + def role + :anonymous + end + %w(member banned privileged contributor janitor moderator admin).each do |name| define_method("is_#{name}?") do false diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index 5e2557840..9a181e72f 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -1,5 +1,6 @@ class ForumTopic < ActiveRecord::Base attr_accessible :title, :original_post_attributes + attr_accessible :is_sticky, :is_locked, :as => :janitor belongs_to :creator, :class_name => "User" belongs_to :updater, :class_name => "User" has_many :posts, :class_name => "ForumPost", :order => "forum_posts.id asc", :foreign_key => "topic_id", :dependent => :destroy diff --git a/app/models/user.rb b/app/models/user.rb index 415ac4f35..41300c084 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -199,6 +199,28 @@ class User < ActiveRecord::Base end end + def role + case level + when Levels::MEMBER + :member + + when Levels::PRIVILEGED + :privileged + + when Levels::CONTRIBUTOR + :contributor + + when Levels::JANITOR + :janitor + + when Levels::MODERATOR + :moderator + + when Levels::ADMIN + :admin + end + end + def level_string case level when Levels::MEMBER diff --git a/app/views/forum_topics/show.html.erb b/app/views/forum_topics/show.html.erb index 8eca7f10b..70ece8108 100644 --- a/app/views/forum_topics/show.html.erb +++ b/app/views/forum_topics/show.html.erb @@ -1,5 +1,7 @@
+

Topic: <%= @forum_topic.title %>

+ <% if @forum_topic.is_locked? %>

This topic has been locked.