summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2016-02-17 12:49:38 +0100
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2016-02-22 12:50:25 +0100
commit15a6633999c81387245cabf129dd2fbb04650c95 (patch)
treefad334998fa38ebc1c5540b0cef2136816f38e72
parent829830ae9df9e777716e03fa393a328d3ff882b0 (diff)
downloadgitlab-ce-15a6633999c81387245cabf129dd2fbb04650c95.tar.gz
Revert authors ability to assign anyone
-rw-r--r--app/controllers/autocomplete_controller.rb2
-rw-r--r--app/models/concerns/issuable.rb5
-rw-r--r--app/services/issuable_base_service.rb11
-rw-r--r--app/services/issues/base_service.rb4
-rw-r--r--app/services/merge_requests/base_service.rb4
-rw-r--r--app/views/shared/issuable/_sidebar.html.haml2
-rw-r--r--spec/controllers/autocomplete_controller_spec.rb4
-rw-r--r--spec/models/concerns/issuable_spec.rb14
8 files changed, 11 insertions, 35 deletions
diff --git a/app/controllers/autocomplete_controller.rb b/app/controllers/autocomplete_controller.rb
index 5d81a996fba..1e4fc612a3c 100644
--- a/app/controllers/autocomplete_controller.rb
+++ b/app/controllers/autocomplete_controller.rb
@@ -15,7 +15,7 @@ class AutocompleteController < ApplicationController
@users = [*@users, current_user]
end
- unless params[:author_id] == "false"
+ if params[:author_id] && params[:author_id] != "false"
@users = [User.find(params[:author_id]), *@users]
end
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index f9314a241b2..e5f089fb8a0 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -116,11 +116,6 @@ module Issuable
assignee_id_changed?
end
- def can_assign_user?(current_user)
- author == current_user ||
- Ability.abilities.allowed?(current_user, :"admin_#{to_ability_name}", project)
- end
-
def open?
opened? || reopened?
end
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 99a28b8c637..ca87dca4a70 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -33,7 +33,7 @@ class IssuableBaseService < BaseService
end
end
- def filter_params(issuable_ability_name, issuable)
+ def filter_params(issuable_ability_name = :issue)
params[:assignee_id] = "" if params[:assignee_id] == IssuableFinder::NONE
params[:milestone_id] = "" if params[:milestone_id] == IssuableFinder::NONE
@@ -42,18 +42,13 @@ class IssuableBaseService < BaseService
unless can?(current_user, ability, project)
params.delete(:milestone_id)
params.delete(:label_ids)
-
- # The author of an issue can be assigned, to signal the ball being in his/her
- # court. This allow him/her to reassign the issue back to the reviewer.
- if issuable && !(issuable.author == current_user)
- params.delete(:assignee_id)
- end
+ params.delete(:assignee_id)
end
end
def update(issuable)
change_state(issuable)
- filter_params(issuable)
+ filter_params
old_labels = issuable.labels.to_a
if params.present? && issuable.update_attributes(params.merge(updated_by: current_user))
diff --git a/app/services/issues/base_service.rb b/app/services/issues/base_service.rb
index 4527d1c74e0..770f32de944 100644
--- a/app/services/issues/base_service.rb
+++ b/app/services/issues/base_service.rb
@@ -10,8 +10,8 @@ module Issues
private
- def filter_params(issuable = nil)
- super(:issue, issuable)
+ def filter_params
+ super(:issue)
end
def execute_hooks(issue, action = 'open')
diff --git a/app/services/merge_requests/base_service.rb b/app/services/merge_requests/base_service.rb
index e472381ba36..7b306a8a531 100644
--- a/app/services/merge_requests/base_service.rb
+++ b/app/services/merge_requests/base_service.rb
@@ -23,8 +23,8 @@ module MergeRequests
private
- def filter_params(issuable = nil)
- super(:merge_request, issuable)
+ def filter_params
+ super(:merge_request)
end
end
end
diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml
index 1df44eaa64f..ef351fe8093 100644
--- a/app/views/shared/issuable/_sidebar.html.haml
+++ b/app/views/shared/issuable/_sidebar.html.haml
@@ -30,7 +30,7 @@
.title
%label
Assignee
- - if issuable.can_assign_user?(current_user)
+ - if can?(current_user, :"admin_#{issuable.to_ability_name}", @project)
.pull-right
= link_to 'Edit', '#', class: 'edit-link'
.value
diff --git a/spec/controllers/autocomplete_controller_spec.rb b/spec/controllers/autocomplete_controller_spec.rb
index 0754a2889fc..612e344c411 100644
--- a/spec/controllers/autocomplete_controller_spec.rb
+++ b/spec/controllers/autocomplete_controller_spec.rb
@@ -12,13 +12,13 @@ describe AutocompleteController do
project.team << [user, :master]
end
- let(:body) { JSON.parse(response.body) }
-
describe 'GET #users with project ID' do
before do
get(:users, project_id: project.id)
end
+ let(:body) { JSON.parse(response.body) }
+
it { expect(body).to be_kind_of(Array) }
it { expect(body.size).to eq 1 }
it { expect(body.first["username"]).to eq user.username }
diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb
index 16fc1a6069a..600089802b2 100644
--- a/spec/models/concerns/issuable_spec.rb
+++ b/spec/models/concerns/issuable_spec.rb
@@ -111,20 +111,6 @@ describe Issue, "Issuable" do
end
end
- describe "#can_assign_user?" do
- let(:author) { build(:user) }
- let(:issue) { build(:issue, author: author)}
-
- it "Allows the author to change the assignee" do
- expect(issue.can_assign_user?(author)).to be_truthy
- end
-
- it "Doesn't allow others, non-team members" do
- other_user = build(:user)
- expect(issue.can_assign_user?(other_user)).to be_falsey
- end
- end
-
describe "votes" do
before do
author = create :user