gitlab-org--gitlab-foss/app/services/files/update_service.rb
Jacob Vosmaer 11d5ad2f17 Make file edit error message less specific
The truth is that at the point where there error message is written we
can only guess what went wrong.
2014-08-06 14:27:22 +02:00

40 lines
1.1 KiB
Ruby

require_relative "base_service"
module Files
class UpdateService < BaseService
def execute
allowed = if project.protected_branch?(ref)
can?(current_user, :push_code_to_protected_branches, project)
else
can?(current_user, :push_code, project)
end
unless allowed
return error("You are not allowed to push into this branch")
end
unless repository.branch_names.include?(ref)
return error("You can only create files if you are on top of a branch")
end
blob = repository.blob_at_branch(ref, path)
unless blob
return error("You can only edit text files")
end
edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path)
created_successfully = edit_file_action.commit!(
params[:content],
params[:commit_message],
params[:encoding]
)
if created_successfully
success
else
error("Your changes could not be committed. Maybe the file changed, or there was nothing to commit?")
end
end
end
end