123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- /**
- * Test write access arrays
- */
- class GroupsWriteAccessTest extends ElggCoreUnitTest {
- /**
- * @var ElggGroup
- */
- protected $group;
- /**
- * @var ElggUser
- */
- protected $user;
- /**
- * Called before each test method.
- */
- public function setUp() {
- $this->group = new ElggGroup();
- $this->group->membership = ACCESS_PUBLIC;
- $this->group->access_id = ACCESS_PUBLIC;
- $this->group->save();
- $this->user = new ElggUser();
- $this->user->username = 'test_user_' . rand();
- $this->user->save();
- }
- /**
- * https://github.com/Elgg/Elgg/pull/6393
- * Hook handlers for 'access:collections:write','all' hook should respect
- * group's content access mode and container write permissions
- */
- public function testWriteAccessArray() {
- $membersonly = ElggGroup::CONTENT_ACCESS_MODE_MEMBERS_ONLY;
- $unrestricted = ElggGroup::CONTENT_ACCESS_MODE_UNRESTRICTED;
- $original_page_owner = elgg_get_page_owner_entity();
- elgg_set_page_owner_guid($this->group->guid);
- $ia = elgg_set_ignore_access(false);
- // User is not a member of the group
- // Member-only group
- $this->group->setContentAccessMode($membersonly);
- $write_access = get_write_access_array($this->user->guid, $this->group->site_guid, true);
- $this->assertFalse(array_key_exists($this->group->group_acl, $write_access));
- // Unrestricted group
- $this->group->setContentAccessMode($unrestricted);
- $write_access = get_write_access_array($this->user->guid, $this->group->site_guid, true);
- $this->assertFalse(array_key_exists($this->group->group_acl, $write_access));
- // User is a member (can write to container)
- $this->group->join($this->user);
- // Member-only group
- $this->group->setContentAccessMode($membersonly);
- $write_access = get_write_access_array($this->user->guid, $this->group->site_guid, true);
- $this->assertTrue(array_key_exists($this->group->group_acl, $write_access));
- // Unrestricted group
- $this->group->setContentAccessMode($unrestricted);
- $write_access = get_write_access_array($this->user->guid, $this->group->site_guid, true);
- $this->assertTrue(array_key_exists($this->group->group_acl, $write_access));
- elgg_set_ignore_access($ia);
- $this->group->leave($this->user);
- $original_page_owner_guid = (elgg_instanceof($original_page_owner)) ? $original_page_owner->guid : 0;
- elgg_set_page_owner_guid($original_page_owner_guid);
- }
- /**
- * Called after each test method.
- */
- public function tearDown() {
- $this->group->delete();
- $this->user->delete();
- }
- }
|