Merge pull request #174 from nextcloud/stable9-upstream-sync
[stable9] Upstream Sync
This commit is contained in:
commit
bbe16db5a6
|
@ -32,6 +32,7 @@ namespace OC\Files\Storage;
|
|||
use GuzzleHttp\Exception\RequestException;
|
||||
use Icewind\Streams\IteratorDirectory;
|
||||
use Icewind\Streams\RetryWrapper;
|
||||
use OCP\Files\StorageNotAvailableException;
|
||||
|
||||
require_once __DIR__ . '/../3rdparty/Dropbox/autoload.php';
|
||||
|
||||
|
@ -94,6 +95,8 @@ class Dropbox extends \OC\Files\Storage\Common {
|
|||
if ($list) {
|
||||
try {
|
||||
$response = $this->dropbox->getMetaData($path);
|
||||
} catch (\Dropbox_Exception_Forbidden $e) {
|
||||
throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
|
||||
} catch (\Exception $exception) {
|
||||
\OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
|
||||
return false;
|
||||
|
@ -127,6 +130,8 @@ class Dropbox extends \OC\Files\Storage\Common {
|
|||
return $response;
|
||||
}
|
||||
return null;
|
||||
} catch (\Dropbox_Exception_Forbidden $e) {
|
||||
throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
|
||||
} catch (\Exception $exception) {
|
||||
if ($exception instanceof \Dropbox_Exception_NotFound) {
|
||||
// don't log, might be a file_exist check
|
||||
|
|
|
@ -41,8 +41,6 @@ $l = \OC::$server->getL10N('files_sharing');
|
|||
\OC::$CLASSPATH['OCA\Files\Share\Maintainer'] = 'files_sharing/lib/maintainer.php';
|
||||
\OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
|
||||
|
||||
$application = new Application();
|
||||
$application->registerMountProviders();
|
||||
|
||||
\OCP\App::registerAdmin('files_sharing', 'settings-admin');
|
||||
\OCP\App::registerPersonal('files_sharing', 'settings-personal');
|
||||
|
@ -52,6 +50,9 @@ $application->registerMountProviders();
|
|||
\OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
|
||||
\OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
|
||||
|
||||
$application = new Application();
|
||||
$application->registerMountProviders();
|
||||
|
||||
$eventDispatcher = \OC::$server->getEventDispatcher();
|
||||
$eventDispatcher->addListener(
|
||||
'OCA\Files::loadAdditionalScripts',
|
||||
|
|
|
@ -302,19 +302,23 @@ class Helper {
|
|||
/**
|
||||
* get default share folder
|
||||
*
|
||||
* @param \OC\Files\View
|
||||
* @return string
|
||||
*/
|
||||
public static function getShareFolder() {
|
||||
public static function getShareFolder($view = null) {
|
||||
if ($view === null) {
|
||||
$view = Filesystem::getView();
|
||||
}
|
||||
$shareFolder = \OC::$server->getConfig()->getSystemValue('share_folder', '/');
|
||||
$shareFolder = Filesystem::normalizePath($shareFolder);
|
||||
|
||||
if (!Filesystem::file_exists($shareFolder)) {
|
||||
if (!$view->file_exists($shareFolder)) {
|
||||
$dir = '';
|
||||
$subdirs = explode('/', $shareFolder);
|
||||
foreach ($subdirs as $subdir) {
|
||||
$dir = $dir . '/' . $subdir;
|
||||
if (!Filesystem::is_dir($dir)) {
|
||||
Filesystem::mkdir($dir);
|
||||
if (!$view->is_dir($dir)) {
|
||||
$view->mkdir($dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,7 +75,7 @@ class SharedMount extends MountPoint implements MoveableMount {
|
|||
$parent = dirname($share['file_target']);
|
||||
|
||||
if (!$this->recipientView->is_dir($parent)) {
|
||||
$parent = Helper::getShareFolder();
|
||||
$parent = Helper::getShareFolder($this->recipientView);
|
||||
}
|
||||
|
||||
$newMountPoint = \OCA\Files_Sharing\Helper::generateUniqueTarget(
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
"behat/behat": "^3.0",
|
||||
"guzzlehttp/guzzle": "~5.0",
|
||||
"jarnaiz/behat-junit-formatter": "^1.3",
|
||||
"sabre/dav": "3.0.x-dev"
|
||||
"sabre/dav": "3.0.9"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,7 +106,12 @@ class Install extends Command {
|
|||
$dbUser = $input->getOption('database-user');
|
||||
$dbPass = $input->getOption('database-pass');
|
||||
$dbName = $input->getOption('database-name');
|
||||
$dbHost = $input->getOption('database-host');
|
||||
if ($db === 'oci') {
|
||||
// an empty hostname needs to be read from the raw parameters
|
||||
$dbHost = $input->getParameterOption('--database-host', '');
|
||||
} else {
|
||||
$dbHost = $input->getOption('database-host');
|
||||
}
|
||||
$dbTablePrefix = 'oc_';
|
||||
if ($input->hasParameterOption('--database-table-prefix')) {
|
||||
$dbTablePrefix = (string) $input->getOption('database-table-prefix');
|
||||
|
|
|
@ -365,26 +365,26 @@ body {
|
|||
}
|
||||
#body-login .grouptop input,
|
||||
.grouptop input {
|
||||
margin-bottom: 0;
|
||||
border-bottom: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
margin-bottom: 0 !important;
|
||||
border-bottom: 0 !important;
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-bottom-right-radius: 0 !important;
|
||||
}
|
||||
#body-login .groupmiddle input,
|
||||
.groupmiddle input {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
border-top: 0;
|
||||
border-bottom: 0;
|
||||
border-radius: 0;
|
||||
margin-top: 0 !important;
|
||||
margin-bottom: 0 !important;
|
||||
border-top: 0 !important;
|
||||
border-bottom: 0 !important;
|
||||
border-radius: 0 !important;
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,.1) inset !important;
|
||||
}
|
||||
#body-login .groupbottom input,
|
||||
.groupbottom input {
|
||||
margin-top: 0;
|
||||
border-top: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
margin-top: 0 !important;
|
||||
border-top: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
box-shadow: 0 1px 0 rgba(0,0,0,.1) inset !important;
|
||||
}
|
||||
#body-login .groupbottom input[type=submit] {
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
*/
|
||||
|
||||
namespace OC;
|
||||
use OC\Cache\CappedMemoryCache;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\PreConditionNotMetException;
|
||||
|
||||
|
@ -58,14 +59,15 @@ class AllConfig implements \OCP\IConfig {
|
|||
* - deleteAllUserValues
|
||||
* - deleteAppFromAllUsers
|
||||
*
|
||||
* @var array $userCache
|
||||
* @var CappedMemoryCache $userCache
|
||||
*/
|
||||
private $userCache = array();
|
||||
private $userCache;
|
||||
|
||||
/**
|
||||
* @param SystemConfig $systemConfig
|
||||
*/
|
||||
function __construct(SystemConfig $systemConfig) {
|
||||
$this->userCache = new CappedMemoryCache();
|
||||
$this->systemConfig = $systemConfig;
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
namespace OC\Encryption;
|
||||
|
||||
use OC\Cache\CappedMemoryCache;
|
||||
|
||||
class File implements \OCP\Encryption\IFile {
|
||||
|
||||
/** @var Util */
|
||||
|
@ -36,6 +38,7 @@ class File implements \OCP\Encryption\IFile {
|
|||
|
||||
public function __construct(Util $util) {
|
||||
$this->util = $util;
|
||||
$this->cache = new CappedMemoryCache();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ use OCP\IDBConnection;
|
|||
use OCP\ILogger;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OC\Cache\CappedMemoryCache;
|
||||
|
||||
/**
|
||||
* Cache mounts points per user in the cache so we can easilly look them up
|
||||
|
@ -50,15 +51,23 @@ class UserMountCache implements IUserMountCache {
|
|||
*/
|
||||
private $userManager;
|
||||
|
||||
/** @var ICachedMountInfo[][] [$userId => [$cachedMountInfo, ....], ...] */
|
||||
private $mountsForUsers = [];
|
||||
/**
|
||||
* Cached mount info.
|
||||
* Map of $userId to ICachedMountInfo.
|
||||
*
|
||||
* @var ICache
|
||||
**/
|
||||
private $mountsForUsers;
|
||||
|
||||
/**
|
||||
* @var ILogger
|
||||
*/
|
||||
private $logger;
|
||||
|
||||
private $cacheInfoCache = [];
|
||||
/**
|
||||
* @var ICache
|
||||
*/
|
||||
private $cacheInfoCache;
|
||||
|
||||
/**
|
||||
* UserMountCache constructor.
|
||||
|
@ -71,6 +80,8 @@ class UserMountCache implements IUserMountCache {
|
|||
$this->connection = $connection;
|
||||
$this->userManager = $userManager;
|
||||
$this->logger = $logger;
|
||||
$this->cacheInfoCache = new CappedMemoryCache();
|
||||
$this->mountsForUsers = new CappedMemoryCache();
|
||||
}
|
||||
|
||||
public function registerMounts(IUser $user, array $mounts) {
|
||||
|
|
|
@ -907,6 +907,11 @@ class Manager implements IManager {
|
|||
break;
|
||||
}
|
||||
|
||||
// If there was no limit on the select we are done
|
||||
if ($limit === -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
$offset += $added;
|
||||
|
||||
// Fetch again $limit shares
|
||||
|
|
|
@ -43,6 +43,8 @@ use Symfony\Component\Routing\Exception\ResourceNotFoundException;
|
|||
use Symfony\Component\Routing\Exception\MethodNotAllowedException;
|
||||
|
||||
try {
|
||||
OC_App::loadApps(['session']);
|
||||
OC_App::loadApps(['authentication']);
|
||||
// load all apps to get all api routes properly setup
|
||||
OC_App::loadApps();
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ var UserList = {
|
|||
availableGroups: [],
|
||||
offset: 0,
|
||||
usersToLoad: 10, //So many users will be loaded when user scrolls down
|
||||
initialUsersToLoad: 250, //initial number of users to load
|
||||
initialUsersToLoad: 50, //initial number of users to load
|
||||
currentGid: '',
|
||||
filter: '',
|
||||
|
||||
|
|
Loading…
Reference in New Issue