Commit 3041e7ee8d303ed3166f233674c4726f7d6ca7af
1 parent
adbea539
Exists in
master
and in
29 other branches
ActionItem5: cleaned some code and made some views more interconected and accessible
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@561 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
13 changed files
with
40 additions
and
45 deletions
Show diff stats
app/controllers/profile_admin/enterprise_editor_controller.rb
@@ -4,8 +4,7 @@ class EnterpriseEditorController < ProfileAdminController | @@ -4,8 +4,7 @@ class EnterpriseEditorController < ProfileAdminController | ||
4 | 4 | ||
5 | # Show details about an enterprise | 5 | # Show details about an enterprise |
6 | def index | 6 | def index |
7 | - @my_enterprises = @person.enterprises | ||
8 | - @my_pending_enterprises = @person.pending_enterprises | 7 | + @enterprise = @profile |
9 | end | 8 | end |
10 | 9 | ||
11 | # Provides an interface to editing the enterprise details | 10 | # Provides an interface to editing the enterprise details |
@@ -23,13 +22,6 @@ class EnterpriseEditorController < ProfileAdminController | @@ -23,13 +22,6 @@ class EnterpriseEditorController < ProfileAdminController | ||
23 | render :action => 'edit' | 22 | render :action => 'edit' |
24 | end | 23 | end |
25 | end | 24 | end |
26 | - | ||
27 | - # Make the current user a new member of the enterprise | ||
28 | - def affiliate | ||
29 | - member_role = Role.find_by_name('member') || Role.create(:name => 'member') | ||
30 | - @enterprise.affiliate(@person,member_role) | ||
31 | - redirect_to :action => 'index' | ||
32 | - end | ||
33 | 25 | ||
34 | # Elimitates the enterprise of the system | 26 | # Elimitates the enterprise of the system |
35 | def destroy | 27 | def destroy |
app/controllers/profile_admin/membership_editor_controller.rb
@@ -14,8 +14,8 @@ class MembershipEditorController < ProfileAdminController | @@ -14,8 +14,8 @@ class MembershipEditorController < ProfileAdminController | ||
14 | @enterprise = Enterprise.new(params[:enterprise]) | 14 | @enterprise = Enterprise.new(params[:enterprise]) |
15 | @enterprise.organization_info = OrganizationInfo.new(params[:organization]) | 15 | @enterprise.organization_info = OrganizationInfo.new(params[:organization]) |
16 | if @enterprise.save | 16 | if @enterprise.save |
17 | - @enterprise.affiliate(@person, Role.find_by_name('owner')) | ||
18 | - flash[:notice] = _('The enterprise was succesfully created, the validation entity will cotact you as soon as your enterprise is approved') | 17 | + @enterprise.affiliate(current_user.person, Role.find(:all, :conditions => {:name => ['owner', 'member', 'moderator']})) |
18 | + flash[:notice] = _('The enterprise was successfully created, the validation entity will cotact you as soon as your enterprise is approved') | ||
19 | redirect_to :action => 'index' | 19 | redirect_to :action => 'index' |
20 | else | 20 | else |
21 | flash[:notice] = _('Enterprise was not created') | 21 | flash[:notice] = _('Enterprise was not created') |
app/models/person.rb
@@ -34,7 +34,7 @@ class Person < Profile | @@ -34,7 +34,7 @@ class Person < Profile | ||
34 | :all, | 34 | :all, |
35 | :conditions => self.class.conditions_for_profiles(conditions, self), | 35 | :conditions => self.class.conditions_for_profiles(conditions, self), |
36 | :joins => "LEFT JOIN role_assignments ON profiles.id = role_assignments.resource_id AND role_assignments.resource_type = \"#{Profile.base_class.name}\"", | 36 | :joins => "LEFT JOIN role_assignments ON profiles.id = role_assignments.resource_id AND role_assignments.resource_type = \"#{Profile.base_class.name}\"", |
37 | - :select => 'profiles.*') | 37 | + :select => 'profiles.*').uniq |
38 | end | 38 | end |
39 | 39 | ||
40 | def info | 40 | def info |
app/models/profile.rb
@@ -102,11 +102,14 @@ class Profile < ActiveRecord::Base | @@ -102,11 +102,14 @@ class Profile < ActiveRecord::Base | ||
102 | homepage.children.find(:all, :limit => limit, :order => 'created_on desc') | 102 | homepage.children.find(:all, :limit => limit, :order => 'created_on desc') |
103 | end | 103 | end |
104 | 104 | ||
105 | - def affiliate(person, role) | ||
106 | - unless RoleAssignment.find(:first, :conditions => {:person_id => person, :role_id => role, :resource_id => self, :resource_type => self.class.base_class.name}) | ||
107 | - RoleAssignment.new(:person => person, :role => role, :resource => self).save | ||
108 | - else | ||
109 | - false | ||
110 | - end | 105 | + def affiliate(person, roles) |
106 | + roles = [roles] unless roles.kind_of?(Array) | ||
107 | + roles.map do |role| | ||
108 | + unless RoleAssignment.find(:first, :conditions => {:person_id => person, :role_id => role, :resource_id => self, :resource_type => self.class.base_class.name}) | ||
109 | + RoleAssignment.new(:person => person, :role => role, :resource => self).save | ||
110 | + else | ||
111 | + false | ||
112 | + end | ||
113 | + end.any? | ||
111 | end | 114 | end |
112 | end | 115 | end |
app/models/role.rb
@@ -3,9 +3,9 @@ class Role < ActiveRecord::Base | @@ -3,9 +3,9 @@ class Role < ActiveRecord::Base | ||
3 | PERMISSIONS = { | 3 | PERMISSIONS = { |
4 | :profile => { | 4 | :profile => { |
5 | 'edit_profile' => N_('Edit profile'), | 5 | 'edit_profile' => N_('Edit profile'), |
6 | - 'post_content' => N_('Post content'), | ||
7 | 'destroy_profile' => N_('Destroy profile'), | 6 | 'destroy_profile' => N_('Destroy profile'), |
8 | - 'manage_membership' => N_('Manage membership'), | 7 | + 'manage_memberships' => N_('Manage memberships'), |
8 | + 'post_content' => N_('Post content'), | ||
9 | 'moderate_content' => N_('Moderate content'), | 9 | 'moderate_content' => N_('Moderate content'), |
10 | }, | 10 | }, |
11 | :system => { | 11 | :system => { |
app/views/account/index.rhtml
@@ -20,6 +20,10 @@ | @@ -20,6 +20,10 @@ | ||
20 | <%= _('Manage your content.') %> | 20 | <%= _('Manage your content.') %> |
21 | </p> | 21 | </p> |
22 | 22 | ||
23 | +<p> | ||
24 | +<%= link_to_myprofile(_('Manage memberships.'), :controller => 'membership_editor') %> | ||
25 | +<%= _('Manage your affiliation with other profiles.') %> | ||
26 | +</p> | ||
23 | 27 | ||
24 | <p> | 28 | <p> |
25 | <%= link_to _('Logout.'), :action => 'logout' %> | 29 | <%= link_to _('Logout.'), :action => 'logout' %> |
app/views/enterprise_editor/_enterprise.rhtml
@@ -1,17 +0,0 @@ | @@ -1,17 +0,0 @@ | ||
1 | -<li> | ||
2 | -<%= link_to enterprise.name, :action => 'show', :id => enterprise %> | ||
3 | -<%= link_to _('Edit'), :action => 'edit', :id => enterprise %> | ||
4 | -<%= help _('Change the infomation about the enterprise') %> | ||
5 | -<%= link_to _('Delete'), :action => 'destroy', :id => enterprise %> | ||
6 | -<%= help _('Remove the enterprise from the system') %> | ||
7 | -<%= link_to _('Affiliate'), :action => 'affiliate', :id => enterprise unless @my_enterprises.include?(enterprise) %> | ||
8 | -<%= help _('Be a member of the enterprise') unless @my_enterprises.include?(enterprise) %> | ||
9 | -<%= link_to _('Activate'), :action => 'activate', :id => enterprise unless enterprise.active %> | ||
10 | -<%= help _('Activate the profile of an approved enterprise') unless enterprise.active %> | ||
11 | -<% unless enterprise.approved? %> | ||
12 | - <%= link_to _('Approve'), :action => 'approve', :id => enterprise %> | ||
13 | - <%= help _('Approve a submitted enterprise profile') %> | ||
14 | - <%= link_to _('Reject'), :action => 'reject', :id => enterprise %> | ||
15 | - <%= help _('Reject a submitted enterprise profile') %> | ||
16 | -<% end %> | ||
17 | -</li> |
app/views/enterprise_editor/index.rhtml
@@ -15,7 +15,5 @@ | @@ -15,7 +15,5 @@ | ||
15 | <%= help _('Change the information about the enterprise') %> | 15 | <%= help _('Change the information about the enterprise') %> |
16 | <%= link_to _('Delete enterprise'), :action => 'destroy', :id => @profile %> | 16 | <%= link_to _('Delete enterprise'), :action => 'destroy', :id => @profile %> |
17 | <%= help _('Remove the enterprise from the system') %> | 17 | <%= help _('Remove the enterprise from the system') %> |
18 | -<%= link_to _('Affiliate'), :action => 'affiliate' unless @my_enterprises.include?(@profile) %> | ||
19 | -<%= help _('Be a member of the enterprise') unless @my_enterprises.include?(@profile) %> | ||
20 | -<%= link_to _('Activate'), :action => 'activate', :id => @profile if @my_pending_enterprises.include?(@profile) %> | ||
21 | -<%= help _('Activate an approved enterprise') if @my_pending_enterprises.include?(@profile) %> | 18 | +<%= link_to _('Activate'), :action => 'activate', :id => @profile unless @profile.active? %> |
19 | +<%= help _('Activate an approved enterprise') unless @profile.active? %> |
app/views/profile_editor/index.rhtml
@@ -2,4 +2,10 @@ | @@ -2,4 +2,10 @@ | ||
2 | 2 | ||
3 | <%= display_profile_info(profile) %> | 3 | <%= display_profile_info(profile) %> |
4 | 4 | ||
5 | -<%= link_to _('Edit'), :action => 'edit' %> | 5 | +<p> <%= link_to _('Edit'), :action => 'edit' %> </p> |
6 | + | ||
7 | +<p> <%= link_to _('Manage members'), :controller => 'profile_members' %> </p> | ||
8 | + | ||
9 | +<% if @profile.class == Enterprise %> | ||
10 | + <p> <%= link_to _('Edit enterprise info'), :controller => 'enterprise_editor'%> </p> | ||
11 | +<% end %> |
app/views/profile_members/affiliate.rhtml
app/views/profile_members/change_role.rhtml
app/views/profile_members/index.rhtml
1 | <h2> <%= _('Listing Members') %> </h2> | 1 | <h2> <%= _('Listing Members') %> </h2> |
2 | 2 | ||
3 | -<%= link_to _('Affiliate'), :action => 'add_role', :person => current_user.person, :role => Role.find_by_name('member') %> | 3 | +<%= link_to _('Affiliate yourself'), :action => 'add_role', :person => current_user.person, :role => Role.find_by_name('member') %> |
4 | 4 | ||
5 | <ul> | 5 | <ul> |
6 | <% @members.each do |m| %> | 6 | <% @members.each do |m| %> |
test/fixtures/roles.yml
@@ -8,5 +8,11 @@ two: | @@ -8,5 +8,11 @@ two: | ||
8 | id: 2 | 8 | id: 2 |
9 | name: 'owner' | 9 | name: 'owner' |
10 | permissions: | 10 | permissions: |
11 | - - manage_membership | ||
12 | - - moderate_content | 11 | + - destroy_profile |
12 | + - edit_profile | ||
13 | +three: | ||
14 | + id: 3 | ||
15 | + name: 'moderator' | ||
16 | + permissions: | ||
17 | + - manage_memberships | ||
18 | + - moderate_content |