diff --git a/app/models/environment.rb b/app/models/environment.rb index f75f4c2..c20ff62 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -24,6 +24,7 @@ class Environment < ActiveRecord::Base 'manage_environment_roles' => N_('Manage environment roles'), 'manage_environment_validators' => N_('Manage environment validators'), 'manage_environment_users' => N_('Manage environment users'), + 'manage_environment_licenses' => N_('Manage environment licenses'), } module Roles diff --git a/db/migrate/20120716161506_add_manage_environment_license_to_admin_role.rb b/db/migrate/20120716161506_add_manage_environment_license_to_admin_role.rb new file mode 100644 index 0000000..2b60924 --- /dev/null +++ b/db/migrate/20120716161506_add_manage_environment_license_to_admin_role.rb @@ -0,0 +1,17 @@ +class AddManageEnvironmentLicenseToAdminRole < ActiveRecord::Migration + def self.up + Environment.all.map(&:id).each do |id| + role = Environment::Roles.admin(id) + role.permissions << 'manage_environment_licenses' + role.save! + end + end + + def self.down + Environment.all.map(&:id).each do |id| + role = Environment::Roles.admin(id) + role.permissions -= ['manage_environment_licenses'] + role.save! + end + end +end diff --git a/test/factories.rb b/test/factories.rb index 8d04e78..1ab7de4 100644 --- a/test/factories.rb +++ b/test/factories.rb @@ -56,7 +56,7 @@ module Noosfero::Factory ###### old stuff to be rearranged def create_admin_user(env) admin_user = User.find_by_login('adminuser') || create_user('adminuser', :email => 'adminuser@noosfero.org', :password => 'adminuser', :password_confirmation => 'adminuser', :environment => env) - admin_role = Role.find_by_name('admin_role') || Role.create!(:name => 'admin_role', :permissions => ['view_environment_admin_panel','edit_environment_features', 'edit_environment_design', 'manage_environment_categories', 'manage_environment_roles', 'manage_environment_validators', 'manage_environment_users']) + admin_role = Role.find_by_name('admin_role') || Role.create!(:name => 'admin_role', :permissions => ['view_environment_admin_panel','edit_environment_features', 'edit_environment_design', 'manage_environment_categories', 'manage_environment_roles', 'manage_environment_validators', 'manage_environment_users', 'manage_environment_licenses']) RoleAssignment.create!(:accessor => admin_user.person, :role => admin_role, :resource => env) unless admin_user.person.role_assignments.map{|ra|[ra.role, ra.accessor, ra.resource]}.include?([admin_role, admin_user, env]) admin_user.login end diff --git a/test/fixtures/roles.yml b/test/fixtures/roles.yml index d0f1bdf..9f39fd7 100644 --- a/test/fixtures/roles.yml +++ b/test/fixtures/roles.yml @@ -34,6 +34,7 @@ four: - moderate_comments - perform_task - manage_environment_users + - manage_environment_licenses profile_admin: id: 5 environment_id: 1 @@ -86,3 +87,4 @@ environment_administrator: - manage_environment_users - edit_profile - destroy_profile + - manage_environment_licenses -- libgit2 0.21.2