##// END OF EJS Templates
Merged r8863 from trunk....
Jean-Philippe Lang -
r8992:92dde0d75f33
parent child
Show More
@@ -50,7 +50,17 class Member < ActiveRecord::Base
50
50
51 def <=>(member)
51 def <=>(member)
52 a, b = roles.sort.first, member.roles.sort.first
52 a, b = roles.sort.first, member.roles.sort.first
53 a == b ? (principal <=> member.principal) : (a <=> b)
53 if a == b
54 if principal
55 principal <=> member.principal
56 else
57 1
58 end
59 elsif a
60 a <=> b
61 else
62 1
63 end
54 end
64 end
55
65
56 def deletable?
66 def deletable?
@@ -40,7 +40,9 class Principal < ActiveRecord::Base
40 end
40 end
41
41
42 def <=>(principal)
42 def <=>(principal)
43 if self.class.name == principal.class.name
43 if principal.nil?
44 -1
45 elsif self.class.name == principal.class.name
44 self.to_s.downcase <=> principal.to_s.downcase
46 self.to_s.downcase <=> principal.to_s.downcase
45 else
47 else
46 # groups after users
48 # groups after users
@@ -82,6 +82,23 class MemberTest < ActiveSupport::TestCase
82 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
82 assert_raise(ActiveRecord::RecordNotFound) { Member.find(@jsmith.id) }
83 end
83 end
84
84
85 def test_sort_without_roles
86 a = Member.new(:roles => [Role.first])
87 b = Member.new
88
89 assert_equal -1, a <=> b
90 assert_equal 1, b <=> a
91 end
92
93 def test_sort_without_principal
94 role = Role.first
95 a = Member.new(:roles => [role], :principal => User.first)
96 b = Member.new(:roles => [role])
97
98 assert_equal -1, a <=> b
99 assert_equal 1, b <=> a
100 end
101
85 context "removing permissions" do
102 context "removing permissions" do
86 setup do
103 setup do
87 Watcher.delete_all("user_id = 9")
104 Watcher.delete_all("user_id = 9")
General Comments 0
You need to be logged in to leave comments. Login now