Page MenuHomePhorge

D5454.1775234954.diff
No OneTemporary

Authored By
Unknown
Size
10 KB
Referenced Files
None
Subscribers
None

D5454.1775234954.diff

diff --git a/src/app/Http/Controllers/API/V4/UsersController.php b/src/app/Http/Controllers/API/V4/UsersController.php
--- a/src/app/Http/Controllers/API/V4/UsersController.php
+++ b/src/app/Http/Controllers/API/V4/UsersController.php
@@ -457,7 +457,7 @@
$wallet = $user->wallet();
// IsLocked flag to lock the user to the Wallet page only
- $response['isLocked'] = (!$user->isActive() && ($plan = $wallet->plan()) && $plan->mode == Plan::MODE_MANDATE);
+ $response['isLocked'] = !$user->isActive() && $wallet->plan()?->mode == Plan::MODE_MANDATE;
// Settings
$keys = array_merge(self::USER_SETTINGS, ['password_expired']);
diff --git a/src/app/Jobs/Domain/CreateJob.php b/src/app/Jobs/Domain/CreateJob.php
--- a/src/app/Jobs/Domain/CreateJob.php
+++ b/src/app/Jobs/Domain/CreateJob.php
@@ -27,7 +27,7 @@
LDAP::createDomain($domain);
$domain->status |= Domain::STATUS_LDAP_READY;
- $domain->save();
+ $domain->saveQuietly();
}
VerifyJob::dispatch($domain->id);
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
@@ -35,6 +35,6 @@
}
$domain->status |= Domain::STATUS_DELETED;
- $domain->save();
+ $domain->saveQuietly();
}
}
diff --git a/src/app/Jobs/Group/CreateJob.php b/src/app/Jobs/Group/CreateJob.php
--- a/src/app/Jobs/Group/CreateJob.php
+++ b/src/app/Jobs/Group/CreateJob.php
@@ -30,6 +30,6 @@
}
$group->status |= Group::STATUS_ACTIVE;
- $group->save();
+ $group->saveQuietly();
}
}
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
@@ -33,16 +33,8 @@
$group->status ^= Group::STATUS_LDAP_READY;
}
- /*
- if (\config('app.with_imap') && $group->isImapReady()) {
- if (!\App\Support\Facades\IMAP::deleteGroup($group)) {
- throw new \Exception("Failed to delete group {$this->groupId} from IMAP.");
- }
-
- $group->status ^= \App\Group::STATUS_IMAP_READY;
- }
- */
+
$group->status |= Group::STATUS_DELETED;
- $group->save();
+ $group->saveQuietly();
}
}
diff --git a/src/app/Jobs/Mail/SignupInvitationJob.php b/src/app/Jobs/Mail/SignupInvitationJob.php
--- a/src/app/Jobs/Mail/SignupInvitationJob.php
+++ b/src/app/Jobs/Mail/SignupInvitationJob.php
@@ -35,7 +35,7 @@
// Update invitation status
$this->invitation->status = SignupInvitation::STATUS_SENT;
- $this->invitation->save();
+ $this->invitation->saveQuietly();
}
/**
@@ -46,7 +46,7 @@
if ($this->attempts() >= $this->tries) {
// Update invitation status
$this->invitation->status = SignupInvitation::STATUS_FAILED;
- $this->invitation->save();
+ $this->invitation->saveQuietly();
}
}
}
diff --git a/src/app/Jobs/Resource/CreateJob.php b/src/app/Jobs/Resource/CreateJob.php
--- a/src/app/Jobs/Resource/CreateJob.php
+++ b/src/app/Jobs/Resource/CreateJob.php
@@ -48,7 +48,7 @@
LDAP::createResource($resource);
$resource->status |= Resource::STATUS_LDAP_READY;
- $resource->save();
+ $resource->saveQuietly();
}
if (!$resource->isImapReady()) {
@@ -69,6 +69,6 @@
}
$resource->status |= Resource::STATUS_ACTIVE;
- $resource->save();
+ $resource->saveQuietly();
}
}
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
@@ -33,7 +33,7 @@
LDAP::deleteResource($resource);
$resource->status ^= Resource::STATUS_LDAP_READY;
- $resource->save();
+ $resource->saveQuietly();
}
if ($resource->isImapReady()) {
@@ -47,6 +47,6 @@
}
$resource->status |= Resource::STATUS_DELETED;
- $resource->save();
+ $resource->saveQuietly();
}
}
diff --git a/src/app/Jobs/Resource/VerifyJob.php b/src/app/Jobs/Resource/VerifyJob.php
--- a/src/app/Jobs/Resource/VerifyJob.php
+++ b/src/app/Jobs/Resource/VerifyJob.php
@@ -28,7 +28,7 @@
if ($folder && IMAP::verifySharedFolder($folder)) {
$resource->status |= Resource::STATUS_IMAP_READY;
$resource->status |= Resource::STATUS_ACTIVE;
- $resource->save();
+ $resource->saveQuietly();
}
}
}
diff --git a/src/app/Jobs/SharedFolder/CreateJob.php b/src/app/Jobs/SharedFolder/CreateJob.php
--- a/src/app/Jobs/SharedFolder/CreateJob.php
+++ b/src/app/Jobs/SharedFolder/CreateJob.php
@@ -48,7 +48,7 @@
LDAP::createSharedFolder($folder);
$folder->status |= SharedFolder::STATUS_LDAP_READY;
- $folder->save();
+ $folder->saveQuietly();
}
if (!$folder->isImapReady()) {
@@ -69,6 +69,6 @@
}
$folder->status |= SharedFolder::STATUS_ACTIVE;
- $folder->save();
+ $folder->saveQuietly();
}
}
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
@@ -33,8 +33,7 @@
LDAP::deleteSharedFolder($folder);
$folder->status ^= SharedFolder::STATUS_LDAP_READY;
- // Already save in case of exception below
- $folder->save();
+ $folder->saveQuietly();
}
if ($folder->isImapReady()) {
@@ -48,6 +47,6 @@
}
$folder->status |= SharedFolder::STATUS_DELETED;
- $folder->save();
+ $folder->saveQuietly();
}
}
diff --git a/src/app/Jobs/SharedFolder/VerifyJob.php b/src/app/Jobs/SharedFolder/VerifyJob.php
--- a/src/app/Jobs/SharedFolder/VerifyJob.php
+++ b/src/app/Jobs/SharedFolder/VerifyJob.php
@@ -28,7 +28,7 @@
if (IMAP::verifySharedFolder($folderName)) {
$folder->status |= SharedFolder::STATUS_IMAP_READY;
$folder->status |= SharedFolder::STATUS_ACTIVE;
- $folder->save();
+ $folder->saveQuietly();
}
}
}
diff --git a/src/app/Jobs/User/CreateJob.php b/src/app/Jobs/User/CreateJob.php
--- a/src/app/Jobs/User/CreateJob.php
+++ b/src/app/Jobs/User/CreateJob.php
@@ -88,11 +88,17 @@
}
}
+ // Make user active in non-mandate mode only
+ if (!$user->isActive() && $user->wallet()?->plan()?->mode != Plan::MODE_MANDATE) {
+ $user->status |= User::STATUS_ACTIVE;
+ $user->saveQuietly();
+ }
+
if ($withLdap && !$user->isLdapReady()) {
LDAP::createUser($user);
$user->status |= User::STATUS_LDAP_READY;
- $user->save();
+ $user->saveQuietly();
}
if (!$user->isImapReady()) {
@@ -108,20 +114,10 @@
}
$user->status |= User::STATUS_IMAP_READY;
+ $user->saveQuietly();
}
// FIXME: Should we ignore exceptions on this operation or introduce DAV_READY status?
DAV::initDefaultFolders($user);
-
- // Make user active in non-mandate mode only
- if (
- !($wallet = $user->wallet())
- || !($plan = $user->wallet()->plan())
- || $plan->mode != Plan::MODE_MANDATE
- ) {
- $user->status |= User::STATUS_ACTIVE;
- }
-
- $user->save();
}
}
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
@@ -40,7 +40,7 @@
LDAP::deleteUser($user);
$user->status ^= User::STATUS_LDAP_READY;
- $user->save();
+ $user->saveQuietly();
}
if ($user->isImapReady()) {
@@ -58,6 +58,6 @@
}
$user->status |= User::STATUS_DELETED;
- $user->save();
+ $user->saveQuietly();
}
}
diff --git a/src/app/Jobs/User/ResyncJob.php b/src/app/Jobs/User/ResyncJob.php
--- a/src/app/Jobs/User/ResyncJob.php
+++ b/src/app/Jobs/User/ResyncJob.php
@@ -38,7 +38,7 @@
$domain = $user->domain();
if (!$domain->isPublic() && !LDAP::getDomain($domain->namespace)) {
$domain->status &= ~Domain::STATUS_LDAP_READY;
- $domain->save();
+ $domain->saveQuietly();
CreateJob::dispatchSync($domain->id);
}
@@ -57,7 +57,7 @@
}
}
- $user->update();
+ $user->saveQuietly();
$userJob::dispatchSync($user->id);
}
diff --git a/src/tests/Feature/Jobs/User/CreateTest.php b/src/tests/Feature/Jobs/User/CreateTest.php
--- a/src/tests/Feature/Jobs/User/CreateTest.php
+++ b/src/tests/Feature/Jobs/User/CreateTest.php
@@ -33,14 +33,14 @@
*/
public function testHandle(): void
{
- Queue::fake();
-
$user = $this->getTestUser('new-job-user@' . \config('app.domain'), ['status' => User::STATUS_NEW]);
$user->assignSku(Sku::withEnvTenantContext()->where('title', 'mailbox')->first());
$domain = Domain::where('namespace', \config('app.domain'))->first();
$domain->status |= Domain::STATUS_LDAP_READY;
$domain->save();
+ Queue::fake();
+
// TODO: Make the test working with various with_imap/with_ldap combinations
\config(['app.with_ldap' => true]);
\config(['app.with_imap' => true]);
@@ -65,7 +65,7 @@
$this->assertTrue($user->isActive());
// Test deleted user
- $user->delete();
+ $user->deleteQuietly();
$job = (new CreateJob($user->id))->withFakeQueueInteractions();
$job->handle();
@@ -78,5 +78,7 @@
// TODO: Test failures on domain sanity checks
// TODO: Test partial execution, i.e. only IMAP or only LDAP
+
+ Queue::assertNothingPushed();
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 4:49 PM (11 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18824295
Default Alt Text
D5454.1775234954.diff (10 KB)

Event Timeline