Commit 88c9310717d9cb288fe845449bbfa12c9b33d1ce
Exists in
master
and in
21 other branches
Merge branch 'fix_role_edition' of https://gitlab.com/participa/noosfero into role-edition
Showing
5 changed files
with
35 additions
and
6 deletions
Show diff stats
app/helpers/role_helper.rb
app/views/role/_form.html.erb
| ... | ... | @@ -6,10 +6,14 @@ |
| 6 | 6 | |
| 7 | 7 | <%= required f.text_field(:name) %> |
| 8 | 8 | |
| 9 | - <p><%= _('Permissions:') %><p> | |
| 10 | - <% permissions.keys.each do |p| %> | |
| 11 | - <%= check_box_tag("role[permissions][]", p, role.has_permission?(p), { :id => p }) %> | |
| 12 | - <%= content_tag(:label, permission_name(p), { :for => p }) %><br/> | |
| 9 | + <% permissions.each do |key| %> | |
| 10 | + <div class="permissions <%= key.downcase %>"> | |
| 11 | + <h4><%= _('%s Permissions:' % key) %></h4> | |
| 12 | + <% ActiveRecord::Base::PERMISSIONS[key].keys.each do |p| %> | |
| 13 | + <%= check_box_tag("role[permissions][]", p, role.has_permission?(p), { :id => p }) %> | |
| 14 | + <%= content_tag(:label, permission_name(p), { :for => p }) %><br/> | |
| 15 | + <% end %> | |
| 16 | + </div> | |
| 13 | 17 | <% end %> |
| 14 | 18 | |
| 15 | 19 | <% button_bar do %> | ... | ... |
app/views/role/edit.html.erb
| 1 | 1 | <h2> <%= _("Editing #{@role.name}") %> </h2> |
| 2 | 2 | |
| 3 | -<%= render :partial => 'form', :locals => { :mode => :edit, :role => @role, :permissions => ActiveRecord::Base::PERMISSIONS[@role.kind] } %> | |
| 3 | +<%= render :partial => 'form', :locals => { :mode => :edit, :role => @role, :permissions => role_available_permissions(@role) } %> | ... | ... |
app/views/role/new.html.erb
| 1 | 1 | <h2> <%= _("Create a new role") %> </h2> |
| 2 | 2 | |
| 3 | -<%= render :partial => 'form', :locals => { :mode => :create, :role => @role, :permissions => ActiveRecord::Base::PERMISSIONS[@role.kind] } %> | |
| 3 | +<%= render :partial => 'form', :locals => { :mode => :create, :role => @role, :permissions => role_available_permissions(@role) } %> | ... | ... |
test/functional/role_controller_test.rb
| ... | ... | @@ -78,4 +78,24 @@ class RoleControllerTest < ActionController::TestCase |
| 78 | 78 | get :edit, :id => role.id |
| 79 | 79 | end |
| 80 | 80 | end |
| 81 | + | |
| 82 | + should 'display permissions for both environment and profile when editing a environment role' do | |
| 83 | + role = Role.create!(:name => 'environment_role', :key => 'environment_role', :environment => Environment.default) | |
| 84 | + get :edit, :id => role.id | |
| 85 | + ['Environment', 'Profile'].each do |key| | |
| 86 | + ActiveRecord::Base::PERMISSIONS[key].each do |permission, value| | |
| 87 | + assert_select ".permissions.#{key.downcase} input##{permission}" | |
| 88 | + end | |
| 89 | + end | |
| 90 | + end | |
| 91 | + | |
| 92 | + should 'display permissions only for profile when editing a profile role' do | |
| 93 | + role = Role.create!(:name => 'profile_role', :key => 'profile_role', :environment => Environment.default) | |
| 94 | + get :edit, :id => role.id | |
| 95 | + ActiveRecord::Base::PERMISSIONS['Profile'].each do |permission, value| | |
| 96 | + assert_select "input##{permission}" | |
| 97 | + end | |
| 98 | + assert_select ".permissions.environment", false | |
| 99 | + end | |
| 100 | + | |
| 81 | 101 | end | ... | ... |