diff --git a/detekt/detekt.yml b/detekt/detekt.yml index 5d99fa4f220..5757bbacb4b 100644 --- a/detekt/detekt.yml +++ b/detekt/detekt.yml @@ -85,7 +85,7 @@ complexity: ignoreAnnotated: [ 'Composable' ] LongParameterList: active: true - functionThreshold: 6 + functionThreshold: 7 constructorThreshold: 7 ignoreDefaultParameters: false ignoreDataClasses: true diff --git a/logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt b/logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt index 3b3b0da7bd1..9c7f5543ec1 100644 --- a/logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt +++ b/logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt @@ -54,13 +54,13 @@ public actual class CoreLogic( actual override val globalPreferences: GlobalPrefProvider = GlobalPrefProvider( appContext, - kaliumConfigs.shouldEncryptData + kaliumConfigs.shouldEncryptData() ) actual override val globalDatabaseBuilder: GlobalDatabaseBuilder = globalDatabaseProvider( platformDatabaseData = PlatformDatabaseData(appContext), queriesContext = KaliumDispatcherImpl.io, - passphrase = if (kaliumConfigs.shouldEncryptData) { + passphrase = if (kaliumConfigs.shouldEncryptData()) { SecurityHelperImpl(globalPreferences.passphraseStorage).globalDBSecret() } else { null diff --git a/logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt b/logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt index 5c76f9ea3ed..dedf31fb121 100644 --- a/logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt +++ b/logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt @@ -51,9 +51,10 @@ public actual class CoreLogic( actual override val globalPreferences: GlobalPrefProvider = GlobalPrefProvider( rootPath = rootPath, - shouldEncryptData = kaliumConfigs.shouldEncryptData + shouldEncryptData = kaliumConfigs.shouldEncryptData() ) + // TODO: add support for encrypted DB on apple platforms actual override val globalDatabaseBuilder: GlobalDatabaseBuilder = globalDatabaseProvider( platformDatabaseData = PlatformDatabaseData( storageData = if (useInMemoryStorage) { diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/GlobalKaliumScope.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/GlobalKaliumScope.kt index 7b778f14083..16d741992db 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/GlobalKaliumScope.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/GlobalKaliumScope.kt @@ -115,8 +115,7 @@ public class GlobalKaliumScope internal constructor( get() = SessionDataSource( globalDatabase.accountsDAO, globalPreferences.authTokenStorage, - globalDatabase.serverConfigurationDAO, - kaliumConfigs + globalDatabase.serverConfigurationDAO ) public val observePersistentWebSocketConnectionStatus: ObservePersistentWebSocketConnectionStatusUseCase diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/configuration/UserConfigRepository.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/configuration/UserConfigRepository.kt index 558a82e8f0a..dfb16adb52a 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/configuration/UserConfigRepository.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/configuration/UserConfigRepository.kt @@ -191,16 +191,14 @@ internal class UserConfigDataSource internal constructor( override fun isFileSharingEnabled(): Either { val serverSideConfig = wrapStorageRequest { userConfigStorage.isFileSharingEnabled() } - val buildConfig = kaliumConfigs.fileRestrictionState - return deriveFileSharingStatus(serverSideConfig, buildConfig) + return deriveFileSharingStatus(serverSideConfig, kaliumConfigs.fileRestrictionState.value) } override fun isFileSharingEnabledFlow(): Flow> = userConfigStorage.isFileSharingEnabledFlow() .wrapStorageRequest() .map { - val buildConfig = kaliumConfigs.fileRestrictionState - deriveFileSharingStatus(it, buildConfig) + deriveFileSharingStatus(it, kaliumConfigs.fileRestrictionState.value) } private fun deriveFileSharingStatus( diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/session/SessionRepository.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/session/SessionRepository.kt index f8c523e0239..167578a4dea 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/session/SessionRepository.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/data/session/SessionRepository.kt @@ -33,7 +33,6 @@ import com.wire.kalium.logic.data.logout.LogoutReason import com.wire.kalium.logic.data.user.SsoId import com.wire.kalium.logic.data.user.UserId import com.wire.kalium.logic.di.MapperProvider -import com.wire.kalium.logic.featureFlags.KaliumConfigs import com.wire.kalium.common.functional.Either import com.wire.kalium.common.functional.flatMap import com.wire.kalium.common.functional.getOrElse @@ -61,6 +60,7 @@ internal interface SessionRepository { accountTokens: AccountTokens, proxyCredentials: ProxyCredentials?, managedBy: SsoManagedBy?, + isPersistentWebSocketEnabled: Boolean, ): Either suspend fun allSessions(): Either> @@ -91,7 +91,6 @@ internal class SessionDataSource internal constructor( private val accountsDAO: AccountsDAO, private val authTokenStorage: AuthTokenStorage, private val serverConfigDAO: ServerConfigurationDAO, - private val kaliumConfigs: KaliumConfigs, private val serverConfigMapper: ServerConfigMapper = MapperProvider.serverConfigMapper(), private val sessionMapper: SessionMapper = MapperProvider.sessionMapper(), private val idMapper: IdMapper = MapperProvider.idMapper() @@ -103,6 +102,7 @@ internal class SessionDataSource internal constructor( accountTokens: AccountTokens, proxyCredentials: ProxyCredentials?, managedBy: SsoManagedBy?, + isPersistentWebSocketEnabled: Boolean, ): Either = wrapStorageRequest { accountsDAO.insertOrReplace( @@ -110,7 +110,7 @@ internal class SessionDataSource internal constructor( ssoIdEntity = sessionMapper.toSsoIdEntity(ssoId), managedByEntity = managedBy?.toDao(), serverConfigId = serverConfigId, - isPersistentWebSocketEnabled = kaliumConfigs.isWebSocketEnabledByDefault + isPersistentWebSocketEnabled = isPersistentWebSocketEnabled ) }.flatMap { wrapStorageRequest { diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt index 1460b30a35e..a171f5f788b 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt @@ -565,7 +565,7 @@ public class UserSessionScope internal constructor( private val userStorage = userStorageProvider.getOrCreate( userId, platformUserStorageProperties, - kaliumConfigs.shouldEncryptData, + kaliumConfigs.shouldEncryptData(), kaliumConfigs.dbInvalidationControlEnabled ) diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCase.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCase.kt index fb4759d9003..d07b34aacf3 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCase.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCase.kt @@ -15,24 +15,24 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ -@file:Suppress("konsist.useCasesShouldNotAccessDaoLayerDirectly",) +@file:Suppress("konsist.useCasesShouldNotAccessDaoLayerDirectly") package com.wire.kalium.logic.feature.auth import com.wire.kalium.common.error.CoreFailure -import com.wire.kalium.logic.data.auth.AccountTokens +import com.wire.kalium.common.error.wrapStorageRequest +import com.wire.kalium.common.functional.fold +import com.wire.kalium.common.functional.getOrElse +import com.wire.kalium.common.functional.map +import com.wire.kalium.common.functional.onSuccess import com.wire.kalium.logic.configuration.server.ServerConfigMapper +import com.wire.kalium.logic.data.auth.AccountTokens import com.wire.kalium.logic.data.auth.login.ProxyCredentials import com.wire.kalium.logic.data.session.SessionRepository import com.wire.kalium.logic.data.user.SsoId +import com.wire.kalium.logic.data.user.SsoManagedBy import com.wire.kalium.logic.data.user.UserId import com.wire.kalium.logic.di.MapperProvider -import com.wire.kalium.common.functional.fold -import com.wire.kalium.common.functional.getOrElse -import com.wire.kalium.common.functional.map -import com.wire.kalium.common.functional.onSuccess -import com.wire.kalium.common.error.wrapStorageRequest -import com.wire.kalium.logic.data.user.SsoManagedBy import com.wire.kalium.persistence.daokaliumdb.ServerConfigurationDAO /** @@ -59,19 +59,36 @@ public class AddAuthenticatedUserUseCase internal constructor( ssoId: SsoId?, authTokens: AccountTokens, proxyCredentials: ProxyCredentials?, + isPersistentWebSocketEnabled: Boolean, managedBy: SsoManagedBy? = null, replace: Boolean = false ): Result = sessionRepository.doesValidSessionExist(authTokens.userId).fold( - { - Result.Failure.Generic(it) - }, + { + Result.Failure.Generic(it) + }, { doesValidSessionExist -> - when (doesValidSessionExist) { - true -> onUserExist(serverConfigId, ssoId, authTokens, proxyCredentials, managedBy, replace) - false -> storeUser(serverConfigId, ssoId, authTokens, proxyCredentials, managedBy) - } + when (doesValidSessionExist) { + true -> onUserExist( + serverConfigId, + ssoId, + authTokens, + proxyCredentials, + managedBy, + replace, + isPersistentWebSocketEnabled, + ) + + false -> storeUser( + serverConfigId, + ssoId, + authTokens, + proxyCredentials, + managedBy, + isPersistentWebSocketEnabled + ) } - ) + } + ) private suspend fun storeUser( serverConfigId: String, @@ -79,14 +96,21 @@ public class AddAuthenticatedUserUseCase internal constructor( accountTokens: AccountTokens, proxyCredentials: ProxyCredentials?, managedBy: SsoManagedBy?, + isPersistentWebSocketEnabled: Boolean, ): Result = - sessionRepository.storeSession(serverConfigId, ssoId, accountTokens, proxyCredentials, managedBy) - .onSuccess { - sessionRepository.updateCurrentSession(accountTokens.userId) - }.fold( - { Result.Failure.Generic(it) }, - { Result.Success(accountTokens.userId) } - ) + sessionRepository.storeSession( + serverConfigId, + ssoId, + accountTokens, + proxyCredentials, + managedBy, + isPersistentWebSocketEnabled + ).onSuccess { + sessionRepository.updateCurrentSession(accountTokens.userId) + }.fold( + { Result.Failure.Generic(it) }, + { Result.Success(accountTokens.userId) } + ) // In case of the new session have a different server configurations the new session should not be added @Suppress("LongParameterList") @@ -96,7 +120,8 @@ public class AddAuthenticatedUserUseCase internal constructor( newAccountTokens: AccountTokens, proxyCredentials: ProxyCredentials?, managedBy: SsoManagedBy?, - replace: Boolean + replace: Boolean, + isPersistentWebSocketEnabled: Boolean, ): Result = when (replace) { true -> { @@ -117,6 +142,7 @@ public class AddAuthenticatedUserUseCase internal constructor( accountTokens = newAccountTokens, proxyCredentials = proxyCredentials, managedBy = managedBy, + isPersistentWebSocketEnabled = isPersistentWebSocketEnabled, ) } else Result.Failure.UserAlreadyExists } diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/featureFlags/KaliumConfigs.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/featureFlags/KaliumConfigs.kt index 4950da3cb97..90077e7f0d2 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/featureFlags/KaliumConfigs.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/featureFlags/KaliumConfigs.kt @@ -26,9 +26,11 @@ import kotlin.time.Duration.Companion.hours public data class KaliumConfigs( val forceConstantBitrateCalls: Boolean = false, - val fileRestrictionState: BuildFileRestrictionState = BuildFileRestrictionState.NoRestriction, + // Lazy provider for file restriction state - evaluated when needed + val fileRestrictionState: Lazy = lazy { BuildFileRestrictionState.NoRestriction }, + // Lazy provider for encryption setting - evaluated when needed // Disabling db-encryption will crash on android-api level below 30 - val shouldEncryptData: Boolean = true, + val shouldEncryptData: () -> Boolean = { true }, val encryptProteusStorage: Boolean = false, // TODO not used can be removed val lowerKeyPackageLimits: Boolean = false, val developmentApiEnabled: Boolean = false, @@ -38,7 +40,6 @@ public data class KaliumConfigs( val wipeOnCookieInvalid: Boolean = false, val wipeOnDeviceRemoval: Boolean = false, val wipeOnRootedDevice: Boolean = false, - val isWebSocketEnabledByDefault: Boolean = false, val certPinningConfig: Map> = emptyMap(), val mockedRequests: List? = null, val mockNetworkStateObserver: NetworkStateObserver? = null, diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/session/SessionRepositoryTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/session/SessionRepositoryTest.kt index 745e752d864..e38a9cdfc9e 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/session/SessionRepositoryTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/data/session/SessionRepositoryTest.kt @@ -19,7 +19,6 @@ package com.wire.kalium.logic.data.session import com.wire.kalium.logic.di.MapperProvider -import com.wire.kalium.logic.featureFlags.KaliumConfigs import com.wire.kalium.persistence.client.AuthTokenStorage import com.wire.kalium.persistence.dao.UserIDEntity import com.wire.kalium.persistence.daokaliumdb.AccountInfoEntity @@ -78,11 +77,10 @@ class SessionRepositoryTest { val accountsDAO: AccountsDAO = mock(AccountsDAO::class) val authTokenStorage: AuthTokenStorage = mock(AuthTokenStorage::class) - val kaliumConfigs: KaliumConfigs = KaliumConfigs() val serverConfigurationDAO: ServerConfigurationDAO = mock(ServerConfigurationDAO::class) private val sessionRepository = - SessionDataSource(accountsDAO, authTokenStorage, serverConfigurationDAO, kaliumConfigs) + SessionDataSource(accountsDAO, authTokenStorage, serverConfigurationDAO) val validAccountIndoEntity = AccountInfoEntity(userIDEntity = UserIDEntity("1", "domain"), null) diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCaseTest.kt index 9be78d0f207..40d1402e691 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/auth/AddAuthenticatedUserUseCaseTest.kt @@ -19,6 +19,7 @@ package com.wire.kalium.logic.feature.auth import com.wire.kalium.common.error.StorageFailure +import com.wire.kalium.common.functional.Either import com.wire.kalium.logic.configuration.server.ServerConfig import com.wire.kalium.logic.data.auth.Account import com.wire.kalium.logic.data.auth.AccountInfo @@ -29,10 +30,9 @@ import com.wire.kalium.logic.data.session.SessionRepository import com.wire.kalium.logic.data.session.token.AccessToken import com.wire.kalium.logic.data.session.token.RefreshToken import com.wire.kalium.logic.data.user.SsoId +import com.wire.kalium.logic.data.user.SsoManagedBy import com.wire.kalium.logic.data.user.UserId import com.wire.kalium.logic.di.MapperProvider -import com.wire.kalium.common.functional.Either -import com.wire.kalium.logic.data.user.SsoManagedBy import com.wire.kalium.logic.util.stubs.newServerConfig import com.wire.kalium.persistence.dao.UserIDEntity import com.wire.kalium.persistence.daokaliumdb.ServerConfigurationDAO @@ -60,12 +60,20 @@ class AddAuthenticatedUserUseCaseTest { .withUpdateCurrentSessionResult(tokens.userId, Either.Right(Unit)) .arrange() - val actual = addAuthenticatedUserUseCase(TEST_SERVER_CONFIG.id, TEST_SSO_ID, tokens, proxyCredentials, null, false) + val actual = addAuthenticatedUserUseCase( + TEST_SERVER_CONFIG.id, + TEST_SSO_ID, + tokens, + proxyCredentials, + false, + null, + false + ) assertIs(actual) coVerify { - arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any()) + arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any(), any()) }.wasInvoked(exactly = once) coVerify { @@ -85,12 +93,20 @@ class AddAuthenticatedUserUseCaseTest { .withDoesValidSessionExistResult(tokens.userId, Either.Right(true)) .arrange() - val actual = addAuthenticatedUserUseCase(TEST_SERVER_CONFIG.id, TEST_SSO_ID, tokens, proxyCredentials, null, false) + val actual = addAuthenticatedUserUseCase( + TEST_SERVER_CONFIG.id, + TEST_SSO_ID, + tokens, + proxyCredentials, + false, + null, + false + ) assertIs(actual) coVerify { - arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any()) + arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any(), any()) }.wasNotInvoked() coVerify { @@ -124,12 +140,20 @@ class AddAuthenticatedUserUseCaseTest { .withConfigByIdSuccess(TEST_SERVER_CONFIG.id, TEST_SERVER_CONFIG_ENTITY) .arrange() - val actual = addAuthenticatedUserUseCase(TEST_SERVER_CONFIG.id, TEST_SSO_ID, newSession, proxyCredentials, null, true) + val actual = addAuthenticatedUserUseCase( + TEST_SERVER_CONFIG.id, + TEST_SSO_ID, + newSession, + proxyCredentials, + false, + null, + true + ) assertIs(actual) coVerify { - arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any()) + arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any(), any()) }.wasInvoked(exactly = once) coVerify { @@ -182,7 +206,15 @@ class AddAuthenticatedUserUseCaseTest { ) .arrange() - val actual = addAuthenticatedUserUseCase(newSessionServer.id, TEST_SSO_ID, newSession, proxyCredentials, null, true) + val actual = addAuthenticatedUserUseCase( + newSessionServer.id, + TEST_SSO_ID, + newSession, + proxyCredentials, + isPersistentWebSocketEnabled = false, + null, + true + ) assertIs(actual) @@ -190,7 +222,7 @@ class AddAuthenticatedUserUseCaseTest { arrangement.sessionRepository.doesValidSessionExist(any()) }.wasInvoked(exactly = once) coVerify { - arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any()) + arrangement.sessionRepository.storeSession(any(), any(), any(), any(), any(), any()) }.wasNotInvoked() coVerify { arrangement.sessionRepository.updateCurrentSession(any()) @@ -265,9 +297,19 @@ class AddAuthenticatedUserUseCaseTest { accountTokens: AccountTokens, proxyCredentials: ProxyCredentials?, managedBy: SsoManagedBy? = null, - result: Either + result: Either, + isPersistentWebSocketEnabled: Boolean = false ) = apply { - coEvery { sessionRepository.storeSession(serverConfigId, ssoId, accountTokens, proxyCredentials, managedBy) }.returns(result) + coEvery { + sessionRepository.storeSession( + serverConfigId, + ssoId, + accountTokens, + proxyCredentials, + managedBy, + isPersistentWebSocketEnabled = isPersistentWebSocketEnabled + ) + }.returns(result) } suspend fun withUpdateCurrentSessionResult( diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt index 94de13a75f0..ddd39850e79 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/featureConfig/SyncFeatureConfigsUseCaseTest.kt @@ -891,7 +891,7 @@ class SyncFeatureConfigsUseCaseTest { fun withBuildConfigFileSharing( state: BuildFileRestrictionState ) = apply { - kaliumConfigs = kaliumConfigs.copy(fileRestrictionState = state) + kaliumConfigs = kaliumConfigs.copy(fileRestrictionState = lazy { state }) userConfigRepository = UserConfigDataSource( inMemoryStorage, userConfigDAO, diff --git a/logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt b/logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt index 36c771d2b99..8396789dbbd 100644 --- a/logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt +++ b/logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt @@ -58,7 +58,7 @@ public actual class CoreLogic( actual override val globalPreferences: GlobalPrefProvider = GlobalPrefProvider( rootPath = rootPath, - shouldEncryptData = kaliumConfigs.shouldEncryptData + shouldEncryptData = kaliumConfigs.shouldEncryptData() ) actual override val globalDatabaseBuilder: GlobalDatabaseBuilder = globalDatabaseProvider( @@ -80,6 +80,7 @@ public actual class CoreLogic( userSessionScopeProvider.value.get(userId)?.cancel() userSessionScopeProvider.value.delete(userId) } + public actual override val networkStateObserver: NetworkStateObserver = kaliumConfigs.mockNetworkStateObserver ?: NetworkStateObserverImpl() actual override val globalCallManager: GlobalCallManager = GlobalCallManager( diff --git a/sample/cli/src/commonMain/kotlin/com/wire/kalium/cli/commands/LoginCommand.kt b/sample/cli/src/commonMain/kotlin/com/wire/kalium/cli/commands/LoginCommand.kt index 56d4c708a39..bb6ff657d27 100644 --- a/sample/cli/src/commonMain/kotlin/com/wire/kalium/cli/commands/LoginCommand.kt +++ b/sample/cli/src/commonMain/kotlin/com/wire/kalium/cli/commands/LoginCommand.kt @@ -122,7 +122,15 @@ class LoginCommand : CliktCommand(name = "login") { } val userId = coreLogic.globalScope { - addAuthenticatedAccount(loginResult.serverConfigId, loginResult.ssoID, loginResult.authData, null, null, true) + addAuthenticatedAccount( + loginResult.serverConfigId, + loginResult.ssoID, + loginResult.authData, + null, + false, + null, + true + ) loginResult.authData.userId } diff --git a/tools/testservice/src/main/kotlin/com/wire/kalium/testservice/managed/InstanceService.kt b/tools/testservice/src/main/kotlin/com/wire/kalium/testservice/managed/InstanceService.kt index 84a9047a43d..2bbd8c7f18a 100644 --- a/tools/testservice/src/main/kotlin/com/wire/kalium/testservice/managed/InstanceService.kt +++ b/tools/testservice/src/main/kotlin/com/wire/kalium/testservice/managed/InstanceService.kt @@ -223,8 +223,10 @@ class InstanceService( loginResult.ssoID, loginResult.authData, null, + false, null, - true + true, + ) if (addAccountResult !is AddAuthenticatedUserUseCase.Result.Success) { throw WebApplicationException("Instance $instanceId: Failed to save session")