Enchanced profile management (#68)
* Proof of concept of adding 3PIDs data to user profile * Document reverse proxy apache config * Support for Matrix Gateway project roles' endpoint * Fix conflicting ThreePid object defined in SDK and mxisd projects
This commit is contained in:
@@ -23,6 +23,7 @@ package io.kamax.mxisd.backend.memory;
|
||||
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;
|
||||
@@ -34,18 +35,20 @@ import io.kamax.mxisd.lookup.SingleLookupReply;
|
||||
import io.kamax.mxisd.lookup.SingleLookupRequest;
|
||||
import io.kamax.mxisd.lookup.ThreePidMapping;
|
||||
import io.kamax.mxisd.lookup.provider.IThreePidProvider;
|
||||
import io.kamax.mxisd.profile.ProfileProvider;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
public class MemoryIdentityStore implements AuthenticatorProvider, IThreePidProvider {
|
||||
public class MemoryIdentityStore implements AuthenticatorProvider, IThreePidProvider, ProfileProvider {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(MemoryIdentityStore.class);
|
||||
|
||||
@@ -59,7 +62,9 @@ public class MemoryIdentityStore implements AuthenticatorProvider, IThreePidProv
|
||||
}
|
||||
|
||||
public Optional<MemoryIdentityConfig> findByUsername(String username) {
|
||||
return cfg.getIdentities().stream().filter(id -> StringUtils.equals(id.getUsername(), username)).findFirst();
|
||||
return cfg.getIdentities().stream()
|
||||
.filter(id -> StringUtils.equals(id.getUsername(), username))
|
||||
.findFirst();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,6 +72,20 @@ public class MemoryIdentityStore implements AuthenticatorProvider, IThreePidProv
|
||||
return cfg.isEnabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<_ThreePid> getThreepids(_MatrixID mxid) {
|
||||
List<_ThreePid> l = new ArrayList<>();
|
||||
findByUsername(mxid.getLocalPart()).ifPresent(c -> l.addAll(c.getThreepids()));
|
||||
return l;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRoles(_MatrixID mxid) {
|
||||
List<String> l = new ArrayList<>();
|
||||
findByUsername(mxid.getLocalPart()).ifPresent(c -> l.addAll(c.getRoles()));
|
||||
return l;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLocal() {
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user