Skip to content
This repository has been archived by the owner on Dec 27, 2023. It is now read-only.

Commit

Permalink
fix(Admin/User): make sure we have emailUser information in searchUse…
Browse files Browse the repository at this point in the history
…rs()
  • Loading branch information
pschuele committed Mar 1, 2023
1 parent ce0d6cf commit daa98d3
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 12 deletions.
14 changes: 14 additions & 0 deletions tests/tine20/Admin/Frontend/JsonTest.php
Expand Up @@ -1383,4 +1383,18 @@ public function testImportExportDefinitionSearch()
]];
$this->_json->searchImportExportDefinitions($filter, []);
}

public function testSearchUsersShowEmailUsage()
{
$this->_skipWithoutEmailSystemAccountConfig();

$filter = [['field' => "query", 'operator' => "contains", 'value' => Tinebase_Core::getUser()->accountEmailAddress]];
$users = $this->_json->searchUsers($filter, []);
self::assertEquals(1, $users['totalcount'], print_r($users, true));
$user = $users['results'][0];
self::assertArrayHasKey('emailUser', $user);
$emailUser = $user['emailUser'];
self::assertArrayHasKey('emailMailSize', $emailUser, print_r($emailUser, true));
self::assertArrayHasKey('emailMailQuota', $emailUser, print_r($emailUser, true));
}
}
16 changes: 7 additions & 9 deletions tine20/Admin/Controller/User.php
Expand Up @@ -92,16 +92,16 @@ public function searchFullUsers($_filter, $_sort = NULL, $_dir = 'ASC', $_start
$result = $this->_userBackend->getUsers($_filter, $_sort, $_dir, $_start, $_limit, 'Tinebase_Model_FullUser');

if (Tinebase_EmailUser::manages(Tinebase_Config::IMAP)) {
$emailUser = null;
$emailUserBackend = null;
try {
$emailUser = Tinebase_EmailUser::getInstance();
$emailUserBackend = Tinebase_EmailUser::getInstance();
} catch (Tinebase_Exception_NotFound $tenf) {
}

// FIXME if you want quota info: in Tinebase_User_Plugin_LdapInterface, inspectGetUserByProperty has a second param!
if (null !== $emailUser && !$emailUser instanceof Tinebase_User_Plugin_LdapInterface) {
foreach ($result as $user) {
$emailUser->inspectGetUserByProperty($user);
// FIXME LDAP email backends not supported! in Tinebase_User_Plugin_LdapInterface, inspectGetUserByProperty has a second param!
if (null !== $emailUserBackend && !$emailUserBackend instanceof Tinebase_User_Plugin_LdapInterface) {
foreach ($result as $idx => $user) {
$result[$idx] = $this->get($user->getId());
}
}
}
Expand All @@ -119,9 +119,7 @@ public function searchCount($_filter)
{
$this->checkRight('VIEW_ACCOUNTS');

$result = $this->_userBackend->getUsersCount($_filter);

return $result;
return $this->_userBackend->getUsersCount($_filter);
}

/**
Expand Down
4 changes: 1 addition & 3 deletions tine20/Admin/Frontend/Json.php
Expand Up @@ -285,12 +285,10 @@ public function getUsers($filter, $sort, $dir, $start, $limit)
}
}

$result = array(
return array(
'results' => array_values($results),
'totalcount' => Admin_Controller_User::getInstance()->searchCount($filter)
);

return $result;
}

/**
Expand Down

0 comments on commit daa98d3

Please sign in to comment.