From 71ea819b886b4ced57fb9b0b0f92e875d4230802 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Mon, 7 Jul 2008 12:14:03 -0300 Subject: [PATCH] Adding the remove_admin method for environment --- app/models/environment.rb | 4 ++++ test/unit/environment_test.rb | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/models/environment.rb b/app/models/environment.rb index 4dea8c5..f17a71a 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -74,6 +74,10 @@ class Environment < ActiveRecord::Base self.affiliate(user, Environment::Roles.admin(self.id)) end + def remove_admin(user) + self.disaffiliate(user, Environment::Roles.admin(self.id)) + end + def admins Person.members_of(self).all(:conditions => ['role_assignments.role_id = ?', Environment::Roles.admin(self).id]) end diff --git a/test/unit/environment_test.rb b/test/unit/environment_test.rb index c5000e8..a271ec6 100644 --- a/test/unit/environment_test.rb +++ b/test/unit/environment_test.rb @@ -372,8 +372,7 @@ class EnvironmentTest < Test::Unit::TestCase end should 'be able to add admins easily' do - Environment.any_instance.stubs(:create_templates) # avoid creating templates, it's expensive - env = Environment.create!(:name => 'bli') + env = Environment.default user = create_user('testuser').person env.add_admin(user) env.reload @@ -381,6 +380,18 @@ class EnvironmentTest < Test::Unit::TestCase assert_includes env.admins, user end + should 'be able to remove admins easily' do + env = Environment.default + user = create_user('testuser').person + env.affiliate(user, Environment::Roles.admin(env.id)) + env.reload + assert_includes env.admins, user + + env.remove_admin(user) + assert_not_includes env.admins, user + end + + should 'have products through enterprises' do product_category = fast_create(ProductCategory, :name => 'Products', :environment_id => Environment.default.id) env = Environment.default -- libgit2 0.21.2