diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-09-01 13:47:32 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-09-01 13:47:32 +0300 |
commit | 10854ad8256c605343e8f56b5bf46f7e27b90524 (patch) | |
tree | 9a9f102cf746e01d1abcfbdf9f6af03c292d59af /app/services/issues | |
parent | aeb005fcf82660b4e37ef37856219db6b961627e (diff) | |
parent | 7e71f958ac721f5c36c20a5366c1e46adce4c67d (diff) |
Merge branch 'move-action' into 'master'
Merge request to address /move functionality.
See merge request !13436
Diffstat (limited to 'app/services/issues')
-rw-r--r-- | app/services/issues/update_service.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb index 8d918ccc635..deb4990eb4f 100644 --- a/app/services/issues/update_service.rb +++ b/app/services/issues/update_service.rb @@ -6,7 +6,7 @@ module Issues handle_move_between_iids(issue) filter_spam_check_params change_issue_duplicate(issue) - update(issue) + move_issue_to_new_project(issue) || update(issue) end def before_update(issue) @@ -74,6 +74,17 @@ module Issues end end + def move_issue_to_new_project(issue) + target_project = params.delete(:target_project) + + return unless target_project && + issue.can_move?(current_user, target_project) && + target_project != issue.project + + update(issue) + Issues::MoveService.new(project, current_user).execute(issue, target_project) + end + private def get_issue_if_allowed(project, iid) |