Store the authentication issuer into DB.
This commit is contained in:
parent
dc19380fbf
commit
a889d8d678
|
@ -85,6 +85,11 @@ data class HomeServerCapabilities(
|
||||||
* External account management url for use with MSC3824 delegated OIDC, provided in Wellknown.
|
* External account management url for use with MSC3824 delegated OIDC, provided in Wellknown.
|
||||||
*/
|
*/
|
||||||
val externalAccountManagementUrl: String? = null,
|
val externalAccountManagementUrl: String? = null,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Authentication issuer for use with MSC3824 delegated OIDC, provided in Wellknown.
|
||||||
|
*/
|
||||||
|
val authenticationIssuer: String? = null,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
enum class RoomCapabilitySupport {
|
enum class RoomCapabilitySupport {
|
||||||
|
|
|
@ -69,6 +69,7 @@ import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo049
|
||||||
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo050
|
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo050
|
||||||
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo051
|
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo051
|
||||||
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo052
|
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo052
|
||||||
|
import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo053
|
||||||
import org.matrix.android.sdk.internal.util.Normalizer
|
import org.matrix.android.sdk.internal.util.Normalizer
|
||||||
import org.matrix.android.sdk.internal.util.database.MatrixRealmMigration
|
import org.matrix.android.sdk.internal.util.database.MatrixRealmMigration
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -77,7 +78,7 @@ internal class RealmSessionStoreMigration @Inject constructor(
|
||||||
private val normalizer: Normalizer
|
private val normalizer: Normalizer
|
||||||
) : MatrixRealmMigration(
|
) : MatrixRealmMigration(
|
||||||
dbName = "Session",
|
dbName = "Session",
|
||||||
schemaVersion = 52L,
|
schemaVersion = 53L,
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* Forces all RealmSessionStoreMigration instances to be equal.
|
* Forces all RealmSessionStoreMigration instances to be equal.
|
||||||
|
@ -139,5 +140,6 @@ internal class RealmSessionStoreMigration @Inject constructor(
|
||||||
if (oldVersion < 50) MigrateSessionTo050(realm).perform()
|
if (oldVersion < 50) MigrateSessionTo050(realm).perform()
|
||||||
if (oldVersion < 51) MigrateSessionTo051(realm).perform()
|
if (oldVersion < 51) MigrateSessionTo051(realm).perform()
|
||||||
if (oldVersion < 52) MigrateSessionTo052(realm).perform()
|
if (oldVersion < 52) MigrateSessionTo052(realm).perform()
|
||||||
|
if (oldVersion < 53) MigrateSessionTo053(realm).perform()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,7 @@ internal object HomeServerCapabilitiesMapper {
|
||||||
canRemotelyTogglePushNotificationsOfDevices = entity.canRemotelyTogglePushNotificationsOfDevices,
|
canRemotelyTogglePushNotificationsOfDevices = entity.canRemotelyTogglePushNotificationsOfDevices,
|
||||||
canRedactRelatedEvents = entity.canRedactEventWithRelations,
|
canRedactRelatedEvents = entity.canRedactEventWithRelations,
|
||||||
externalAccountManagementUrl = entity.externalAccountManagementUrl,
|
externalAccountManagementUrl = entity.externalAccountManagementUrl,
|
||||||
|
authenticationIssuer = entity.authenticationIssuer,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2023 The Matrix.org Foundation C.I.C.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.matrix.android.sdk.internal.database.migration
|
||||||
|
|
||||||
|
import io.realm.DynamicRealm
|
||||||
|
import org.matrix.android.sdk.internal.database.model.HomeServerCapabilitiesEntityFields
|
||||||
|
import org.matrix.android.sdk.internal.extensions.forceRefreshOfHomeServerCapabilities
|
||||||
|
import org.matrix.android.sdk.internal.util.database.RealmMigrator
|
||||||
|
|
||||||
|
internal class MigrateSessionTo053(realm: DynamicRealm) : RealmMigrator(realm, 53) {
|
||||||
|
override fun doMigrate(realm: DynamicRealm) {
|
||||||
|
realm.schema.get("HomeServerCapabilitiesEntity")
|
||||||
|
?.addField(HomeServerCapabilitiesEntityFields.AUTHENTICATION_ISSUER, String::class.java)
|
||||||
|
?.forceRefreshOfHomeServerCapabilities()
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,7 @@ internal open class HomeServerCapabilitiesEntity(
|
||||||
var canRemotelyTogglePushNotificationsOfDevices: Boolean = false,
|
var canRemotelyTogglePushNotificationsOfDevices: Boolean = false,
|
||||||
var canRedactEventWithRelations: Boolean = false,
|
var canRedactEventWithRelations: Boolean = false,
|
||||||
var externalAccountManagementUrl: String? = null,
|
var externalAccountManagementUrl: String? = null,
|
||||||
|
var authenticationIssuer: String? = null,
|
||||||
) : RealmObject() {
|
) : RealmObject() {
|
||||||
|
|
||||||
companion object
|
companion object
|
||||||
|
|
|
@ -165,6 +165,7 @@ internal class DefaultGetHomeServerCapabilitiesTask @Inject constructor(
|
||||||
Timber.v("Extracted integration config : $config")
|
Timber.v("Extracted integration config : $config")
|
||||||
realm.insertOrUpdate(config)
|
realm.insertOrUpdate(config)
|
||||||
}
|
}
|
||||||
|
homeServerCapabilitiesEntity.authenticationIssuer = getWellknownResult.wellKnown.unstableDelegatedAuthConfig?.issuer
|
||||||
homeServerCapabilitiesEntity.externalAccountManagementUrl = getWellknownResult.wellKnown.unstableDelegatedAuthConfig?.accountManagementUrl
|
homeServerCapabilitiesEntity.externalAccountManagementUrl = getWellknownResult.wellKnown.unstableDelegatedAuthConfig?.accountManagementUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue