Admins don't see uncategorized on /categories if it has no topics and allow_uncategorized_topics is false
This commit is contained in:
parent
812f195cae
commit
89908cdb47
|
@ -339,7 +339,7 @@ SQL
|
|||
[read_restricted, mapped]
|
||||
end
|
||||
|
||||
def uncatgorized?
|
||||
def uncategorized?
|
||||
id == SiteSetting.uncategorized_category_id
|
||||
end
|
||||
end
|
||||
|
|
|
@ -113,13 +113,19 @@ class CategoryList
|
|||
end
|
||||
|
||||
|
||||
# Remove any empty topics unless we can create them (so we can see the controls)
|
||||
# Remove any empty categories unless we can create them (so we can see the controls)
|
||||
def prune_empty
|
||||
unless @guardian.can_create?(Category)
|
||||
if !@guardian.can_create?(Category)
|
||||
# Remove categories with no featured topics unless we have the ability to edit one
|
||||
@categories.delete_if { |c|
|
||||
@categories.delete_if do |c|
|
||||
c.displayable_topics.blank? && c.description.blank?
|
||||
}
|
||||
end
|
||||
elsif !SiteSetting.allow_uncategorized_topics
|
||||
# Don't show uncategorized to admins either, if uncategorized topics are not allowed
|
||||
# and there are none.
|
||||
@categories.delete_if do |c|
|
||||
c.uncategorized? && c.displayable_topics.blank?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ module CategoryGuardian
|
|||
end
|
||||
|
||||
def can_delete_category?(category)
|
||||
is_staff? && category.topic_count == 0 && !category.uncatgorized?
|
||||
is_staff? && category.topic_count == 0 && !category.uncategorized?
|
||||
end
|
||||
|
||||
def can_see_category?(category)
|
||||
|
|
|
@ -34,6 +34,7 @@ describe CategoryList do
|
|||
end
|
||||
|
||||
it "returns empty categories for those who can create them" do
|
||||
SiteSetting.stubs(:allow_uncategorized_topics).returns(true)
|
||||
Guardian.any_instance.expects(:can_create?).with(Category).returns(true)
|
||||
category_list.categories.should_not be_blank
|
||||
end
|
||||
|
@ -45,12 +46,19 @@ describe CategoryList do
|
|||
end
|
||||
|
||||
it 'returns the empty category and a non-empty category for those who can create them' do
|
||||
SiteSetting.stubs(:allow_uncategorized_topics).returns(true)
|
||||
Fabricate(:topic, category: Fabricate(:category))
|
||||
Guardian.any_instance.expects(:can_create?).with(Category).returns(true)
|
||||
category_list.categories.should have(3).categories
|
||||
category_list.categories.should include(topic_category)
|
||||
end
|
||||
|
||||
it "doesn't return empty uncategorized category to admins if allow_uncategorized_topics is false" do
|
||||
SiteSetting.stubs(:allow_uncategorized_topics).returns(false)
|
||||
CategoryList.new(Guardian.new(user)).categories.should be_empty
|
||||
CategoryList.new(Guardian.new(admin)).categories.map(&:id).should_not include(SiteSetting.uncategorized_category_id)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with a topic in a category" do
|
||||
|
|
Loading…
Reference in New Issue