summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php4
-rw-r--r--lib/l10n/cs_CZ.js2
-rw-r--r--lib/l10n/cs_CZ.json2
-rw-r--r--lib/l10n/hu_HU.js1
-rw-r--r--lib/l10n/hu_HU.json1
-rw-r--r--lib/private/filechunking.php12
-rw-r--r--lib/private/share20/defaultshareprovider.php61
-rw-r--r--lib/private/util.php3
8 files changed, 67 insertions, 19 deletions
diff --git a/lib/base.php b/lib/base.php
index 9db4a482f23..70498f31567 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -509,7 +509,9 @@ class OC {
require_once $vendorAutoLoad;
} catch (\RuntimeException $e) {
- OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+ if (!self::$CLI) {
+ OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE);
+ }
// we can't use the template error page here, because this needs the
// DI container which isn't available yet
print($e->getMessage());
diff --git a/lib/l10n/cs_CZ.js b/lib/l10n/cs_CZ.js
index a68a1e0d627..9bef7503e92 100644
--- a/lib/l10n/cs_CZ.js
+++ b/lib/l10n/cs_CZ.js
@@ -37,7 +37,7 @@ OC.L10N.register(
"_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
"seconds ago" : "před pár sekundami",
- "web services under your control" : "webové služby pod Vaší kontrolou",
+ "web services under your control" : "webové služby pod vlastní kontrolou",
"Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s id: %s neexistuje. Povolte ho prosím ve svých nastaveních aplikací nebo kontaktujte svého administrátora.",
"Empty filename is not allowed" : "Prázdné jméno souboru není povoleno",
"Dot files are not allowed" : "Jména souborů začínající tečkou nejsou povolena",
diff --git a/lib/l10n/cs_CZ.json b/lib/l10n/cs_CZ.json
index a85998ff589..fa28e353325 100644
--- a/lib/l10n/cs_CZ.json
+++ b/lib/l10n/cs_CZ.json
@@ -35,7 +35,7 @@
"_%n hour ago_::_%n hours ago_" : ["před %n hodinou","před %n hodinami","před %n hodinami"],
"_%n minute ago_::_%n minutes ago_" : ["před %n minutou","před %n minutami","před %n minutami"],
"seconds ago" : "před pár sekundami",
- "web services under your control" : "webové služby pod Vaší kontrolou",
+ "web services under your control" : "webové služby pod vlastní kontrolou",
"Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s id: %s neexistuje. Povolte ho prosím ve svých nastaveních aplikací nebo kontaktujte svého administrátora.",
"Empty filename is not allowed" : "Prázdné jméno souboru není povoleno",
"Dot files are not allowed" : "Jména souborů začínající tečkou nejsou povolena",
diff --git a/lib/l10n/hu_HU.js b/lib/l10n/hu_HU.js
index 626bd0c44a3..3c96c9770e2 100644
--- a/lib/l10n/hu_HU.js
+++ b/lib/l10n/hu_HU.js
@@ -87,6 +87,7 @@ OC.L10N.register(
"Sharing %s failed, because %s is not a member of the group %s" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja a %s csoportnak",
"You need to provide a password to create a public link, only protected links are allowed" : "Meg kell adnia egy jelszót is, mert a nyilvános linkek csak jelszóval védetten használhatók",
"Sharing %s failed, because sharing with links is not allowed" : "%s megosztása nem sikerült, mert a linkekkel történő megosztás nincs engedélyezve",
+ "Not allowed to create a federated share with the same user" : "Azonos felhasználóval nem lehet létrehozni egyesített megosztást.",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s megosztása sikertelen, mert %s nem található, talán a szerver jelenleg nem elérhető.",
"Share type %s is not valid for %s" : "A %s megosztási típus nem érvényes %s-re",
"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a megadottak túllépik a %s-re érvényes jogosultságokat",
diff --git a/lib/l10n/hu_HU.json b/lib/l10n/hu_HU.json
index dde921ce3b1..e73e82cc283 100644
--- a/lib/l10n/hu_HU.json
+++ b/lib/l10n/hu_HU.json
@@ -85,6 +85,7 @@
"Sharing %s failed, because %s is not a member of the group %s" : "%s megosztása nem sikerült, mert %s felhasználó nem tagja a %s csoportnak",
"You need to provide a password to create a public link, only protected links are allowed" : "Meg kell adnia egy jelszót is, mert a nyilvános linkek csak jelszóval védetten használhatók",
"Sharing %s failed, because sharing with links is not allowed" : "%s megosztása nem sikerült, mert a linkekkel történő megosztás nincs engedélyezve",
+ "Not allowed to create a federated share with the same user" : "Azonos felhasználóval nem lehet létrehozni egyesített megosztást.",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s megosztása sikertelen, mert %s nem található, talán a szerver jelenleg nem elérhető.",
"Share type %s is not valid for %s" : "A %s megosztási típus nem érvényes %s-re",
"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Nem sikerült %s-re beállítani az elérési jogosultságokat, mert a megadottak túllépik a %s-re érvényes jogosultságokat",
diff --git a/lib/private/filechunking.php b/lib/private/filechunking.php
index ece215e7344..32cbb7559f0 100644
--- a/lib/private/filechunking.php
+++ b/lib/private/filechunking.php
@@ -74,14 +74,16 @@ class OC_FileChunking {
public function isComplete() {
$prefix = $this->getPrefix();
- $parts = 0;
$cache = $this->getCache();
- for($i=0; $i < $this->info['chunkcount']; $i++) {
- if ($cache->hasKey($prefix.$i)) {
- $parts ++;
+ $chunkcount = (int)$this->info['chunkcount'];
+
+ for($i=($chunkcount-1); $i >= 0; $i--) {
+ if (!$cache->hasKey($prefix.$i)) {
+ return false;
}
}
- return $parts == $this->info['chunkcount'];
+
+ return true;
}
/**
diff --git a/lib/private/share20/defaultshareprovider.php b/lib/private/share20/defaultshareprovider.php
index dc5b47b0ab0..43dc6090a35 100644
--- a/lib/private/share20/defaultshareprovider.php
+++ b/lib/private/share20/defaultshareprovider.php
@@ -274,6 +274,10 @@ class DefaultShareProvider implements IShareProvider {
], IQueryBuilder::PARAM_INT_ARRAY)
)
)
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
->orderBy('id');
$cursor = $qb->execute();
@@ -332,6 +336,10 @@ class DefaultShareProvider implements IShareProvider {
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(self::SHARE_TYPE_USERGROUP)))
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($recipient)))
->andWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
->execute();
$data = $stmt->fetch();
@@ -405,6 +413,10 @@ class DefaultShareProvider implements IShareProvider {
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(self::SHARE_TYPE_USERGROUP)))
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($recipient)))
->andWhere($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
->setMaxResults(1)
->execute();
@@ -455,7 +467,11 @@ class DefaultShareProvider implements IShareProvider {
public function getSharesBy($userId, $shareType, $node, $reshares, $limit, $offset) {
$qb = $this->dbConn->getQueryBuilder();
$qb->select('*')
- ->from('share');
+ ->from('share')
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ));
$qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter($shareType)));
@@ -523,7 +539,11 @@ class DefaultShareProvider implements IShareProvider {
\OCP\Share::SHARE_TYPE_LINK,
], IQueryBuilder::PARAM_INT_ARRAY)
)
- );
+ )
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ));
$cursor = $qb->execute();
$data = $cursor->fetch();
@@ -564,7 +584,12 @@ class DefaultShareProvider implements IShareProvider {
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_USER)),
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP))
)
- )->execute();
+ )
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
+ ->execute();
$shares = [];
while($data = $cursor->fetch()) {
@@ -597,8 +622,12 @@ class DefaultShareProvider implements IShareProvider {
}
$qb->setFirstResult($offset);
- $qb->where($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_USER)));
- $qb->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($userId)));
+ $qb->where($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_USER)))
+ ->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($userId)))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ));
// Filter by node if provided
if ($node !== null) {
@@ -645,11 +674,15 @@ class DefaultShareProvider implements IShareProvider {
$groups = array_map(function(IGroup $group) { return $group->getGID(); }, $groups);
- $qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP)));
- $qb->andWhere($qb->expr()->in('share_with', $qb->createNamedParameter(
- $groups,
- IQueryBuilder::PARAM_STR_ARRAY
- )));
+ $qb->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP)))
+ ->andWhere($qb->expr()->in('share_with', $qb->createNamedParameter(
+ $groups,
+ IQueryBuilder::PARAM_STR_ARRAY
+ )))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ));
$cursor = $qb->execute();
while($data = $cursor->fetch()) {
@@ -691,6 +724,10 @@ class DefaultShareProvider implements IShareProvider {
->from('share')
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_LINK)))
->andWhere($qb->expr()->eq('token', $qb->createNamedParameter($token)))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
->execute();
$data = $cursor->fetch();
@@ -802,6 +839,10 @@ class DefaultShareProvider implements IShareProvider {
->where($qb->expr()->eq('parent', $qb->createNamedParameter($share->getId())))
->andWhere($qb->expr()->eq('share_type', $qb->createNamedParameter(self::SHARE_TYPE_USERGROUP)))
->andWhere($qb->expr()->eq('share_with', $qb->createNamedParameter($userId)))
+ ->andWhere($qb->expr()->orX(
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
+ $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
+ ))
->setMaxResults(1)
->execute();
diff --git a/lib/private/util.php b/lib/private/util.php
index f6191b96aa2..6f53be8446a 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -726,7 +726,8 @@ class OC_Util {
'classes' => array(
'ZipArchive' => 'zip',
'DOMDocument' => 'dom',
- 'XMLWriter' => 'XMLWriter'
+ 'XMLWriter' => 'XMLWriter',
+ 'XMLReader' => 'XMLReader',
),
'functions' => [
'xml_parser_create' => 'libxml',