diff options
author | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-01-31 14:44:59 +0100 |
---|---|---|
committer | Côme Chilliet <come.chilliet@nextcloud.com> | 2022-02-17 09:58:28 +0100 |
commit | 75ce9a4832425f6a0226815c5d3407108a36d1ba (patch) | |
tree | 0a55469b09abde230903e788e6e1e1c0caffbdd0 | |
parent | 5ee0fb3acb918d16c78addaa54d3a581f9e4f982 (diff) | |
download | nextcloud-server-75ce9a4832425f6a0226815c5d3407108a36d1ba.tar.gz nextcloud-server-75ce9a4832425f6a0226815c5d3407108a36d1ba.zip |
Fix ldap:check-user method for newly created LDAP users
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
-rw-r--r-- | apps/user_ldap/lib/Command/CheckUser.php | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/apps/user_ldap/lib/Command/CheckUser.php b/apps/user_ldap/lib/Command/CheckUser.php index e6b5a634a24..d05d341f6d9 100644 --- a/apps/user_ldap/lib/Command/CheckUser.php +++ b/apps/user_ldap/lib/Command/CheckUser.php @@ -90,7 +90,7 @@ class CheckUser extends Command { try { $uid = $input->getArgument('ocName'); $this->isAllowed($input->getOption('force')); - $this->confirmUserIsMapped($uid); + $wasMapped = $this->userWasMapped($uid); $exists = $this->backend->userExistsOnLDAP($uid, true); if ($exists === true) { $output->writeln('The user is still available on LDAP.'); @@ -98,13 +98,15 @@ class CheckUser extends Command { $this->updateUser($uid, $output); } return 0; + } elseif ($wasMapped) { + $this->dui->markUser($uid); + $output->writeln('The user does not exists on LDAP anymore.'); + $output->writeln('Clean up the user\'s remnants by: ./occ user:delete "' + . $uid . '"'); + return 0; + } else { + throw new \Exception('The given user is not a recognized LDAP user.'); } - - $this->dui->markUser($uid); - $output->writeln('The user does not exists on LDAP anymore.'); - $output->writeln('Clean up the user\'s remnants by: ./occ user:delete "' - . $uid . '"'); - return 0; } catch (\Exception $e) { $output->writeln('<error>' . $e->getMessage(). '</error>'); return 1; @@ -114,16 +116,10 @@ class CheckUser extends Command { /** * checks whether a user is actually mapped * @param string $ocName the username as used in Nextcloud - * @throws \Exception - * @return true */ - protected function confirmUserIsMapped($ocName) { + protected function userWasMapped(string $ocName): bool { $dn = $this->mapping->getDNByName($ocName); - if ($dn === false) { - throw new \Exception('The given user is not a recognized LDAP user.'); - } - - return true; + return ($dn !== false); } /** |