diff --git a/app/assets/javascripts/discourse/app/models/user.js b/app/assets/javascripts/discourse/app/models/user.js index 58195f7b7a9..2dca08adcda 100644 --- a/app/assets/javascripts/discourse/app/models/user.js +++ b/app/assets/javascripts/discourse/app/models/user.js @@ -664,10 +664,12 @@ const User = RestModel.extend({ }, isAllowedToUploadAFile(type) { + const settingName = type === "image" ? "embedded_media" : "attachments"; + return ( this.staff || this.trust_level > 0 || - this.siteSettings[`newuser_max_${type}s`] > 0 + this.siteSettings[`newuser_max_${settingName}`] > 0 ); }, diff --git a/test/javascripts/lib/uploads-test.js b/test/javascripts/lib/uploads-test.js index fae70421fb5..a8492d75b36 100644 --- a/test/javascripts/lib/uploads-test.js +++ b/test/javascripts/lib/uploads-test.js @@ -56,6 +56,31 @@ QUnit.test("new user cannot upload images", function(assert) { ); }); +QUnit.test("new user can upload images if allowed", function(assert) { + this.siteSettings.newuser_max_embedded_media = 1; + this.siteSettings.default_trust_level = 0; + sandbox.stub(bootbox, "alert"); + + assert.ok( + validateUploadedFiles([{ name: "image.png" }], { + user: User.create(), + siteSettings: this.siteSettings + }) + ); +}); + +QUnit.test("TL1 can upload images", function(assert) { + this.siteSettings.newuser_max_embedded_media = 0; + sandbox.stub(bootbox, "alert"); + + assert.ok( + validateUploadedFiles([{ name: "image.png" }], { + user: User.create({ trust_level: 1 }), + siteSettings: this.siteSettings + }) + ); +}); + QUnit.test("new user cannot upload attachments", function(assert) { this.siteSettings.newuser_max_attachments = 0; sandbox.stub(bootbox, "alert");