Commit 7403a5972965fa0a791d7c821b25abb21774c3f9

Authored by AntonioTerceiro
1 parent 36b7747a

ActionItem154: using stardard roles instead of ones created with sample data.


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@1378 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/models/environment.rb
... ... @@ -12,6 +12,12 @@ class Environment < ActiveRecord::Base
12 12 'manage_environment_validators' => N_('Manage environment validators'),
13 13 }
14 14  
  15 + module Roles
  16 + def self.admin
  17 + Role.find_by_key('environment_administrator')
  18 + end
  19 + end
  20 +
15 21 # returns the available features for a Environment, in the form of a
16 22 # hash, with pairs in the form <tt>'feature_name' => 'Feature name'</tt>.
17 23 def self.available_features
... ...
app/models/profile.rb
... ... @@ -10,6 +10,9 @@ class Profile &lt; ActiveRecord::Base
10 10 def self.member
11 11 ::Role.find_by_key('profile_member')
12 12 end
  13 + def self.moderator
  14 + ::Role.find_by_key('profile_moderator')
  15 + end
13 16 end
14 17  
15 18 PERMISSIONS[:profile] = {
... ...
db/migrate/013_access_control_migration.rb
... ... @@ -18,6 +18,10 @@ class AccessControlMigration &lt; ActiveRecord::Migration
18 18  
19 19 # create system-defined roles
20 20 Role.with_scope(:create => { :system => true }) do
  21 +
  22 + # Environment administrator!
  23 + Role.create!(:key => 'environment_administrator', :name => N_('Environment Administrator'), :permissions => ['view_environment_admin_panel','edit_environment_features', 'edit_environment_design', 'manage_environment_categories', 'manage_environment_roles', 'manage_environment_validators'])
  24 +
21 25 Role.create!(:key => 'profile_admin', :name => N_('Profile Administrator'), :permissions => [
22 26 'edit_profile',
23 27 'destroy_profile',
... ... @@ -27,10 +31,14 @@ class AccessControlMigration &lt; ActiveRecord::Migration
27 31 'manage_products',
28 32 ])
29 33  
30   - # members for environments, communities etc
  34 + # members for enterprises, communities etc
31 35 Role.create!(:key => "profile_member", :name => N_('Member'), :permissions => [
32   - 'post_content'
  36 + 'edit_profile', 'post_content', 'manage_products'
33 37 ])
  38 +
  39 + # moderators for enterprises, communities etc
  40 + Role.create!(:key => 'profile_moderator', :name => N_('Moderator'), :permissions => [ 'manage_memberships', 'edit_profile_design', 'manage_products' ])
  41 +
34 42 end
35 43 end
36 44  
... ...
script/anhetegua
... ... @@ -86,7 +86,7 @@ owner_role = Profile::Roles.admin
86 86  
87 87 # root user of the system, admin_role for him, the assignment of the role for him and the ownership of the system homepage
88 88 root = User.create!(:login => 'root', :email => 'root@noosfero.org', :password => 'root', :password_confirmation => 'root').person
89   -admin_role = Role.create!(:name => 'admin', :permissions => ['view_environment_admin_panel','edit_environment_features', 'edit_environment_design', 'manage_environment_categories', 'manage_environment_roles', 'manage_environment_validators'])
  89 +admin_role = Environment::Roles.admin
90 90  
91 91 RoleAssignment.create!(:accessor => root, :role => admin_role, :resource => Environment.default)
92 92  
... ... @@ -97,9 +97,8 @@ empa = Enterprise.create!(:name =&gt; &#39;Empreendimento A&#39;, :identifier =&gt; &#39;empreendi
97 97 empa.affiliate(ze, owner_role)
98 98 colivre.affiliate(ze, owner_role)
99 99  
100   -member_role = Role.create!(:name => 'membro', :permissions => ['edit_profile', 'post_content', 'manage_products'] )
101   -moderator_role = Role.create!(:name => 'moderador', :permissions => ['manage_memberships', 'edit_profile_design', 'manage_products'] )
102   -
  100 +member_role = Profile::Roles.member
  101 +moderator_role = Profile::Roles.moderator
103 102  
104 103 # product categories
105 104 produtos = ProductCategory.create!(:name => 'Produtos', :environment => Environment.default, :display_color => 4)
... ...
test/unit/environment_test.rb
... ... @@ -258,4 +258,9 @@ class EnvironmentTest &lt; Test::Unit::TestCase
258 258 assert_equal 'my fine environment', env.description
259 259 end
260 260  
  261 + should 'have admin role' do
  262 + Role.expects(:find_by_key).with('environment_administrator').returns(Role.new)
  263 + assert_kind_of Role, Environment::Roles.admin
  264 + end
  265 +
261 266 end
... ...
test/unit/profile_test.rb
... ... @@ -309,6 +309,11 @@ class ProfileTest &lt; Test::Unit::TestCase
309 309 assert_kind_of Role, Profile::Roles.member
310 310 end
311 311  
  312 + should 'have moderator role' do
  313 + Role.expects(:find_by_key).with('profile_moderator').returns(Role.new)
  314 + assert_kind_of Role, Profile::Roles.moderator
  315 + end
  316 +
312 317 should 'not have members by default' do
313 318 assert_equal false, Profile.new.has_members?
314 319 end
... ...