FIX: staff/admin shouldn’t be able to create uncategorized topics (#7077)

FIX: staff/admin shouldn’t be able to create uncategorized topics (#7077)

diff --git a/app/assets/javascripts/discourse/models/composer.js.es6 b/app/assets/javascripts/discourse/models/composer.js.es6
index e67e105..6d7df62 100644
--- a/app/assets/javascripts/discourse/models/composer.js.es6
+++ b/app/assets/javascripts/discourse/models/composer.js.es6
@@ -369,8 +369,7 @@ const Composer = RestModel.extend({
     return (
       canCategorize &&
       !categoryId &&
-      !this.siteSettings.allow_uncategorized_topics &&
-      !this.user.get("admin")
+      !this.siteSettings.allow_uncategorized_topics
     );
   },
 
diff --git a/app/models/topic.rb b/app/models/topic.rb
index 71ce6e1..419a063 100644
--- a/app/models/topic.rb
+++ b/app/models/topic.rb
@@ -95,8 +95,7 @@ class Topic < ActiveRecord::Base
             if: Proc.new { |t|
               (t.new_record? || t.category_id_changed?) &&
               !SiteSetting.allow_uncategorized_topics &&
-              (t.archetype.nil? || t.regular?) &&
-              (!t.user_id || !t.user.staff?)
+              (t.archetype.nil? || t.regular?)
             }
 
   validates :featured_link, allow_nil: true, url: true
diff --git a/spec/requests/posts_controller_spec.rb b/spec/requests/posts_controller_spec.rb
index 63f9ba8..cbd62f5 100644
--- a/spec/requests/posts_controller_spec.rb
+++ b/spec/requests/posts_controller_spec.rb
@@ -999,6 +999,34 @@ describe PostsController do
 
           expect(JSON.parse(response.body)["errors"]).to include(I18n.t(:spamming_host))
         end
+
+        context "allow_uncategorized_topics is false" do
+          before do
+            SiteSetting.allow_uncategorized_topics = false
+          end
+
+          it "cant create an uncategorized post" do
+            post "/posts.json", params: {
+              raw: "a new post with no category",
+              title: "a new post with no category"
+            }
+            expect(response).not_to be_successful
+          end
+
+          context "as staff" do
+            before do
+              sign_in(Fabricate(:admin))
+            end
+
+            it "cant create an uncategorized post" do
+              post "/posts.json", params: {
+                raw: "a new post with no category",
+                title: "a new post with no category"
+              }
+              expect(response).not_to be_successful
+            end
+          end
+        end
       end
     end

GitHub sha: 1cd64f68