@@ -120,14 +120,30 class Role < ActiveRecord::Base | |||
|
120 | 120 | find(:all, :conditions => {:builtin => 0}, :order => 'position') |
|
121 | 121 | end |
|
122 | 122 | |
|
123 | # Return the builtin 'non member' role | |
|
123 | # Return the builtin 'non member' role. If the role doesn't exist, | |
|
124 | # it will be created on the fly. | |
|
124 | 125 | def self.non_member |
|
125 |
find(:first, :conditions => {:builtin => BUILTIN_NON_MEMBER}) |
|
|
126 | non_member_role = find(:first, :conditions => {:builtin => BUILTIN_NON_MEMBER}) | |
|
127 | if non_member_role.nil? | |
|
128 | non_member_role = create(:name => 'Non member', :position => 0) do |role| | |
|
129 | role.builtin = BUILTIN_NON_MEMBER | |
|
130 | end | |
|
131 | raise 'Unable to create the non-member role.' if non_member_role.new_record? | |
|
132 | end | |
|
133 | non_member_role | |
|
126 | 134 | end |
|
127 | 135 | |
|
128 | # Return the builtin 'anonymous' role | |
|
136 | # Return the builtin 'anonymous' role. If the role doesn't exist, | |
|
137 | # it will be created on the fly. | |
|
129 | 138 | def self.anonymous |
|
130 |
find(:first, :conditions => {:builtin => BUILTIN_ANONYMOUS}) |
|
|
139 | anonymous_role = find(:first, :conditions => {:builtin => BUILTIN_ANONYMOUS}) | |
|
140 | if anonymous_role.nil? | |
|
141 | anonymous_role = create(:name => 'Anonymous', :position => 0) do |role| | |
|
142 | role.builtin = BUILTIN_ANONYMOUS | |
|
143 | end | |
|
144 | raise 'Unable to create the anonymous role.' if anonymous_role.new_record? | |
|
145 | end | |
|
146 | anonymous_role | |
|
131 | 147 | end |
|
132 | 148 | |
|
133 | 149 |
@@ -50,4 +50,55 class RoleTest < ActiveSupport::TestCase | |||
|
50 | 50 | assert_equal size - 2, role.permissions.size |
|
51 | 51 | end |
|
52 | 52 | |
|
53 | context "#anonymous" do | |
|
54 | should "return the anonymous role" do | |
|
55 | role = Role.anonymous | |
|
56 | assert role.builtin? | |
|
57 | assert_equal Role::BUILTIN_ANONYMOUS, role.builtin | |
|
58 | end | |
|
59 | ||
|
60 | context "with a missing anonymous role" do | |
|
61 | setup do | |
|
62 | Role.delete_all("builtin = #{Role::BUILTIN_ANONYMOUS}") | |
|
63 | end | |
|
64 | ||
|
65 | should "create a new anonymous role" do | |
|
66 | assert_difference('Role.count') do | |
|
67 | Role.anonymous | |
|
68 | end | |
|
69 | end | |
|
70 | ||
|
71 | should "return the anonymous role" do | |
|
72 | role = Role.anonymous | |
|
73 | assert role.builtin? | |
|
74 | assert_equal Role::BUILTIN_ANONYMOUS, role.builtin | |
|
75 | end | |
|
76 | end | |
|
77 | end | |
|
78 | ||
|
79 | context "#non_member" do | |
|
80 | should "return the non-member role" do | |
|
81 | role = Role.non_member | |
|
82 | assert role.builtin? | |
|
83 | assert_equal Role::BUILTIN_NON_MEMBER, role.builtin | |
|
84 | end | |
|
85 | ||
|
86 | context "with a missing non-member role" do | |
|
87 | setup do | |
|
88 | Role.delete_all("builtin = #{Role::BUILTIN_NON_MEMBER}") | |
|
89 | end | |
|
90 | ||
|
91 | should "create a new non-member role" do | |
|
92 | assert_difference('Role.count') do | |
|
93 | Role.non_member | |
|
94 | end | |
|
95 | end | |
|
96 | ||
|
97 | should "return the non-member role" do | |
|
98 | role = Role.non_member | |
|
99 | assert role.builtin? | |
|
100 | assert_equal Role::BUILTIN_NON_MEMBER, role.builtin | |
|
101 | end | |
|
102 | end | |
|
103 | end | |
|
53 | 104 | end |
General Comments 0
You need to be logged in to leave comments.
Login now