コード例 #1
0
ファイル: beehub_userTest.php プロジェクト: niekbosch/BeeHub
 public function testUser_get_sponsorWithOneSponsor()
 {
     $user = new \BeeHub_User('/system/users/jane');
     // There can not be a default sponsor; Jane does not have any sponsors at all
     $this->assertNull($user->user_prop_sponsor());
     // Give Jane a sponsor, and this should automatically be her default sponsor
     $this->setCurrentUser('/system/users/john');
     $sponsor = new \BeeHub_Sponsor('/system/sponsors/sponsor_a');
     $sponsor->change_memberships(array('jane'), \BeeHub_Sponsor::ADMIN_ACCEPT);
     $userWithSponsor = \DAV::$REGISTRY->resource('/system/users/jane');
     $this->assertSame('/system/sponsors/sponsor_a', $userWithSponsor->user_prop_sponsor());
     // Remove the only sponsor Jane has and she should have no default sponsor either
     $sponsor->change_memberships(array('jane'), \BeeHub_Sponsor::DELETE_MEMBER);
     $userWithoutSponsor = \DAV::$REGISTRY->resource('/system/users/jane');
     $this->assertNull($userWithoutSponsor->user_prop_sponsor());
 }
コード例 #2
0
$usersCollection = $db->createCollection('users');
$usersCollection->ensureIndex(array('name' => 1), array('unique' => 1));
$usersCollection->insert(array('name' => $username, 'displayname' => 'Administrator', 'email' => $userEmail, 'password' => \crypt($_SERVER['PHP_AUTH_PW'], '$6$rounds=5000$' . md5(time() . rand(0, 99999)) . '$'), 'default_sponsor' => DEFAULT_SPONSOR_NAME));
// Create groups collection
$groupsCollection = $db->createCollection('groups');
$groupsCollection->ensureIndex(array('name' => 1), array('unique' => 1));
$groupsCollection->insert(array('name' => \basename($config['namespace']['admin_group']), 'displayname' => ADMIN_GROUP_DISPLAYNAME, 'description' => ADMIN_GROUP_DESCRIPTION));
$group = new \BeeHub_Group($config['namespace']['admin_group']);
$group->change_memberships(array($username), \BeeHub_Group::USER_ACCEPT);
$group->change_memberships(array($username), \BeeHub_Group::ADMIN_ACCEPT);
$group->change_memberships(array($username), \BeeHub_Group::SET_ADMIN);
// Create sponsors collection
$sponsorsCollection = $db->createCollection('sponsors');
$sponsorsCollection->ensureIndex(array('name' => 1), array('unique' => 1));
$sponsorsCollection->insert(array('name' => DEFAULT_SPONSOR_NAME, 'displayname' => DEFAULT_SPONSOR_DISPLAYNAME, 'description' => DEFAULT_SPONSOR_DESCRIPTION));
$sponsor = new \BeeHub_Sponsor(\BeeHub::SPONSORS_PATH . DEFAULT_SPONSOR_NAME);
$sponsor->change_memberships(array($username), \BeeHub_Sponsor::ADMIN_ACCEPT);
$sponsor->change_memberships(array($username), \BeeHub_Sponsor::SET_ADMIN);
// Create the beehub_system collection
$systemCollection = $db->createCollection('beehub_system');
$systemCollection->insert(array('name' => 'etag', 'counter' => 0));
// Create the files collection
$filesCollection = $db->createCollection('files');
$filesCollection->ensureIndex(array('props.http://beehub%2Enl/ sponsor' => 1));
$filesCollection->ensureIndex(array('props.DAV: owner' => 1));
$filesCollection->ensureIndex(array('path' => 1), array('unique' => 1));
$filesCollection->ensureIndex(array('depth' => 1, 'path' => 1));
$locksCollection = $db->createCollection('locks');
$locksCollection->ensureIndex(array('path' => 1), array('unique' => 1));
// Done creating the database structure
print "ok\n";
コード例 #3
0
 public function testMethod_POST()
 {
     $this->setCurrentUser('/system/users/john');
     $_POST['displayname'] = 'Some test sponsor of John';
     $_POST['description'] = "This is the description of John's test sponsor";
     $_POST['sponsor_name'] = 'johnsponsor';
     $headers = array();
     $this->expectOutputRegex('/https 303 See Other/');
     $this->obj->method_POST($headers);
     $sponsor = new \BeeHub_Sponsor('/system/sponsors/johnsponsor');
     $this->assertSame($_POST['displayname'], $sponsor->user_prop(\DAV::PROP_DISPLAYNAME));
     $this->assertSame($_POST['description'], $sponsor->user_prop(\BeeHub::PROP_DESCRIPTION));
 }
