From b3fe742ec4a67ff7f3533a8c4928e23e0e066562 Mon Sep 17 00:00:00 2001 From: ganfra Date: Sat, 3 Nov 2018 11:49:18 +0100 Subject: [PATCH] Allows authentication by email --- .idea/caches/build_file_checksums.ser | Bin 661 -> 661 bytes .../internal/auth/DefaultAuthenticator.kt | 8 +++++++- .../internal/auth/data/ThreePidMedium.kt | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index a7732719d686b5e6869d42c5a32e34d70c070ea6..de32038819dde67045bd9c7d21ccdc5e3240e1d4 100644 GIT binary patch delta 15 XcmbQrI+b<843?Y9`sN$w{A2_GEtUof delta 15 XcmbQrI+b<843=}D8xL)q^OF$(G+zfk diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt index f468a557..21ddbe3c 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/DefaultAuthenticator.kt @@ -1,5 +1,6 @@ package im.vector.matrix.android.internal.auth +import android.util.Patterns import arrow.core.Either import arrow.core.leftIfNull import im.vector.matrix.android.api.MatrixCallback @@ -11,6 +12,7 @@ import im.vector.matrix.android.api.util.Cancelable import im.vector.matrix.android.internal.auth.data.Credentials import im.vector.matrix.android.internal.auth.data.PasswordLoginParams import im.vector.matrix.android.internal.auth.data.SessionParams +import im.vector.matrix.android.internal.auth.data.ThreePidMedium import im.vector.matrix.android.internal.network.executeRequest import im.vector.matrix.android.internal.session.DefaultSession import im.vector.matrix.android.internal.util.CancelableCoroutine @@ -53,7 +55,11 @@ class DefaultAuthenticator(private val retrofitBuilder: Retrofit.Builder, password: String): Either = withContext(coroutineDispatchers.io) { val authAPI = buildAuthAPI(homeServerConnectionConfig) - val loginParams = PasswordLoginParams.userIdentifier(login, password, "Mobile") + val loginParams = if (Patterns.EMAIL_ADDRESS.matcher(login).matches()) { + PasswordLoginParams.thirdPartyIdentifier(ThreePidMedium.EMAIL, login, password, "Mobile") + } else { + PasswordLoginParams.userIdentifier(login, password, "Mobile") + } executeRequest { apiCall = authAPI.login(loginParams) }.leftIfNull { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt new file mode 100644 index 00000000..ec24473c --- /dev/null +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/ThreePidMedium.kt @@ -0,0 +1,6 @@ +package im.vector.matrix.android.internal.auth.data + +object ThreePidMedium { + const val EMAIL = "email" + const val MSISDN = "msisdn" +} \ No newline at end of file