mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(provisioning_api): Show warning but do not fail when listing accounts in case of users removed from backend but still in database
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de> Co-authored-by: Louis <louis@chmn.me> Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
parent
9872755711
commit
d566e1222d
1 changed files with 18 additions and 3 deletions
|
|
@ -59,6 +59,7 @@ use OCP\AppFramework\Http;
|
|||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\OCS\OCSException;
|
||||
use OCP\AppFramework\OCS\OCSForbiddenException;
|
||||
use OCP\AppFramework\OCS\OCSNotFoundException;
|
||||
use OCP\AppFramework\OCSController;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\HintException;
|
||||
|
|
@ -196,7 +197,14 @@ class UsersController extends AUserData {
|
|||
$usersDetails = [];
|
||||
foreach ($users as $userId) {
|
||||
$userId = (string) $userId;
|
||||
$userData = $this->getUserData($userId);
|
||||
try {
|
||||
$userData = $this->getUserData($userId);
|
||||
} catch (OCSNotFoundException $e) {
|
||||
// We still want to return all other accounts, but this one was removed from the backends
|
||||
// yet they are still in our database. Might be a LDAP remnant.
|
||||
$userData = null;
|
||||
$this->logger->warning('Found one enabled account that is removed from its backend, but still exists in Nextcloud database', ['accountId' => $userId]);
|
||||
}
|
||||
// Do not insert empty entry
|
||||
if ($userData !== null) {
|
||||
$usersDetails[$userId] = $userData;
|
||||
|
|
@ -269,12 +277,19 @@ class UsersController extends AUserData {
|
|||
|
||||
$usersDetails = [];
|
||||
foreach ($users as $userId) {
|
||||
$userData = $this->getUserData($userId);
|
||||
try {
|
||||
$userData = $this->getUserData($userId);
|
||||
} catch (OCSNotFoundException $e) {
|
||||
// We still want to return all other accounts, but this one was removed from the backends
|
||||
// yet they are still in our database. Might be a LDAP remnant.
|
||||
$userData = null;
|
||||
$this->logger->warning('Found one disabled account that was removed from its backend, but still exists in Nextcloud database', ['accountId' => $userId]);
|
||||
}
|
||||
// Do not insert empty entry
|
||||
if ($userData !== null) {
|
||||
$usersDetails[$userId] = $userData;
|
||||
} else {
|
||||
// Logged user does not have permissions to see this user
|
||||
// Currently logged in user does not have permissions to see this user
|
||||
// only showing its id
|
||||
$usersDetails[$userId] = ['id' => $userId];
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue