From cf3defa8cf9d92a01263722fecae3a307a23451b Mon Sep 17 00:00:00 2001 From: Vincent Te Date: Tue, 12 May 2026 09:54:43 +0200 Subject: [PATCH 1/3] chore: Remove unused field in User for better implementation on iOS --- Core | 2 +- .../infomaniak/auth/utils/MigrationUtils.kt | 100 +----------------- .../migration/user/preferences/Preferences.kt | 3 - .../preferences/security/SharedSecurity.kt | 23 ---- 4 files changed, 4 insertions(+), 124 deletions(-) diff --git a/Core b/Core index 76e4cc18..a1f5d96b 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit 76e4cc183acc4e76513b5eb2ea075aa9a2ab5cef +Subproject commit a1f5d96bb666bb4071d69fa84353f45a6c584dc9 diff --git a/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt b/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt index 775bcdba..6d17a502 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt @@ -17,23 +17,15 @@ */ package com.infomaniak.auth.utils +import com.infomaniak.auth.lib.models.migration.SharedApiToken import com.infomaniak.auth.lib.models.migration.user.SharedUserProfile import com.infomaniak.auth.lib.models.migration.user.preferences.Preferences -import com.infomaniak.auth.lib.models.migration.user.preferences.SharedCountry -import com.infomaniak.auth.lib.models.migration.user.preferences.SharedLanguage import com.infomaniak.auth.lib.models.migration.user.preferences.SharedOrganizationPreference -import com.infomaniak.auth.lib.models.migration.user.preferences.SharedTimeZone -import com.infomaniak.auth.lib.models.migration.user.preferences.security.SharedAuthDevices import com.infomaniak.auth.lib.models.migration.user.preferences.security.SharedSecurity import com.infomaniak.core.auth.models.user.User -import com.infomaniak.auth.lib.models.migration.SharedApiToken -import com.infomaniak.core.auth.models.user.preferences.Country -import com.infomaniak.core.auth.models.user.preferences.Language import com.infomaniak.core.auth.models.user.preferences.OrganizationPreference -import com.infomaniak.core.auth.models.user.preferences.Preferences as CorePreferences -import com.infomaniak.core.auth.models.user.preferences.TimeZone -import com.infomaniak.core.auth.models.user.preferences.security.AuthDevices import com.infomaniak.core.auth.models.user.preferences.security.Security +import com.infomaniak.core.auth.models.user.preferences.Preferences as CorePreferences import com.infomaniak.lib.login.ApiToken as LoginApiToken fun LoginApiToken.toSharedApiToken(): SharedApiToken { @@ -83,47 +75,11 @@ fun User.toSharedUser(): SharedUserProfile { private fun Preferences.toCorePreferences() = CorePreferences( security = security?.toSecurity(), organizationPreference = organizationPreference.toOrganizationPreference(), - language = language.toLanguage(), - country = country.toCountry(), - timezone = timezone?.toTimeZone(), ) private fun CorePreferences.toPreferences() = Preferences( security = security?.toSharedSecurity(), - organizationPreference = organizationPreference.toSharedOrganizationPreference(), - language = language.toSharedLanguage(), - country = country.toSharedCountry(), - timezone = timezone?.toSharedTimeZone(), -) - -private fun SharedLanguage.toLanguage() = Language( - shortName = shortName, - locale = locale, - shortLocale = shortLocale, -) - -private fun Language.toSharedLanguage() = SharedLanguage( - shortName = shortName, - locale = locale, - shortLocale = shortLocale, -) - -private fun SharedCountry.toCountry() = Country( - shortName = shortName, - isEnabled = isEnabled, -) - -private fun Country.toSharedCountry() = SharedCountry( - shortName = shortName, - isEnabled = isEnabled, -) - -private fun SharedTimeZone.toTimeZone() = TimeZone( - gmt = gmt, -) - -private fun TimeZone.toSharedTimeZone() = SharedTimeZone( - gmt = gmt, + organizationPreference = organizationPreference.toSharedOrganizationPreference() ) private fun SharedOrganizationPreference.toOrganizationPreference() = OrganizationPreference( @@ -138,60 +94,10 @@ private fun OrganizationPreference.toSharedOrganizationPreference() = SharedOrga private fun SharedSecurity.toSecurity() = Security( score = score, - hasRecoveryEmail = hasRecoveryEmail, - hasValidPhone = hasValidPhone, - emailValidatedAt = emailValidatedAt ?: 0L, - otp = otp, - sms = sms, - smsPhone = smsPhone, - yubikey = yubikey, - infomaniakApplication = infomaniakApplication, - doubleAuth = doubleAuth, - remainingRescueCode = remainingRescueCode, - lastLoginAt = lastLoginAt, dateLastChangedPassword = dateLastChangedPassword, - doubleAuthMethod = doubleAuthMethod, - authDevices = authDevices?.mapTo(ArrayList()) { it.toAuthDevices() }, ) private fun Security.toSharedSecurity() = SharedSecurity( score = score, - hasRecoveryEmail = hasRecoveryEmail, - hasValidPhone = hasValidPhone, - emailValidatedAt = emailValidatedAt, - otp = otp, - sms = sms, - smsPhone = smsPhone, - yubikey = yubikey, - infomaniakApplication = infomaniakApplication, - doubleAuth = doubleAuth, - remainingRescueCode = remainingRescueCode, - lastLoginAt = lastLoginAt, dateLastChangedPassword = dateLastChangedPassword, - doubleAuthMethod = doubleAuthMethod, - authDevices = authDevices?.mapTo(ArrayList()) { it.toSharedAuthDevices() }, -) - -private fun SharedAuthDevices.toAuthDevices() = AuthDevices( - id = id, - name = name, - lastConnexion = lastConnexion ?: 0L, - userAgent = userAgent, - userIp = userIp, - device = device, - createdAt = createdAt, - updatedAt = updatedAt, - deletedAt = deletedAt, -) - -private fun AuthDevices.toSharedAuthDevices() = SharedAuthDevices( - id = id, - name = name, - lastConnexion = lastConnexion, - userAgent = userAgent, - userIp = userIp, - device = device, - createdAt = createdAt, - updatedAt = updatedAt, - deletedAt = deletedAt, ) diff --git a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/Preferences.kt b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/Preferences.kt index c4a30d14..0b246ff7 100644 --- a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/Preferences.kt +++ b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/Preferences.kt @@ -26,7 +26,4 @@ data class Preferences( var security: SharedSecurity?, @SerialName("account") var organizationPreference: SharedOrganizationPreference, - var language: SharedLanguage, - var country: SharedCountry, - var timezone: SharedTimeZone? = null, ) diff --git a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/security/SharedSecurity.kt b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/security/SharedSecurity.kt index f79594d2..21edaf56 100644 --- a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/security/SharedSecurity.kt +++ b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/security/SharedSecurity.kt @@ -23,29 +23,6 @@ import kotlinx.serialization.Serializable @Serializable data class SharedSecurity( var score: Int, - @SerialName("has_recovery_email") - var hasRecoveryEmail: Boolean, - @SerialName("has_valid_phone") - var hasValidPhone: Boolean, - @SerialName("email_validated_at") - var emailValidatedAt: Long?, - var otp: Boolean, - var sms: Boolean, - @SerialName("sms_phone") - var smsPhone: String, - var yubikey: Boolean, - @SerialName("infomaniak_application") - var infomaniakApplication: Boolean, - @SerialName("double_auth") - var doubleAuth: Boolean, - @SerialName("remaining_rescue_code") - var remainingRescueCode: Int, - @SerialName("last_login_at") - var lastLoginAt: Long, @SerialName("date_last_changed_password") var dateLastChangedPassword: Long, - @SerialName("double_auth_method") - var doubleAuthMethod: String, - @SerialName("auth_devices") - var authDevices: ArrayList?, ) From c5154f28f63b37a5e2daedc0c92b351fc4fd80da Mon Sep 17 00:00:00 2001 From: Vincent Te Date: Tue, 12 May 2026 16:47:31 +0200 Subject: [PATCH 2/3] chore: Update Core --- Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core b/Core index a1f5d96b..fd6a579e 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit a1f5d96bb666bb4071d69fa84353f45a6c584dc9 +Subproject commit fd6a579e726fa9757979990ce77b1ca4a160576e From 5df9a3ef4bd6ea4f68d6b99f4a8bcc213cfbdf7f Mon Sep 17 00:00:00 2001 From: Vincent Te Date: Tue, 12 May 2026 17:09:26 +0200 Subject: [PATCH 3/3] chore: Remove lastLoginAt --- Core | 2 +- app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt | 2 -- .../migration/user/preferences/SharedOrganizationPreference.kt | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/Core b/Core index fd6a579e..a609ec32 160000 --- a/Core +++ b/Core @@ -1 +1 @@ -Subproject commit fd6a579e726fa9757979990ce77b1ca4a160576e +Subproject commit a609ec32f12305301403fdfb97703fff3a6001aa diff --git a/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt b/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt index 6d17a502..cfc66f67 100644 --- a/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt +++ b/app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt @@ -84,12 +84,10 @@ private fun CorePreferences.toPreferences() = Preferences( private fun SharedOrganizationPreference.toOrganizationPreference() = OrganizationPreference( currentOrganizationId = currentOrganizationId, - lastLoginAt = lastLoginAt, ) private fun OrganizationPreference.toSharedOrganizationPreference() = SharedOrganizationPreference( currentOrganizationId = currentOrganizationId, - lastLoginAt = lastLoginAt, ) private fun SharedSecurity.toSecurity() = Security( diff --git a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/SharedOrganizationPreference.kt b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/SharedOrganizationPreference.kt index 98d26521..c83492d0 100644 --- a/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/SharedOrganizationPreference.kt +++ b/multiplatform-lib/src/commonMain/kotlin/models/migration/user/preferences/SharedOrganizationPreference.kt @@ -24,6 +24,4 @@ import kotlinx.serialization.Serializable data class SharedOrganizationPreference( @SerialName("current_account_id") var currentOrganizationId: Int, - @SerialName("last_login_at") - var lastLoginAt: Long, )