Page MenuHomePhorge

D3791.1775422026.diff
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

D3791.1775422026.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
@@ -165,7 +165,9 @@
// Check if the user is a controller of his wallet
$isController = $user->canDelete($user);
+
$isDegraded = $user->isDegraded();
+ $hasMeet = !$isDegraded && Sku::withObjectTenantContext($user)->where('title', 'room')->exists();
$hasCustomDomain = $user->wallet()->entitlements()
->where('entitleable_type', Domain::class)
->count() > 0;
@@ -194,7 +196,7 @@
'enableFolders' => $isController && $hasCustomDomain && $hasBeta,
// TODO: Make 'enableResources' working for wallet controllers that aren't account owners
'enableResources' => $isController && $hasCustomDomain && $hasBeta,
- 'enableRooms' => !$isDegraded,
+ 'enableRooms' => $hasMeet,
'enableSettings' => $isController,
'enableUsers' => $isController,
'enableWallets' => $isController,
diff --git a/src/tests/Feature/Controller/UsersTest.php b/src/tests/Feature/Controller/UsersTest.php
--- a/src/tests/Feature/Controller/UsersTest.php
+++ b/src/tests/Feature/Controller/UsersTest.php
@@ -557,6 +557,8 @@
$this->assertSame('user-imap-ready', $result['process'][2]['label']);
$this->assertSame(false, $result['process'][2]['state']);
$this->assertSame('running', $result['processState']);
+ $this->assertTrue($result['enableRooms']);
+ $this->assertFalse($result['enableBeta']);
$user->created_at = Carbon::now()->subSeconds(181);
$user->save();
@@ -610,12 +612,30 @@
$result = UsersController::statusInfo($user);
$this->assertSame(['beta'], $result['skus']);
+ $this->assertTrue($result['enableBeta']);
$user->assignSku(Sku::withEnvTenantContext()->where('title', 'groupware')->first());
$result = UsersController::statusInfo($user);
$this->assertSame(['beta', 'groupware'], $result['skus']);
+
+ // Degraded user
+ $user->status |= User::STATUS_DEGRADED;
+ $user->save();
+
+ $result = UsersController::statusInfo($user);
+ $this->assertTrue($result['enableBeta']);
+ $this->assertFalse($result['enableRooms']);
+
+ // User in a tenant without 'room' SKU
+ $user->status = User::STATUS_LDAP_READY | User::STATUS_IMAP_READY | User::STATUS_ACTIVE;
+ $user->tenant_id = Tenant::where('title', 'Sample Tenant')->first()->id;
+ $user->save();
+
+ $result = UsersController::statusInfo($user);
+ $this->assertTrue($result['enableBeta']);
+ $this->assertFalse($result['enableRooms']);
}
/**

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 8:47 PM (8 h, 57 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18834420
Default Alt Text
D3791.1775422026.diff (2 KB)

Event Timeline