From 51292b12043ac129789ef1a7a99f50650e8955da Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 22 Nov 2022 14:34:12 +0100
Subject: [PATCH 1/3] Add per-user storage view
---
settings/Controller/UsersController.php | 12 ++++++++++++
settings/css/settings.css | 3 ++-
settings/js/users/users.js | 19 +++++++++++++++++++
settings/templates/users/main.php | 9 +++++++++
settings/templates/users/part.userlist.php | 2 ++
settings/users.php | 1 +
6 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 571110d84d05..1ed91de7c261 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -226,6 +226,17 @@ private function formatUserForIndex(IUser $user, array $userGroups = null) {
];
}
+ // we are going to setup a different FS and not reverting it back. There shouldn't anyway be any code needed to access the FS after this
+ try {
+ \OC_Util::tearDownFS();
+ \OC_Util::setupFS($user->getUID());
+ $storage = \OC_Helper::getStorageInfo('/');
+ $storageUsed = \sprintf("%.1f MB", $storage['used'] / 1024 / 1024);
+ } catch (\Exception $e) {
+ $this->log->error("Can't compute used storage for user " . $user->getUID() . ": " . $e->getMessage(), ['app' => 'settings']);
+ $storageUsed = "0 MB";
+ }
+
return [
'name' => $user->getUID(),
'displayname' => $user->getDisplayName(),
@@ -234,6 +245,7 @@ private function formatUserForIndex(IUser $user, array $userGroups = null) {
'isEnabled' => $user->isEnabled(),
'quota' => $user->getQuota(),
'storageLocation' => $user->getHome(),
+ 'storageUsed' => $storageUsed,
'lastLogin' => $user->getLastLogin() * 1000,
'backend' => $user->getBackendClassName(),
'email' => $displayName,
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 76ccfb20e9d2..91d4826b3cc8 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -267,6 +267,7 @@ span.usersLastLoginTooltip { white-space: nowrap; }
#userlist .mailAddress,
#userlist .enabled,
#userlist .storageLocation,
+serlist .storageUsed,
#userlist .userBackend,
#userlist .lastLogin {
display : none;
@@ -789,4 +790,4 @@ div.app-settings .section {
background-color: #041e42;
cursor: pointer;
clear: both;
-}
\ No newline at end of file
+}
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index e17b95de0617..b51d80a04df5 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -165,6 +165,11 @@ var UserList = {
*/
$tr.find('td.storageLocation').text(user.storageLocation);
+ /**
+ * storage used
+ */
+ $tr.find('td.storageUsed').text(user.storageUsed);
+
/**
* user backend
*/
@@ -1077,6 +1082,20 @@ $(document).ready(function () {
}
});
+ if ($('#CheckboxStorageUsed').is(':checked')) {
+ $("#userlist .storageUsed").show();
+ }
+ // Option to display/hide the "Storage used" column
+ $('#CheckboxStorageUsed').click(function() {
+ if ($('#CheckboxStorageUsed').is(':checked')) {
+ $("#userlist .storageUsed").show();
+ OC.AppConfig.setValue('core', 'umgmt_show_storage_used', 'true');
+ } else {
+ $("#userlist .storageUsed").hide();
+ OC.AppConfig.setValue('core', 'umgmt_show_storage_used', 'false');
+ }
+ });
+
if ($('#CheckboxLastLogin').is(':checked')) {
$("#userlist .lastLogin").show();
}
diff --git a/settings/templates/users/main.php b/settings/templates/users/main.php
index ef1b4103702b..341cd4a0745d 100644
--- a/settings/templates/users/main.php
+++ b/settings/templates/users/main.php
@@ -62,6 +62,15 @@ class="checkbox" t('Show storage location')) ?>
+
+ />
+
+
t('Enabled')); ?>
t('Storage Location')); ?> |
+ t('Storage Used')); ?> |
t('User Backend')); ?> |
t('Last Login')); ?> |
@@ -70,6 +71,7 @@
|
+ |
|
|
|
diff --git a/settings/users.php b/settings/users.php
index 8f3fb151c121..deb69519faa2 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -121,6 +121,7 @@
$tmpl->assign('show_is_enabled', $config->getAppValue('core', 'umgmt_show_is_enabled', 'false'));
$tmpl->assign('show_storage_location', $config->getAppValue('core', 'umgmt_show_storage_location', 'false'));
+$tmpl->assign('show_storage_used', $config->getAppValue('core', 'umgmt_show_storage_used', 'false'));
$tmpl->assign('show_last_login', $config->getAppValue('core', 'umgmt_show_last_login', 'false'));
$tmpl->assign('show_email', $config->getAppValue('core', 'umgmt_show_email', 'false'));
$tmpl->assign('show_backend', $config->getAppValue('core', 'umgmt_show_backend', 'false'));
From 7f83cf2eb0e6144e03f4054a769c6a69d4f7539c Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 22 Nov 2022 14:42:39 +0100
Subject: [PATCH 2/3] Add changelog
---
changelog/unreleased/40506 | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 changelog/unreleased/40506
diff --git a/changelog/unreleased/40506 b/changelog/unreleased/40506
new file mode 100644
index 000000000000..18dcd57f0b51
--- /dev/null
+++ b/changelog/unreleased/40506
@@ -0,0 +1,6 @@
+Enhancement: Add per-user storage view
+
+Adding option for displaying used storage on per-user basis
+
+https://github.com/owncloud/enterprise/issues/5468
+https://github.com/owncloud/core/pull/40506
From cd4b2ad77783d4d684677b9352a778883bf78e6e Mon Sep 17 00:00:00 2001
From: Pasquale Tripodi
Date: Tue, 22 Nov 2022 14:49:17 +0100
Subject: [PATCH 3/3] fix style
---
settings/Controller/UsersController.php | 2 +-
settings/css/settings.css | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 1ed91de7c261..01bbc90535b5 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -245,7 +245,7 @@ private function formatUserForIndex(IUser $user, array $userGroups = null) {
'isEnabled' => $user->isEnabled(),
'quota' => $user->getQuota(),
'storageLocation' => $user->getHome(),
- 'storageUsed' => $storageUsed,
+ 'storageUsed' => $storageUsed,
'lastLogin' => $user->getLastLogin() * 1000,
'backend' => $user->getBackendClassName(),
'email' => $displayName,
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 91d4826b3cc8..f0c9aa129bdc 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -267,7 +267,7 @@ span.usersLastLoginTooltip { white-space: nowrap; }
#userlist .mailAddress,
#userlist .enabled,
#userlist .storageLocation,
-serlist .storageUsed,
+#userlist .storageUsed,
#userlist .userBackend,
#userlist .lastLogin {
display : none;