Page MenuHomePhorge

D5036.1775328890.diff
No OneTemporary

Authored By
Unknown
Size
5 KB
Referenced Files
None
Subscribers
None

D5036.1775328890.diff

diff --git a/src/app/Jobs/Domain/DeleteJob.php b/src/app/Jobs/Domain/DeleteJob.php
--- a/src/app/Jobs/Domain/DeleteJob.php
+++ b/src/app/Jobs/Domain/DeleteJob.php
@@ -20,6 +20,11 @@
}
// sanity checks
+ if (!$domain->trashed()) {
+ $this->fail(new \Exception("Domain {$this->domainId} is not deleted."));
+ return;
+ }
+
if ($domain->isDeleted()) {
$this->fail(new \Exception("Domain {$this->domainId} is already marked as deleted."));
return;
diff --git a/src/app/Jobs/Group/DeleteJob.php b/src/app/Jobs/Group/DeleteJob.php
--- a/src/app/Jobs/Group/DeleteJob.php
+++ b/src/app/Jobs/Group/DeleteJob.php
@@ -20,6 +20,11 @@
}
// sanity checks
+ if (!$group->trashed()) {
+ $this->fail(new \Exception("Group {$this->groupId} is not deleted."));
+ return;
+ }
+
if ($group->isDeleted()) {
$this->fail(new \Exception("Group {$this->groupId} is already marked as deleted."));
return;
diff --git a/src/app/Jobs/Resource/DeleteJob.php b/src/app/Jobs/Resource/DeleteJob.php
--- a/src/app/Jobs/Resource/DeleteJob.php
+++ b/src/app/Jobs/Resource/DeleteJob.php
@@ -20,6 +20,11 @@
}
// sanity checks
+ if (!$resource->trashed()) {
+ $this->fail(new \Exception("Resource {$this->resourceId} is not deleted."));
+ return;
+ }
+
if ($resource->isDeleted()) {
$this->fail(new \Exception("Resource {$this->resourceId} is already marked as deleted."));
return;
diff --git a/src/app/Jobs/SharedFolder/DeleteJob.php b/src/app/Jobs/SharedFolder/DeleteJob.php
--- a/src/app/Jobs/SharedFolder/DeleteJob.php
+++ b/src/app/Jobs/SharedFolder/DeleteJob.php
@@ -20,6 +20,11 @@
}
// sanity checks
+ if (!$folder->trashed()) {
+ $this->fail(new \Exception("Shared folder {$this->folderId} is not deleted."));
+ return;
+ }
+
if ($folder->isDeleted()) {
$this->fail(new \Exception("Shared folder {$this->folderId} is already marked as deleted."));
return;
diff --git a/src/app/Jobs/User/DeleteJob.php b/src/app/Jobs/User/DeleteJob.php
--- a/src/app/Jobs/User/DeleteJob.php
+++ b/src/app/Jobs/User/DeleteJob.php
@@ -26,6 +26,11 @@
return;
}
+ if (!$user->trashed()) {
+ $this->fail(new \Exception("User {$this->userId} is not deleted."));
+ return;
+ }
+
// sanity checks
if ($user->isDeleted()) {
$this->fail(new \Exception("User {$this->userId} is already marked as deleted."));
diff --git a/src/tests/Feature/Jobs/Group/DeleteTest.php b/src/tests/Feature/Jobs/Group/DeleteTest.php
--- a/src/tests/Feature/Jobs/Group/DeleteTest.php
+++ b/src/tests/Feature/Jobs/Group/DeleteTest.php
@@ -49,6 +49,13 @@
$this->assertFalse($group->isLdapReady());
}
+ // Test group that is not deleted yet
+ $job = new \App\Jobs\Group\DeleteJob($group->id);
+ $job->handle();
+
+ $this->assertTrue($job->hasFailed());
+ $this->assertSame("Group {$group->id} is not deleted.", $job->failureMessage);
+
$group->deleted_at = \now();
$group->saveQuietly();
diff --git a/src/tests/Feature/Jobs/Resource/DeleteTest.php b/src/tests/Feature/Jobs/Resource/DeleteTest.php
--- a/src/tests/Feature/Jobs/Resource/DeleteTest.php
+++ b/src/tests/Feature/Jobs/Resource/DeleteTest.php
@@ -56,6 +56,13 @@
$this->assertTrue($resource->isImapReady());
$this->assertFalse($resource->isDeleted());
+ // Test deleting not deleted resource
+ $job = new \App\Jobs\Resource\DeleteJob($resource->id);
+ $job->handle();
+
+ $this->assertTrue($job->hasFailed());
+ $this->assertSame("Resource {$resource->id} is not deleted.", $job->failureMessage);
+
$resource->deleted_at = \now();
$resource->saveQuietly();
Queue::fake();
diff --git a/src/tests/Feature/Jobs/SharedFolder/DeleteTest.php b/src/tests/Feature/Jobs/SharedFolder/DeleteTest.php
--- a/src/tests/Feature/Jobs/SharedFolder/DeleteTest.php
+++ b/src/tests/Feature/Jobs/SharedFolder/DeleteTest.php
@@ -60,6 +60,13 @@
$this->assertTrue($folder->isImapReady());
$this->assertFalse($folder->isDeleted());
+ // Test deleting not deleted folder
+ $job = new \App\Jobs\SharedFolder\DeleteJob($folder->id);
+ $job->handle();
+
+ $this->assertTrue($job->hasFailed());
+ $this->assertSame("Shared folder {$folder->id} is not deleted.", $job->failureMessage);
+
$folder->deleted_at = \now();
$folder->saveQuietly();
Queue::fake();
diff --git a/src/tests/Feature/Jobs/User/DeleteTest.php b/src/tests/Feature/Jobs/User/DeleteTest.php
--- a/src/tests/Feature/Jobs/User/DeleteTest.php
+++ b/src/tests/Feature/Jobs/User/DeleteTest.php
@@ -59,9 +59,17 @@
$this->assertFalse($user->isDeleted());
$this->assertNotNull($rcdb->table('users')->where('username', $user->email)->first());
+ // Test job failure (user not yet deleted)
+ $job = new \App\Jobs\User\DeleteJob($user->id);
+ $job->handle();
+
+ $this->assertTrue($job->hasFailed());
+ $this->assertSame("User {$user->id} is not deleted.", $job->failureMessage);
+
// Test job failure (user already deleted)
$user->status |= User::STATUS_DELETED;
- $user->save();
+ $user->deleted_at = \now();
+ $user->saveQuietly();
$job = new \App\Jobs\User\DeleteJob($user->id);
$job->handle();
@@ -71,7 +79,6 @@
// Test success delete from LDAP, IMAP and Roundcube
$user->status ^= User::STATUS_DELETED;
- $user->deleted_at = \now();
$user->saveQuietly();
$this->assertFalse($user->isDeleted());

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 4, 6:54 PM (19 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18826383
Default Alt Text
D5036.1775328890.diff (5 KB)

Event Timeline