Support 3PID in memory identity store profile

This commit is contained in:
Max Dor
2018-03-30 18:31:22 +02:00
parent 7f9c7aa76d
commit ac6f549618
3 changed files with 10 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ package io.kamax.mxisd.auth;
import io.kamax.matrix.MatrixID;
import io.kamax.matrix.ThreePid;
import io.kamax.matrix._MatrixID;
import io.kamax.matrix._ThreePid;
import io.kamax.mxisd.UserIdType;
import io.kamax.mxisd.auth.provider.AuthenticatorProvider;
import io.kamax.mxisd.auth.provider.BackendAuthResult;
@@ -72,7 +73,7 @@ public class AuthManager {
}
UserAuthResult authResult = new UserAuthResult().success(result.getProfile().getDisplayName());
for (ThreePid pid : result.getProfile().getThreePids()) {
for (_ThreePid pid : result.getProfile().getThreePids()) {
authResult.withThreePid(pid.getMedium(), pid.getAddress());
}
log.info("{} was authenticated by {}, publishing 3PID mappings, if any", id, provider.getClass().getSimpleName());

View File

@@ -20,7 +20,7 @@
package io.kamax.mxisd.auth.provider;
import io.kamax.matrix.ThreePid;
import io.kamax.matrix._ThreePid;
import io.kamax.mxisd.UserID;
import io.kamax.mxisd.UserIdType;
@@ -32,13 +32,13 @@ public class BackendAuthResult {
public static class BackendAuthProfile {
private String displayName;
private Set<ThreePid> threePids = new HashSet<>();
private Set<_ThreePid> threePids = new HashSet<>();
public String getDisplayName() {
return displayName;
}
public Set<ThreePid> getThreePids() {
public Set<_ThreePid> getThreePids() {
return threePids;
}
}
@@ -85,7 +85,7 @@ public class BackendAuthResult {
return profile;
}
public BackendAuthResult withThreePid(ThreePid threePid) {
public BackendAuthResult withThreePid(_ThreePid threePid) {
this.profile.threePids.add(threePid);
return this;

View File

@@ -162,7 +162,10 @@ public class MemoryIdentityStore implements AuthenticatorProvider, IDirectoryPro
if (!StringUtils.equals(id.getUsername(), mxid.getLocalPart())) {
return BackendAuthResult.failure();
} else {
return BackendAuthResult.success(mxid.getId(), UserIdType.MatrixID, "");
BackendAuthResult result = new BackendAuthResult();
id.getThreepids().forEach(result::withThreePid);
result.succeed(mxid.getId(), UserIdType.MatrixID.getId(), "");
return result;
}
}).orElseGet(BackendAuthResult::failure);
}