diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-05 15:01:38 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-06-05 15:01:38 +0200 |
commit | dfccb06dda344819989fa8d6a9a3c56c5ca0b65f (patch) | |
tree | 8231f0538f50159f04a14c9a19bd7367158d1e3c /app/services/files/update_service.rb | |
parent | 22d5d8913bfadb409a66e8ff8543d25bab868015 (diff) | |
download | gitlab-ce-refactor-web-editor.tar.gz |
Refactor web editorrefactor-web-editor
* fix problem with editing non-master branch
* before commit make sure branch exists
* dont allow user change file in one branch and commit to another existing branch
* remove a lot of code duplication
* remove outdated statellite errors
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'app/services/files/update_service.rb')
-rw-r--r-- | app/services/files/update_service.rb | 42 |
1 files changed, 2 insertions, 40 deletions
diff --git a/app/services/files/update_service.rb b/app/services/files/update_service.rb index 013cc1ee322..a20903c6f02 100644 --- a/app/services/files/update_service.rb +++ b/app/services/files/update_service.rb @@ -2,46 +2,8 @@ require_relative "base_service" module Files class UpdateService < Files::BaseService - def execute - allowed = ::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(ref) - - 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 - - content = - if params[:encoding] == 'base64' - Base64.decode64(params[:content]) - else - params[:content] - end - - sha = repository.commit_file( - current_user, - path, - content, - params[:commit_message], - params[:new_branch] || ref - ) - - after_commit(sha) - success - rescue Gitlab::Satellite::CheckoutFailed => ex - error("Your changes could not be committed because ref '#{ref}' could not be checked out", 400) - rescue Gitlab::Satellite::CommitFailed => ex - error("Your changes could not be committed. Maybe there was nothing to commit?", 409) - rescue Gitlab::Satellite::PushFailed => ex - error("Your changes could not be committed. Maybe the file was changed by another process?", 409) + def commit + repository.commit_file(current_user, @file_path, @file_content, @commit_message, @target_branch) end end end |