summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-01 23:43:35 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-06-01 23:43:35 +0200
commit541133197be098732cdc14a12aa059e21cac3d71 (patch)
treebe98768f2f5de5ded78beaebd582b96bebc1795c
parentd9d9c7d7bcb55fe8aa950464ffc691080eff9352 (diff)
downloadgitlab-ce-541133197be098732cdc14a12aa059e21cac3d71.tar.gz
Use rugged in web editor for base64 encoding
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--app/services/files/create_service.rb31
-rw-r--r--app/services/files/update_service.rb31
2 files changed, 28 insertions, 34 deletions
diff --git a/app/services/files/create_service.rb b/app/services/files/create_service.rb
index 21065f71510..3516cf30dbc 100644
--- a/app/services/files/create_service.rb
+++ b/app/services/files/create_service.rb
@@ -33,23 +33,20 @@ module Files
end
end
- if params[:encoding] == 'base64'
- new_file_action = Gitlab::Satellite::NewFileAction.new(current_user, project, ref, file_path)
- created_successfully = new_file_action.commit!(
- params[:content],
- params[:commit_message],
- params[:encoding],
- params[:new_branch]
- )
- else
- created_successfully = repository.commit_file(
- current_user,
- file_path,
- params[:content],
- params[:commit_message],
- params[:new_branch] || ref
- )
- end
+ content =
+ if params[:encoding] == 'base64'
+ Base64.decode64(params[:content])
+ else
+ params[:content]
+ end
+
+ created_successfully = repository.commit_file(
+ current_user,
+ file_path,
+ content,
+ params[:commit_message],
+ params[:new_branch] || ref
+ )
if created_successfully
diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb
index 5efd43d16ce..4d7ac3b7504 100644
--- a/app/services/files/update_service.rb
+++ b/app/services/files/update_service.rb
@@ -19,23 +19,20 @@ module Files
return error("You can only edit text files")
end
- if params[:encoding] == 'base64'
- edit_file_action = Gitlab::Satellite::EditFileAction.new(current_user, project, ref, path)
- edit_file_action.commit!(
- params[:content],
- params[:commit_message],
- params[:encoding],
- params[:new_branch]
- )
- else
- repository.commit_file(
- current_user,
- path,
- params[:content],
- params[:commit_message],
- params[:new_branch] || ref
- )
- end
+ content =
+ if params[:encoding] == 'base64'
+ Base64.decode64(params[:content])
+ else
+ params[:content]
+ end
+
+ repository.commit_file(
+ current_user,
+ path,
+ content,
+ params[:commit_message],
+ params[:new_branch] || ref
+ )
success
rescue Gitlab::Satellite::CheckoutFailed => ex