Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/UsersController.php
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | public static function statusInfo($user): array | ||||
'user-new' => true, | 'user-new' => true, | ||||
'user-ldap-ready' => $user->isLdapReady(), | 'user-ldap-ready' => $user->isLdapReady(), | ||||
'user-imap-ready' => $user->isImapReady(), | 'user-imap-ready' => $user->isImapReady(), | ||||
] | ] | ||||
); | ); | ||||
// Check if the user is a controller of his wallet | // Check if the user is a controller of his wallet | ||||
$isController = $user->canDelete($user); | $isController = $user->canDelete($user); | ||||
$isDegraded = $user->isDegraded(); | |||||
$hasCustomDomain = $user->wallet()->entitlements() | $hasCustomDomain = $user->wallet()->entitlements() | ||||
->where('entitleable_type', Domain::class) | ->where('entitleable_type', Domain::class) | ||||
->count() > 0; | ->count() > 0; | ||||
// Get user's entitlements titles | // Get user's entitlements titles | ||||
$skus = $user->entitlements()->select('skus.title') | $skus = $user->entitlements()->select('skus.title') | ||||
->join('skus', 'skus.id', '=', 'entitlements.sku_id') | ->join('skus', 'skus.id', '=', 'entitlements.sku_id') | ||||
->get() | ->get() | ||||
->pluck('title') | ->pluck('title') | ||||
->sort() | ->sort() | ||||
->unique() | ->unique() | ||||
->values() | ->values() | ||||
->all(); | ->all(); | ||||
$result = [ | $result = [ | ||||
'skus' => $skus, | 'skus' => $skus, | ||||
// TODO: This will change when we enable all users to create domains | // TODO: This will change when we enable all users to create domains | ||||
'enableDomains' => $isController && $hasCustomDomain, | 'enableDomains' => $isController && $hasCustomDomain, | ||||
// TODO: Make 'enableDistlists' working for wallet controllers that aren't account owners | // TODO: Make 'enableDistlists' working for wallet controllers that aren't account owners | ||||
'enableDistlists' => $isController && $hasCustomDomain && in_array('beta-distlists', $skus), | 'enableDistlists' => $isController && $hasCustomDomain && in_array('beta-distlists', $skus), | ||||
'enableFiles' => in_array('files', $skus), | 'enableFiles' => !$isDegraded && in_array('files', $skus), | ||||
// TODO: Make 'enableFolders' working for wallet controllers that aren't account owners | // TODO: Make 'enableFolders' working for wallet controllers that aren't account owners | ||||
'enableFolders' => $isController && $hasCustomDomain && in_array('beta-shared-folders', $skus), | 'enableFolders' => $isController && $hasCustomDomain && in_array('beta-shared-folders', $skus), | ||||
// TODO: Make 'enableResources' working for wallet controllers that aren't account owners | // TODO: Make 'enableResources' working for wallet controllers that aren't account owners | ||||
'enableResources' => $isController && $hasCustomDomain && in_array('beta-resources', $skus), | 'enableResources' => $isController && $hasCustomDomain && in_array('beta-resources', $skus), | ||||
'enableRooms' => !$isDegraded && in_array('meet', $skus), | |||||
'enableSettings' => $isController, | 'enableSettings' => $isController, | ||||
'enableUsers' => $isController, | 'enableUsers' => $isController, | ||||
'enableWallets' => $isController, | 'enableWallets' => $isController, | ||||
'enableCompanionapps' => $isController && in_array('beta', $skus), | 'enableCompanionapps' => $isController && in_array('beta', $skus), | ||||
]; | ]; | ||||
return array_merge($process, $result); | return array_merge($process, $result); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 564 Lines • Show Last 20 Lines |