From 1cce7211141b4cd7b6f47bb47bbccf84da53a521 Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 28 Nov 2016 02:09:23 -0600 Subject: [PATCH] Fix #2772: Topics set as mod+ can't be reverted to public ones. --- app/helpers/forum_topics_helper.rb | 8 +------- app/models/forum_topic.rb | 8 +++++++- app/views/forum_topics/_form.html.erb | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/helpers/forum_topics_helper.rb b/app/helpers/forum_topics_helper.rb index 1a7bbf623..98b9ad8ed 100644 --- a/app/helpers/forum_topics_helper.rb +++ b/app/helpers/forum_topics_helper.rb @@ -4,12 +4,6 @@ module ForumTopicsHelper end def available_min_user_levels - if CurrentUser.is_admin? - [["Moderator", User::Levels::MODERATOR], ["Admin", User::Levels::ADMIN]] - elsif CurrentUser.is_moderator? - [["Moderator", User::Levels::MODERATOR]] - else - [] - end + ForumTopic::MIN_LEVELS.select { |name, level| level <= CurrentUser.level }.to_a end end diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index 3b773018b..6eca89c88 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -5,6 +5,12 @@ class ForumTopic < ActiveRecord::Base 2 => "Bugs & Features" } + MIN_LEVELS = { + None: 0, + Moderator: User::Levels::MODERATOR, + Admin: User::Levels::ADMIN, + } + attr_accessible :title, :original_post_attributes, :category_id, :as => [:member, :builder, :gold, :platinum, :janitor, :moderator, :admin, :default] attr_accessible :is_sticky, :is_locked, :is_deleted, :min_level, :as => [:admin, :moderator] belongs_to :creator, :class_name => "User" @@ -18,7 +24,7 @@ class ForumTopic < ActiveRecord::Base validates_presence_of :title, :creator_id validates_associated :original_post validates_inclusion_of :category_id, :in => CATEGORIES.keys - validates_inclusion_of :min_level, :in => [0, User::Levels::MODERATOR, User::Levels::ADMIN] + validates_inclusion_of :min_level, :in => MIN_LEVELS.values accepts_nested_attributes_for :original_post after_update :update_orignal_post diff --git a/app/views/forum_topics/_form.html.erb b/app/views/forum_topics/_form.html.erb index 87f896436..b278db828 100644 --- a/app/views/forum_topics/_form.html.erb +++ b/app/views/forum_topics/_form.html.erb @@ -18,7 +18,7 @@ <% end %> <% if CurrentUser.is_moderator? %> - <%= f.input :min_level, :as => :select, :collection => available_min_user_levels.to_a %> + <%= f.input :min_level, :include_blank => false, :collection => available_min_user_levels %> <%= f.input :is_sticky, :label => "Sticky" %> <%= f.input :is_locked, :label => "Locked" %> <% end %>