コード例 #4
0
 public function testMethod_MKCOL()
 {
     $sponsorB = new \BeeHub_Sponsor('/system/sponsors/sponsor_b');
     $sponsorB->change_memberships(array('jane'), \BeeHub_Sponsor::ADMIN_ACCEPT);
     $sponsorB->change_memberships(array('jane'), \BeeHub_Sponsor::SET_ADMIN);
     $jane = new \BeeHub_User('/system/users/jane');
     $jane->user_set_sponsor('/system/sponsors/sponsor_b');
     $jane->storeProperties();
     $this->setCurrentUser('/system/users/jane');
     $this->obj->method_MKCOL('subdirectory');
     $subdirectory = \DAV::$REGISTRY->resource($this->obj->path . 'subdirectory');
     $this->assertSame('/system/sponsors/sponsor_a', $subdirectory->user_prop_sponsor());
     $this->assertSame('/system/users/jane', $subdirectory->user_prop_owner());
     $this->assertNull($subdirectory->user_prop(\DAV::PROP_GETETAG));
     // And now it already exists, we should not be able to create it again
     $this->setExpectedException('DAV_Status', null, \DAV::HTTP_FORBIDDEN);
     $this->obj->method_MKCOL('subdirectory');
 }
コード例 #5
0
 public function testUser_propname()
 {
     $sponsor = new \BeeHub_Sponsor('/system/sponsors/sponsor_a');
     $this->assertSame(\BeeHub::$SPONSOR_PROPS, $sponsor->user_propname());
 }
コード例 #6
0
 public function testChangeSponsor()
 {
     $sponsor = new \BeeHub_Sponsor('/system/sponsors/sponsor_b');
     $sponsor->change_memberships(array('jane'), \BeeHub_Sponsor::ADMIN_ACCEPT);
     $sponsor->change_memberships(array('jane'), \BeeHub_Sponsor::SET_ADMIN);
     $this->obj->user_set(\DAV::PROP_OWNER, '/system/users/jane');
     $this->setCurrentUser('/system/users/jane');
     $this->obj->method_PROPPATCH(\BeeHub::PROP_SPONSOR, '<D:href>/system/sponsors/sponsor_b</D:href>');
     $this->assertSame('/system/sponsors/sponsor_b', $this->obj->user_prop_sponsor());
 }
コード例 #7
0
ファイル: beehub_fileTest.php プロジェクト: niekbosch/BeeHub
 public function testMethod_COPY()
 {
     $sponsorB = new \BeeHub_Sponsor('/system/sponsors/sponsor_b');
     $sponsorB->change_memberships(array('jane'), \BeeHub_Sponsor::ADMIN_ACCEPT);
     $sponsorB->change_memberships(array('jane'), \BeeHub_Sponsor::SET_ADMIN);
     $this->setCurrentUser('/system/users/john');
     $bar = new \BeeHub_Directory('/bar');
     $bar->user_set_acl(array(new \DAVACL_Element_ace('/system/users/jane', false, array(\DAVACL::PRIV_WRITE), false)));
     $this->setCurrentUser('/system/users/jane');
     $this->obj->method_COPY('/bar/file.txt');
     $copiedFile = \DAV::$REGISTRY->resource('/bar/file.txt');
     $this->assertSame(array(), $copiedFile->user_prop_acl_internal());
     $this->assertNotSame($this->obj->user_prop_getetag(), $copiedFile->user_prop_getetag());
     $this->assertSame('/system/users/jane', $copiedFile->user_prop_owner());
     $this->assertSame('/system/sponsors/sponsor_b', $copiedFile->user_prop_sponsor());
 }