Commit 7403a5972965fa0a791d7c821b25abb21774c3f9
1 parent
36b7747a
Exists in
master
and in
29 other branches
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
Showing
6 changed files
with
32 additions
and
6 deletions
Show diff stats
app/models/environment.rb
@@ -12,6 +12,12 @@ class Environment < ActiveRecord::Base | @@ -12,6 +12,12 @@ class Environment < ActiveRecord::Base | ||
12 | 'manage_environment_validators' => N_('Manage environment validators'), | 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 | # returns the available features for a Environment, in the form of a | 21 | # returns the available features for a Environment, in the form of a |
16 | # hash, with pairs in the form <tt>'feature_name' => 'Feature name'</tt>. | 22 | # hash, with pairs in the form <tt>'feature_name' => 'Feature name'</tt>. |
17 | def self.available_features | 23 | def self.available_features |
app/models/profile.rb
@@ -10,6 +10,9 @@ class Profile < ActiveRecord::Base | @@ -10,6 +10,9 @@ class Profile < ActiveRecord::Base | ||
10 | def self.member | 10 | def self.member |
11 | ::Role.find_by_key('profile_member') | 11 | ::Role.find_by_key('profile_member') |
12 | end | 12 | end |
13 | + def self.moderator | ||
14 | + ::Role.find_by_key('profile_moderator') | ||
15 | + end | ||
13 | end | 16 | end |
14 | 17 | ||
15 | PERMISSIONS[:profile] = { | 18 | PERMISSIONS[:profile] = { |
db/migrate/013_access_control_migration.rb
@@ -18,6 +18,10 @@ class AccessControlMigration < ActiveRecord::Migration | @@ -18,6 +18,10 @@ class AccessControlMigration < ActiveRecord::Migration | ||
18 | 18 | ||
19 | # create system-defined roles | 19 | # create system-defined roles |
20 | Role.with_scope(:create => { :system => true }) do | 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 | Role.create!(:key => 'profile_admin', :name => N_('Profile Administrator'), :permissions => [ | 25 | Role.create!(:key => 'profile_admin', :name => N_('Profile Administrator'), :permissions => [ |
22 | 'edit_profile', | 26 | 'edit_profile', |
23 | 'destroy_profile', | 27 | 'destroy_profile', |
@@ -27,10 +31,14 @@ class AccessControlMigration < ActiveRecord::Migration | @@ -27,10 +31,14 @@ class AccessControlMigration < ActiveRecord::Migration | ||
27 | 'manage_products', | 31 | 'manage_products', |
28 | ]) | 32 | ]) |
29 | 33 | ||
30 | - # members for environments, communities etc | 34 | + # members for enterprises, communities etc |
31 | Role.create!(:key => "profile_member", :name => N_('Member'), :permissions => [ | 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 | end | 42 | end |
35 | end | 43 | end |
36 | 44 |
script/anhetegua
@@ -86,7 +86,7 @@ owner_role = Profile::Roles.admin | @@ -86,7 +86,7 @@ owner_role = Profile::Roles.admin | ||
86 | 86 | ||
87 | # root user of the system, admin_role for him, the assignment of the role for him and the ownership of the system homepage | 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 | root = User.create!(:login => 'root', :email => 'root@noosfero.org', :password => 'root', :password_confirmation => 'root').person | 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 | RoleAssignment.create!(:accessor => root, :role => admin_role, :resource => Environment.default) | 91 | RoleAssignment.create!(:accessor => root, :role => admin_role, :resource => Environment.default) |
92 | 92 | ||
@@ -97,9 +97,8 @@ empa = Enterprise.create!(:name => 'Empreendimento A', :identifier => 'empreendi | @@ -97,9 +97,8 @@ empa = Enterprise.create!(:name => 'Empreendimento A', :identifier => 'empreendi | ||
97 | empa.affiliate(ze, owner_role) | 97 | empa.affiliate(ze, owner_role) |
98 | colivre.affiliate(ze, owner_role) | 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 | # product categories | 103 | # product categories |
105 | produtos = ProductCategory.create!(:name => 'Produtos', :environment => Environment.default, :display_color => 4) | 104 | produtos = ProductCategory.create!(:name => 'Produtos', :environment => Environment.default, :display_color => 4) |
test/unit/environment_test.rb
@@ -258,4 +258,9 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -258,4 +258,9 @@ class EnvironmentTest < Test::Unit::TestCase | ||
258 | assert_equal 'my fine environment', env.description | 258 | assert_equal 'my fine environment', env.description |
259 | end | 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 | end | 266 | end |
test/unit/profile_test.rb
@@ -309,6 +309,11 @@ class ProfileTest < Test::Unit::TestCase | @@ -309,6 +309,11 @@ class ProfileTest < Test::Unit::TestCase | ||
309 | assert_kind_of Role, Profile::Roles.member | 309 | assert_kind_of Role, Profile::Roles.member |
310 | end | 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 | should 'not have members by default' do | 317 | should 'not have members by default' do |
313 | assert_equal false, Profile.new.has_members? | 318 | assert_equal false, Profile.new.has_members? |
314 | end | 319 | end |