Commit f7096d226758de082e5ceb460f622a7c890929f3
Exists in
master
and in
28 other branches
Merge commit 'refs/merge-requests/20' of git://gitorious.org/noosfero/noosfero i…
…nto merge-requests/20
Showing
2 changed files
with
17 additions
and
2 deletions
Show diff stats
app/models/environment.rb
| @@ -74,6 +74,10 @@ class Environment < ActiveRecord::Base | @@ -74,6 +74,10 @@ class Environment < ActiveRecord::Base | ||
| 74 | self.affiliate(user, Environment::Roles.admin(self.id)) | 74 | self.affiliate(user, Environment::Roles.admin(self.id)) |
| 75 | end | 75 | end |
| 76 | 76 | ||
| 77 | + def remove_admin(user) | ||
| 78 | + self.disaffiliate(user, Environment::Roles.admin(self.id)) | ||
| 79 | + end | ||
| 80 | + | ||
| 77 | def admins | 81 | def admins |
| 78 | Person.members_of(self).all(:conditions => ['role_assignments.role_id = ?', Environment::Roles.admin(self).id]) | 82 | Person.members_of(self).all(:conditions => ['role_assignments.role_id = ?', Environment::Roles.admin(self).id]) |
| 79 | end | 83 | end |
test/unit/environment_test.rb
| @@ -372,8 +372,7 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -372,8 +372,7 @@ class EnvironmentTest < Test::Unit::TestCase | ||
| 372 | end | 372 | end |
| 373 | 373 | ||
| 374 | should 'be able to add admins easily' do | 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 | user = create_user('testuser').person | 376 | user = create_user('testuser').person |
| 378 | env.add_admin(user) | 377 | env.add_admin(user) |
| 379 | env.reload | 378 | env.reload |
| @@ -381,6 +380,18 @@ class EnvironmentTest < Test::Unit::TestCase | @@ -381,6 +380,18 @@ class EnvironmentTest < Test::Unit::TestCase | ||
| 381 | assert_includes env.admins, user | 380 | assert_includes env.admins, user |
| 382 | end | 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 | should 'have products through enterprises' do | 395 | should 'have products through enterprises' do |
| 385 | product_category = fast_create(ProductCategory, :name => 'Products', :environment_id => Environment.default.id) | 396 | product_category = fast_create(ProductCategory, :name => 'Products', :environment_id => Environment.default.id) |
| 386 | env = Environment.default | 397 | env = Environment.default |