From 79274989dfaae9697ff2253243c895284799e0aa Mon Sep 17 00:00:00 2001 From: MoisesMachado Date: Wed, 4 Jun 2008 14:54:38 +0000 Subject: [PATCH] ActionItem35: finished action item --- app/controllers/my_profile/profile_members_controller.rb | 2 +- app/helpers/application_helper.rb | 2 +- app/helpers/forms_helper.rb | 16 ++++++++++------ app/models/environment.rb | 2 +- app/models/person.rb | 2 +- app/models/profile.rb | 10 ++++++++-- app/views/profile_members/change_role.rhtml | 5 ++--- app/views/profile_members/index.rhtml | 18 +++++++++++++----- app/views/role/_form.rhtml | 2 +- app/views/role/new.rhtml | 2 +- po/pt_BR/noosfero.po | 4 ++-- test/functional/profile_members_controller_test.rb | 4 ++-- test/functional/search_controller_test.rb | 1 - vendor/plugins/access_control/lib/acts_as_accessible.rb | 6 ++++++ vendor/plugins/access_control/lib/role.rb | 10 +++++++++- vendor/plugins/access_control/test/role_test.rb | 11 +++++++++-- 16 files changed, 67 insertions(+), 30 deletions(-) diff --git a/app/controllers/my_profile/profile_members_controller.rb b/app/controllers/my_profile/profile_members_controller.rb index b71e5ce..df30604 100644 --- a/app/controllers/my_profile/profile_members_controller.rb +++ b/app/controllers/my_profile/profile_members_controller.rb @@ -23,7 +23,7 @@ class ProfileMembersController < MyProfileController end def change_role - @roles = Role.find(:all).select{ |r| r.has_kind?(:profile) } + @roles = profile.roles @member = Person.find(params[:id]) @associations = @member.find_roles(@profile) end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bf955cb..a71237f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -322,7 +322,7 @@ module ApplicationHelper bt_submit = submit_tag(label, html_options.merge(:class => the_class)) - bt_submit + bt_submit + bt_cancel end def button_to_function(type, label, js_code, html_options = {}) diff --git a/app/helpers/forms_helper.rb b/app/helpers/forms_helper.rb index a986af4..af686d8 100644 --- a/app/helpers/forms_helper.rb +++ b/app/helpers/forms_helper.rb @@ -1,25 +1,29 @@ module FormsHelper def generate_form( name, obj, fields={} ) - labelled_form_for name, obj do |f| - f.text_field(:name) - end - end def labelled_radio_button( human_name, name, value, checked = false, options = {} ) - options[:id] ||= 'radio-' + rand.to_s + options[:id] ||= 'radio-' + FormsHelper.next_id_number radio_button_tag( name, value, checked, options ) + content_tag( 'label', human_name, :for => options[:id] ) end def labelled_check_box( human_name, name, value = "1", checked = false, options = {} ) - options[:id] ||= 'checkbox-' + rand.to_s + options[:id] ||= 'checkbox-' + FormsHelper.next_id_number check_box_tag( name, value, checked, options ) + content_tag( 'label', human_name, :for => options[:id] ) end +protected + def self.next_id_number + if defined? @@id_num + @@id_num.next! + else + @@id_num = '0' + end + end end diff --git a/app/models/environment.rb b/app/models/environment.rb index 7bdc6f9..42e67d1 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -3,7 +3,7 @@ # domains. class Environment < ActiveRecord::Base - PERMISSIONS[:environment] = { + PERMISSIONS['Environment'] = { 'view_environment_admin_panel' => N_('View environment admin panel'), 'edit_environment_features' => N_('Edit environment features'), 'edit_environment_design' => N_('Edit environment design'), diff --git a/app/models/person.rb b/app/models/person.rb index 8d7c966..2756bac 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -66,7 +66,7 @@ class Person < Profile def is_admin? role_assignments.map{|ra|ra.role.permissions}.any? do |ps| ps.any? do |p| - ActiveRecord::Base::PERMISSIONS[:environment].keys.include?(p) + ActiveRecord::Base::PERMISSIONS['Environment'].keys.include?(p) end end end diff --git a/app/models/profile.rb b/app/models/profile.rb index 598efe2..dd456f3 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -13,9 +13,15 @@ class Profile < ActiveRecord::Base def self.moderator ::Role.find_by_key('profile_moderator') end + def self.owner + ::Role.find_by_key('profile_owner') + end + def self.editor + ::Role.find_by_key('profile_editor') + end end - PERMISSIONS[:profile] = { + PERMISSIONS['Profile'] = { 'edit_profile' => N_('Edit profile'), 'destroy_profile' => N_('Destroy profile'), 'manage_memberships' => N_('Manage memberships'), @@ -26,7 +32,7 @@ class Profile < ActiveRecord::Base 'validate_enterprise' => N_('Validate enterprise'), 'peform_task' => N_('Peform task'), } - + acts_as_accessible acts_as_having_boxes diff --git a/app/views/profile_members/change_role.rhtml b/app/views/profile_members/change_role.rhtml index 7f14e9c..207e172 100644 --- a/app/views/profile_members/change_role.rhtml +++ b/app/views/profile_members/change_role.rhtml @@ -1,11 +1,10 @@ -<%= _('Changing role of %s') % @member.name %> +

<%= _('Changing role of %s') % @member.name %>

<% labelled_form_for :member, @member, :url => {:action => 'update_roles'} do |f| %> <%= _('Roles:') %>
<% @roles.each do |r| %> - <%= check_box_tag "roles[]", r.id, @associations.map(&:role).include?(r) %> - <%= r.name.capitalize %>
+ <%= labelled_check_box(r.name, 'roles[]', r.id, @associations.map(&:role).include?(r) ) %>
<% end %> <%= hidden_field_tag 'person', @member.id %> diff --git a/app/views/profile_members/index.rhtml b/app/views/profile_members/index.rhtml index 0293c56..1c5412f 100644 --- a/app/views/profile_members/index.rhtml +++ b/app/views/profile_members/index.rhtml @@ -2,12 +2,20 @@ <%= link_to _('Affiliate yourself'), :action => 'add_role', :person => current_user.person, :role => @member_role if @member_role %> -