summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2017-05-11 17:10:45 +0200
committerGitHub <noreply@github.com>2017-05-11 17:10:45 +0200
commit23b6f0e4d72f0a70eec9b4ba69ba9e5a0cb72731 (patch)
treebb0e3c34d1290c258424e3b8ce6e1d757c53bdcc
parentec0c7fd104e7cc2edd029160433bdcba008849b4 (diff)
parentabe4a19cbc44b34bf171d1e9499c3e834364bd31 (diff)
downloadnextcloud-server-23b6f0e4d72f0a70eec9b4ba69ba9e5a0cb72731.tar.gz
nextcloud-server-23b6f0e4d72f0a70eec9b4ba69ba9e5a0cb72731.zip
Merge pull request #4804 from nextcloud/proper-upgrade-size
Properly decide on actual users if instance is too big
-rw-r--r--core/templates/update.use-cli.php2
-rw-r--r--lib/base.php24
2 files changed, 24 insertions, 2 deletions
diff --git a/core/templates/update.use-cli.php b/core/templates/update.use-cli.php
index 52d40cdea55..9fbdbca8b21 100644
--- a/core/templates/update.use-cli.php
+++ b/core/templates/update.use-cli.php
@@ -3,7 +3,7 @@
<h2 class="title"><?php p($l->t('Update needed')) ?></h2>
<div class="infogroup">
<?php if ($_['tooBig']) {
- p($l->t('Please use the command line updater because you have a big instance.'));
+ p($l->t('Please use the command line updater because you have a big instance with more than 50 users.'));
} else {
p($l->t('Please use the command line updater because automatic updating is disabled in the config.php.'));
} ?><br><br>
diff --git a/lib/base.php b/lib/base.php
index 69ea6e54c2d..483cd656916 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -313,7 +313,29 @@ class OC {
$tooBig = false;
if (!$disableWebUpdater) {
$apps = \OC::$server->getAppManager();
- $tooBig = $apps->isInstalled('user_ldap') || $apps->isInstalled('user_shibboleth');
+ $tooBig = false;
+ if ($apps->isInstalled('user_ldap')) {
+ $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+
+ $result = $qb->selectAlias($qb->createFunction('COUNT(*)'), 'user_count')
+ ->from('ldap_user_mapping')
+ ->execute();
+ $row = $result->fetch();
+ $result->closeCursor();
+
+ $tooBig = ($row['user_count'] > 50);
+ }
+ if (!$tooBig && $apps->isInstalled('user_saml')) {
+ $qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
+
+ $result = $qb->selectAlias($qb->createFunction('COUNT(*)'), 'user_count')
+ ->from('user_saml_users')
+ ->execute();
+ $row = $result->fetch();
+ $result->closeCursor();
+
+ $tooBig = ($row['user_count'] > 50);
+ }
if (!$tooBig) {
// count users
$stats = \OC::$server->getUserManager()->countUsers();