diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-02-01 12:41:01 -0600 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2017-02-17 11:29:16 +0000 |
commit | ac868482a7780a332045ef270a409ff70bcf8efd (patch) | |
tree | 99ff605262028f08718f04ac0c9e42c516d38693 /app/services/issues | |
parent | 5d8f5328baca93b9134f10ae593e71834578a9f8 (diff) | |
download | gitlab-ce-ac868482a7780a332045ef270a409ff70bcf8efd.tar.gz |
Allow issues in boards to be ordered
Diffstat (limited to 'app/services/issues')
-rw-r--r-- | app/services/issues/update_service.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/services/issues/update_service.rb b/app/services/issues/update_service.rb index 78cbf94ec69..ba06f208dbc 100644 --- a/app/services/issues/update_service.rb +++ b/app/services/issues/update_service.rb @@ -1,6 +1,7 @@ module Issues class UpdateService < Issues::BaseService def execute(issue) + handle_move_between_iids(issue) update(issue) end @@ -47,6 +48,26 @@ module Issues Issues::CloseService end + def handle_move_between_iids(issue) + if move_between_iids = params.delete(:move_between_iids) + before_iid, after_iid = move_between_iids + + issue_before = nil + if before_iid + issue_before = issue.project.issues.find_by(iid: before_iid) + issue_before = nil unless can?(current_user, :update_issue, issue_before) + end + + issue_after = nil + if after_iid + issue_after = issue.project.issues.find_by(iid: after_iid) + issue_after = nil unless can?(current_user, :update_issue, issue_after) + end + + issue.move_between(issue_before, issue_after) + end + end + private def create_confidentiality_note(issue) |