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 diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php index 571110d84d05..01bbc90535b5 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..f0c9aa129bdc 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, +#userlist .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')); ?>