Commit fbb18e91844763fce1f2107ad1eb76d253bbb4d5
1 parent
82193169
Exists in
master
and in
26 other branches
Add is_admin? method to check if a user is a community or enterprise adminsitrator
Showing
4 changed files
with
81 additions
and
0 deletions
Show diff stats
app/models/organization.rb
| ... | ... | @@ -181,4 +181,9 @@ class Organization < Profile |
| 181 | 181 | def allow_invitation_from?(person) |
| 182 | 182 | (followed_by?(person) && self.allow_members_to_invite) || person.has_permission?('invite-members', self) |
| 183 | 183 | end |
| 184 | + | |
| 185 | + def is_admin?(user) | |
| 186 | + self.admins.where(:id => user.id).exists? | |
| 187 | + end | |
| 188 | + | |
| 184 | 189 | end | ... | ... |
test/unit/community_test.rb
| ... | ... | @@ -393,4 +393,30 @@ class CommunityTest < ActiveSupport::TestCase |
| 393 | 393 | assert_not_includes community.activities.map { |a| a.klass.constantize.find(a.id) }, article.activity |
| 394 | 394 | end |
| 395 | 395 | |
| 396 | + | |
| 397 | + should 'check if a community admin user is really a community admin' do | |
| 398 | + c = fast_create(Community, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 399 | + admin = create_user('adminuser').person | |
| 400 | + c.add_admin(admin) | |
| 401 | + | |
| 402 | + assert c.is_admin?(admin) | |
| 403 | + end | |
| 404 | + | |
| 405 | + should 'a member user not be a community admin' do | |
| 406 | + c = fast_create(Community, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 407 | + admin = create_user('adminuser').person | |
| 408 | + c.add_admin(admin) | |
| 409 | + | |
| 410 | + member = create_user('memberuser').person | |
| 411 | + c.add_member(member) | |
| 412 | + assert !c.is_admin?(member) | |
| 413 | + end | |
| 414 | + | |
| 415 | + should 'a moderator user not be a community admin' do | |
| 416 | + c = fast_create(Community, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 417 | + moderator = create_user('moderatoruser').person | |
| 418 | + c.add_moderator(moderator) | |
| 419 | + assert !c.is_admin?(moderator) | |
| 420 | + end | |
| 421 | + | |
| 396 | 422 | end | ... | ... |
test/unit/enterprise_test.rb
| ... | ... | @@ -499,5 +499,30 @@ class EnterpriseTest < ActiveSupport::TestCase |
| 499 | 499 | assert_equal({:profile => enterprise.identifier, :controller => 'catalog'}, enterprise.catalog_url) |
| 500 | 500 | end |
| 501 | 501 | |
| 502 | + should 'check if a community admin user is really a community admin' do | |
| 503 | + c = fast_create(Enterprise, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 504 | + admin = create_user('adminuser').person | |
| 505 | + c.add_admin(admin) | |
| 506 | + | |
| 507 | + assert c.is_admin?(admin) | |
| 508 | + end | |
| 509 | + | |
| 510 | + should 'a member user not be a community admin' do | |
| 511 | + c = fast_create(Enterprise, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 512 | + admin = create_user('adminuser').person | |
| 513 | + c.add_admin(admin) | |
| 514 | + | |
| 515 | + member = create_user('memberuser').person | |
| 516 | + c.add_member(member) | |
| 517 | + assert !c.is_admin?(member) | |
| 518 | + end | |
| 519 | + | |
| 520 | + should 'a moderator user not be a community admin' do | |
| 521 | + c = fast_create(Enterprise, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 522 | + moderator = create_user('moderatoruser').person | |
| 523 | + c.add_moderator(moderator) | |
| 524 | + assert !c.is_admin?(moderator) | |
| 525 | + end | |
| 526 | + | |
| 502 | 527 | |
| 503 | 528 | end | ... | ... |
test/unit/organization_test.rb
| ... | ... | @@ -452,4 +452,29 @@ class OrganizationTest < ActiveSupport::TestCase |
| 452 | 452 | end |
| 453 | 453 | end |
| 454 | 454 | |
| 455 | + should 'check if a community admin user is really a community admin' do | |
| 456 | + c = fast_create(Organization, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 457 | + admin = create_user('adminuser').person | |
| 458 | + c.add_admin(admin) | |
| 459 | + | |
| 460 | + assert c.is_admin?(admin) | |
| 461 | + end | |
| 462 | + | |
| 463 | + should 'a member user not be a community admin' do | |
| 464 | + c = fast_create(Organization, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 465 | + admin = create_user('adminuser').person | |
| 466 | + c.add_admin(admin) | |
| 467 | + | |
| 468 | + member = create_user('memberuser').person | |
| 469 | + c.add_member(member) | |
| 470 | + assert !c.is_admin?(member) | |
| 471 | + end | |
| 472 | + | |
| 473 | + should 'a moderator user not be a community admin' do | |
| 474 | + c = fast_create(Organization, :name => 'my test profile', :identifier => 'mytestprofile') | |
| 475 | + moderator = create_user('moderatoruser').person | |
| 476 | + c.add_moderator(moderator) | |
| 477 | + assert !c.is_admin?(moderator) | |
| 478 | + end | |
| 479 | + | |
| 455 | 480 | end | ... | ... |