Skip to content

Commit f155580

Browse files
Remove Rubygem#owned_by?
Ownership has proven to be more complicated than expected, and these methods were primarily used by our policy code. The logic has been extracted into GemPermissions, where we've been able to get a bit more exact.
1 parent cffa861 commit f155580

File tree

2 files changed

+2
-122
lines changed

2 files changed

+2
-122
lines changed

app/models/rubygem.rb

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -185,22 +185,6 @@ def indexed_versions?
185185
versions.indexed.any?
186186
end
187187

188-
def owned_by?(user)
189-
owned_by_with_role?(user, :maintainer)
190-
end
191-
192-
def owned_by_with_role?(user, minimum_required_role)
193-
return false if user.blank?
194-
195-
if owned_by_organization?
196-
organization.memberships.where(user: user).with_minimum_role(minimum_required_role).exists?
197-
else
198-
ownerships.user_with_minimum_role(user, minimum_required_role).exists?
199-
end
200-
rescue KeyError
201-
false
202-
end
203-
204188
def unconfirmed_ownerships
205189
ownerships_including_unconfirmed.unconfirmed
206190
end

test/models/rubygem_test.rb

Lines changed: 2 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -410,51 +410,6 @@ class RubygemTest < ActiveSupport::TestCase
410410
end
411411
end
412412

413-
context "with a user" do
414-
setup do
415-
@rubygem.save
416-
@user = create(:user)
417-
end
418-
419-
should "be owned by a user in ownership" do
420-
create(:ownership, user: @user, rubygem: @rubygem)
421-
422-
assert @rubygem.owned_by?(@user)
423-
refute_predicate @rubygem, :unowned?
424-
end
425-
426-
should "be not owned if no ownerships" do
427-
assert_empty @rubygem.ownerships
428-
refute @rubygem.owned_by?(@user)
429-
assert_predicate @rubygem, :unowned?
430-
end
431-
432-
should "be not owned if no user" do
433-
refute @rubygem.owned_by?(nil)
434-
assert_predicate @rubygem, :unowned?
435-
end
436-
end
437-
438-
context "with a user that belongs to an organization" do
439-
setup do
440-
@owner = create(:user)
441-
@admin = create(:user)
442-
@maintainer = create(:user)
443-
@guest = create(:user)
444-
445-
@organization = create(:organization, admins: [@admin], owners: [@owner], maintainers: [@maintainer], rubygems: [@rubygem])
446-
end
447-
448-
should "be owned by organization user" do
449-
assert @rubygem.owned_by?(@owner)
450-
assert @rubygem.owned_by?(@admin)
451-
assert @rubygem.owned_by?(@maintainer)
452-
refute @rubygem.owned_by?(@guest)
453-
454-
refute_predicate @rubygem, :unowned?
455-
end
456-
end
457-
458413
context "with subscribed users" do
459414
setup do
460415
@subscribed_user = create(:user)
@@ -665,8 +620,8 @@ class RubygemTest < ActiveSupport::TestCase
665620
@rubygem_with_version.versions.first.update! indexed: false
666621
end
667622

668-
should "still be owned" do
669-
assert @rubygem_with_version.ownerships.include?(@owner)
623+
should "still have ownerships" do
624+
assert_predicate @rubygem_with_version.ownerships.where(user: @owner), :exists?
670625
end
671626

672627
should "no longer be indexed" do
@@ -1182,63 +1137,4 @@ class RubygemTest < ActiveSupport::TestCase
11821137
refute_predicate @version_three, :yanked?
11831138
end
11841139
end
1185-
1186-
context "#owned_by_with_role?" do
1187-
setup do
1188-
@rubygem = create(:rubygem)
1189-
@owner = create(:user)
1190-
end
1191-
1192-
context "when the user is not an owner of a gem" do
1193-
should "return false" do
1194-
refute @rubygem.owned_by_with_role?(@owner, :maintainer)
1195-
end
1196-
end
1197-
1198-
context "when the user is an owner of a gem" do
1199-
setup do
1200-
@ownership = create(:ownership, user: @owner, rubygem: @rubygem)
1201-
end
1202-
1203-
should "return true" do
1204-
assert @rubygem.owned_by_with_role?(@owner, :maintainer)
1205-
end
1206-
end
1207-
1208-
context "when the role is less than the given value" do
1209-
setup do
1210-
@ownership = create(:ownership, user: @owner, rubygem: @rubygem, role: :maintainer)
1211-
end
1212-
1213-
should "return false" do
1214-
refute @rubygem.owned_by_with_role?(@owner, :owner)
1215-
end
1216-
end
1217-
1218-
context "when the role is more than the given value" do
1219-
setup do
1220-
@ownership = create(:ownership, user: @owner, rubygem: @rubygem, role: :owner)
1221-
end
1222-
1223-
should "return true" do
1224-
assert @rubygem.owned_by_with_role?(@owner, :maintainer)
1225-
end
1226-
end
1227-
1228-
context "when the role is equal to the given role" do
1229-
setup do
1230-
@ownership = create(:ownership, user: @owner, rubygem: @rubygem, role: :owner)
1231-
end
1232-
1233-
should "return true" do
1234-
assert @rubygem.owned_by_with_role?(@owner, :owner)
1235-
end
1236-
end
1237-
1238-
context "when the given role does not exist" do
1239-
should "not raise an argument" do
1240-
refute @rubygem.owned_by_with_role?(@owner, :nonexistent_role)
1241-
end
1242-
end
1243-
end
12441140
end

0 commit comments

Comments
 (0)