示例#1
0
	static function enrichMetaDataFile ( $url, &$meta )
	{
		OCP\Share::getItemsShared('file');
		// consult the sharing API for more details
			$meta['mimetype']    = preg_replace ( '/^([^;]+);.*/i', '$1', curl_getinfo($handle,CURLINFO_CONTENT_TYPE) );
			$meta['mimicon']     = self::selectIcon ( 'mimetype', $meta['mimetype'] );
			$meta['code']        = curl_getinfo ( $handle, CURLINFO_HTTP_CODE );
			$meta['status']      = OC_Shorty_L10n::t ( self::selectCode('status',$meta['code']) );
			$meta['explanation'] = OC_Shorty_L10n::t ( self::selectCode('explanation',$meta['code']) );
	} // function enrichMetaDataFile
示例#2
0
            }
            $result = $mailNotification->sendLinkShareMail($to_address, $file, $link, $expiration);
            if (empty($result)) {
                \OCP\JSON::success();
            } else {
                $l = \OC::$server->getL10N('core');
                OCP\JSON::error(array('data' => array('message' => $l->t("Couldn't send mail to following users: %s ", implode(', ', $result)))));
            }
            break;
    }
} else {
    if (isset($_GET['fetch'])) {
        switch ($_GET['fetch']) {
            case 'getItemsSharedStatuses':
                if (isset($_GET['itemType'])) {
                    $return = OCP\Share::getItemsShared((string) $_GET['itemType'], OCP\Share::FORMAT_STATUSES);
                    is_array($return) ? OC_JSON::success(array('data' => $return)) : OC_JSON::error();
                }
                break;
            case 'getItem':
                if (isset($_GET['itemType']) && isset($_GET['itemSource']) && isset($_GET['checkReshare']) && isset($_GET['checkShares'])) {
                    if ($_GET['checkReshare'] == 'true') {
                        $reshare = OCP\Share::getItemSharedWithBySource((string) $_GET['itemType'], (string) $_GET['itemSource'], OCP\Share::FORMAT_NONE, null, true);
                    } else {
                        $reshare = false;
                    }
                    if ($_GET['checkShares'] == 'true') {
                        $shares = OCP\Share::getItemShared((string) $_GET['itemType'], (string) $_GET['itemSource'], OCP\Share::FORMAT_NONE, null, true);
                    } else {
                        $shares = false;
                    }
示例#3
0
文件: share.php 项目: TylerTemp/core
 public function testUnshareAll()
 {
     $this->shareUserTestFileWithUser($this->user1, $this->user2);
     $this->shareUserTestFileWithUser($this->user2, $this->user3);
     $this->shareUserTestFileWithUser($this->user3, $this->user4);
     $this->shareUserOneTestFileWithGroupOne();
     OC_User::setUserId($this->user1);
     $this->assertEquals(array('test.txt', 'test.txt'), OCP\Share::getItemsShared('test', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that the test.txt file is shared exactly two times by user1.');
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsShared('test', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that the test.txt file is shared exactly once by user2.');
     OC_User::setUserId($this->user3);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsShared('test', Test_Share_Backend::FORMAT_SOURCE), 'Failed asserting that the test.txt file is shared exactly once by user3.');
     $this->assertTrue(OCP\Share::unshareAll('test', 'test.txt'), 'Failed asserting that user 3 successfully unshared all shares of the test.txt share.');
     $this->assertEquals(array(), OCP\Share::getItemsShared('test'), 'Failed asserting that the share of the test.txt file by user 3 has been removed.');
     OC_User::setUserId($this->user1);
     $this->assertEquals(array(), OCP\Share::getItemsShared('test'), 'Failed asserting that both shares of the test.txt file by user 1 have been removed.');
     OC_User::setUserId($this->user2);
     $this->assertEquals(array(), OCP\Share::getItemsShared('test'), 'Failed asserting that the share of the test.txt file by user 2 has been removed.');
 }
示例#4
0
 public function testShareWithGroup()
 {
     // Invalid shares
     $message = 'Sharing test.txt failed, because the group foobar does not exist';
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, 'foobar', OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     $policy = OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global');
     OC_Appconfig::setValue('core', 'shareapi_share_policy', 'groups_only');
     $message = 'Sharing test.txt failed, because ' . $this->user1 . ' is not a member of the group ' . $this->group2;
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group2, OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     OC_Appconfig::setValue('core', 'shareapi_share_policy', $policy);
     // Valid share
     $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ));
     $this->assertEquals(array('test.txt'), OCP\Share::getItemShared('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
     OC_User::setUserId($this->user3);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_SOURCE));
     // Attempt to share again
     OC_User::setUserId($this->user1);
     $message = 'Sharing test.txt failed, because this item is already shared with ' . $this->group1;
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     // Attempt to share back to owner of group share
     OC_User::setUserId($this->user2);
     $message = 'Sharing test.txt failed, because the user ' . $this->user1 . ' is the original sharer';
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user1, OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     // Attempt to share back to group
     $message = 'Sharing test.txt failed, because this item is already shared with ' . $this->group1;
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     // Attempt to share back to member of group
     $message = 'Sharing test.txt failed, because this item is already shared with ' . $this->user3;
     try {
         OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user3, OCP\PERMISSION_READ);
         $this->fail('Exception was expected: ' . $message);
     } catch (Exception $exception) {
         $this->assertEquals($message, $exception->getMessage());
     }
     // Unshare
     OC_User::setUserId($this->user1);
     $this->assertTrue(OCP\Share::unshare('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1));
     // Valid share with same person - user then group
     $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2, OCP\PERMISSION_READ | OCP\PERMISSION_DELETE | OCP\PERMISSION_SHARE));
     $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     $this->assertEquals(array(OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE | OCP\PERMISSION_DELETE | OCP\PERMISSION_SHARE), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS));
     OC_User::setUserId($this->user3);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     $this->assertEquals(array(OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS));
     // Valid reshare
     OC_User::setUserId($this->user2);
     $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user4, OCP\PERMISSION_READ));
     OC_User::setUserId($this->user4);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Unshare from user only
     OC_User::setUserId($this->user1);
     $this->assertTrue(OCP\Share::unshare('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array(OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS));
     OC_User::setUserId($this->user4);
     $this->assertEquals(array(), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Valid share with same person - group then user
     OC_User::setUserId($this->user1);
     $this->assertTrue(OCP\Share::shareItem('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2, OCP\PERMISSION_READ | OCP\PERMISSION_DELETE));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     $this->assertEquals(array(OCP\PERMISSION_READ | OCP\PERMISSION_UPDATE | OCP\PERMISSION_DELETE), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS));
     // Unshare from group only
     OC_User::setUserId($this->user1);
     $this->assertTrue(OCP\Share::unshare('test', 'test.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array(OCP\PERMISSION_READ | OCP\PERMISSION_DELETE), OCP\Share::getItemSharedWith('test', 'test.txt', Test_Share_Backend::FORMAT_PERMISSIONS));
     // Attempt user specific target conflict
     OC_User::setUserId($this->user3);
     $this->assertTrue(OCP\Share::shareItem('test', 'share.txt', OCP\Share::SHARE_TYPE_GROUP, $this->group1, OCP\PERMISSION_READ | OCP\PERMISSION_SHARE));
     OC_User::setUserId($this->user2);
     $to_test = OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET);
     $this->assertEquals(2, count($to_test));
     $this->assertTrue(in_array('test.txt', $to_test));
     $this->assertTrue(in_array('test1.txt', $to_test));
     // Valid reshare
     $this->assertTrue(OCP\Share::shareItem('test', 'share.txt', OCP\Share::SHARE_TYPE_USER, $this->user4, OCP\PERMISSION_READ | OCP\PERMISSION_SHARE));
     OC_User::setUserId($this->user4);
     $this->assertEquals(array('test1.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Remove user from group
     OC_Group::removeFromGroup($this->user2, $this->group1);
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     OC_User::setUserId($this->user4);
     $this->assertEquals(array(), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Add user to group
     OC_Group::addToGroup($this->user4, $this->group1);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Unshare from self
     $this->assertTrue(OCP\Share::unshareFromSelf('test', 'test.txt'));
     $this->assertEquals(array(), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     OC_User::setUserId($this->user2);
     $this->assertEquals(array('test.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     // Remove group
     OC_Group::deleteGroup($this->group1);
     OC_User::setUserId($this->user4);
     $this->assertEquals(array(), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET));
     OC_User::setUserId($this->user3);
     $this->assertEquals(array(), OCP\Share::getItemsShared('test'));
 }