Changeset View
Changeset View
Standalone View
Standalone View
src/app/Backends/IMAP.php
Show First 20 Lines • Show All 152 Lines • ▼ Show 20 Lines | public static function deleteUser(User $user): bool | ||||
$mailbox = self::toUTF7('user/' . $user->email); | $mailbox = self::toUTF7('user/' . $user->email); | ||||
// To delete the mailbox cyrus-admin needs extra permissions | // To delete the mailbox cyrus-admin needs extra permissions | ||||
$imap->setACL($mailbox, $config['user'], 'c'); | $imap->setACL($mailbox, $config['user'], 'c'); | ||||
// Delete the mailbox (no need to delete subfolders?) | // Delete the mailbox (no need to delete subfolders?) | ||||
$result = $imap->deleteFolder($mailbox); | $result = $imap->deleteFolder($mailbox); | ||||
if (!$result) { | |||||
// Ignore the error if the folder doesn't exist (maybe it was removed already). | |||||
if (!self::folderExists($imap, $mailbox)) { | |||||
\Log::info("The mailbox to delete was already removed: $mailbox"); | |||||
$result = true; | |||||
} | |||||
} | |||||
$imap->closeConnection(); | $imap->closeConnection(); | ||||
// Cleanup ACL | // Cleanup ACL | ||||
\App\Jobs\IMAP\AclCleanupJob::dispatch($user->email); | \App\Jobs\IMAP\AclCleanupJob::dispatch($user->email); | ||||
return $result; | return $result; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 536 Lines • Show Last 20 Lines |