BUGFIX: allow new users to upload an avatar/background

This commit is contained in:
Régis Hanol 2014-05-14 12:13:51 +02:00
parent 3fde28e108
commit 06a87fb0ee
3 changed files with 13 additions and 9 deletions
app/assets/javascripts/discourse

View file

@ -152,7 +152,7 @@ Discourse.Utilities = {
@method validateUploadedFiles
@param {Array} files The list of files we want to upload
**/
validateUploadedFiles: function(files) {
validateUploadedFiles: function(files, bypassNewUserRestriction) {
if (!files || files.length === 0) { return false; }
// can only upload one file at a time
@ -162,11 +162,12 @@ Discourse.Utilities = {
}
var upload = files[0];
var type = Discourse.Utilities.isAnImage(upload.name) ? 'image' : 'attachment';
// CHROME ONLY: if the image was pasted, sets its name to a default one
if (upload instanceof Blob && !(upload instanceof File) && upload.type === "image/png") { upload.name = "blob.png"; }
return Discourse.Utilities.validateUploadedFile(upload, Discourse.Utilities.isAnImage(upload.name) ? 'image' : 'attachment');
return Discourse.Utilities.validateUploadedFile(upload, type, bypassNewUserRestriction);
},
/**
@ -175,9 +176,10 @@ Discourse.Utilities = {
@method validateUploadedFile
@param {File} file The file to be uploaded
@param {string} type The type of the upload (image, attachment)
@params {bool} bypassNewUserRestriction
@returns true whenever the upload is valid
**/
validateUploadedFile: function(file, type) {
validateUploadedFile: function(file, type, bypassNewUserRestriction) {
// check that the uploaded file is authorized
if (!Discourse.Utilities.authorizesAllExtensions() &&
!Discourse.Utilities.isAuthorizedUpload(file)) {
@ -186,10 +188,12 @@ Discourse.Utilities = {
return false;
}
// ensures that new users can upload a file
if (!Discourse.User.current().isAllowedToUploadAFile(type)) {
bootbox.alert(I18n.t('post.errors.' + type + '_upload_not_allowed_for_new_user'));
return false;
if (!bypassNewUserRestriction) {
// ensures that new users can upload a file
if (!Discourse.User.current().isAllowedToUploadAFile(type)) {
bootbox.alert(I18n.t('post.errors.' + type + '_upload_not_allowed_for_new_user'));
return false;
}
}
// check file size

View file

@ -41,7 +41,7 @@ Discourse.AvatarSelectorView = Discourse.ModalBodyView.extend({
// when a file has been selected
$upload.on('fileuploadsubmit', function (e, data) {
var result = Discourse.Utilities.validateUploadedFiles(data.files);
var result = Discourse.Utilities.validateUploadedFiles(data.files, true);
self.setProperties({
uploadProgress: 0,
uploading: result,

View file

@ -27,7 +27,7 @@ Discourse.PreferencesView = Discourse.View.extend({
});
$upload.on('fileuploadsubmit', function (e, data) {
var result = Discourse.Utilities.validateUploadedFiles(data.files);
var result = Discourse.Utilities.validateUploadedFiles(data.files, true);
self.setProperties({ uploadProgress: 0, uploading: result });
return result;
});