Raise error when no content is provided

This commit is contained in:
Douwe Maan 2017-02-24 09:38:44 -06:00
parent a530e9da35
commit c72e715522
4 changed files with 23 additions and 9 deletions

View File

@ -16,6 +16,10 @@ module Files
def validate def validate
super super
if @file_content.empty?
raise_error("You must provide content.")
end
if @file_path =~ Gitlab::Regex.directory_traversal_regex if @file_path =~ Gitlab::Regex.directory_traversal_regex
raise_error( raise_error(
'Your changes could not be committed, because the file name ' + 'Your changes could not be committed, because the file name ' +

View File

@ -27,7 +27,7 @@ module Files
else else
raise_error("Unknown action type `#{action[:action]}`.") raise_error("Unknown action type `#{action[:action]}`.")
end end
unless action[:file_path].present? unless action[:file_path].present?
raise_error("You must specify a file_path.") raise_error("You must specify a file_path.")
end end
@ -100,6 +100,20 @@ module Files
if repository.blob_at_branch(params[:branch], action[:file_path]) if repository.blob_at_branch(params[:branch], action[:file_path])
raise_error("Your changes could not be committed because a file with the name `#{action[:file_path]}` already exists.") raise_error("Your changes could not be committed because a file with the name `#{action[:file_path]}` already exists.")
end end
if action[:content].empty?
raise_error("You must provide content.")
end
end
def validate_update(action)
if action[:content].empty?
raise_error("You must provide content.")
end
if file_has_changed?
raise FileChangedError.new("You are attempting to update a file `#{action[:file_path]}` that has changed since you started editing it.")
end
end end
def validate_delete(action) def validate_delete(action)
@ -122,11 +136,5 @@ module Files
params[:actions][index][:content] = blob.data params[:actions][index][:content] = blob.data
end end
end end
def validate_update(action)
if file_has_changed?
raise FileChangedError.new("You are attempting to update a file `#{action[:file_path]}` that has changed since you started editing it.")
end
end
end end
end end

View File

@ -18,6 +18,10 @@ module Files
def validate def validate
super super
if @file_content.empty?
raise_error("You must provide content.")
end
if file_has_changed? if file_has_changed?
raise FileChangedError.new("You are attempting to update a file that has changed since you started editing it.") raise FileChangedError.new("You are attempting to update a file that has changed since you started editing it.")
end end

View File

@ -106,8 +106,6 @@ module Gitlab
def add_blob(options, mode: nil) def add_blob(options, mode: nil)
content = options[:content] content = options[:content]
return unless content
content = Base64.decode64(content) if options[:encoding] == 'base64' content = Base64.decode64(content) if options[:encoding] == 'base64'
detect = CharlockHolmes::EncodingDetector.new.detect(content) detect = CharlockHolmes::EncodingDetector.new.detect(content)