Commit 71ea819b886b4ced57fb9b0b0f92e875d4230802

Authored by Rodrigo Souto
1 parent 0db12ddd

Adding the remove_admin method for environment

app/models/environment.rb
... ... @@ -74,6 +74,10 @@ class Environment < ActiveRecord::Base
74 74 self.affiliate(user, Environment::Roles.admin(self.id))
75 75 end
76 76  
  77 + def remove_admin(user)
  78 + self.disaffiliate(user, Environment::Roles.admin(self.id))
  79 + end
  80 +
77 81 def admins
78 82 Person.members_of(self).all(:conditions => ['role_assignments.role_id = ?', Environment::Roles.admin(self).id])
79 83 end
... ...
test/unit/environment_test.rb
... ... @@ -372,8 +372,7 @@ class EnvironmentTest < Test::Unit::TestCase
372 372 end
373 373  
374 374 should 'be able to add admins easily' do
375   - Environment.any_instance.stubs(:create_templates) # avoid creating templates, it's expensive
376   - env = Environment.create!(:name => 'bli')
  375 + env = Environment.default
377 376 user = create_user('testuser').person
378 377 env.add_admin(user)
379 378 env.reload
... ... @@ -381,6 +380,18 @@ class EnvironmentTest < Test::Unit::TestCase
381 380 assert_includes env.admins, user
382 381 end
383 382  
  383 + should 'be able to remove admins easily' do
  384 + env = Environment.default
  385 + user = create_user('testuser').person
  386 + env.affiliate(user, Environment::Roles.admin(env.id))
  387 + env.reload
  388 + assert_includes env.admins, user
  389 +
  390 + env.remove_admin(user)
  391 + assert_not_includes env.admins, user
  392 + end
  393 +
  394 +
384 395 should 'have products through enterprises' do
385 396 product_category = fast_create(ProductCategory, :name => 'Products', :environment_id => Environment.default.id)
386 397 env = Environment.default
... ...