
prerna.reactor.utils.GetUserInfoReactor Maven / Gradle / Ivy
The newest version!
package prerna.reactor.utils;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import prerna.auth.AccessToken;
import prerna.auth.AuthProvider;
import prerna.auth.User;
import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.nounmeta.NounMetadata;
public class GetUserInfoReactor extends AbstractReactor {
@Override
public NounMetadata execute() {
Map returnMap = new TreeMap();
User user = this.insight.getUser();
if(user != null) {
String userEpoch = user.getUserEpoch();
for (AuthProvider provider : user.getLogins()) {
String providerName = provider.name();
AccessToken token = user.getAccessToken(provider);
// add basic user details we capture
Map providerMap = new TreeMap<>();
providerMap.put("id", token.getId() == null ? "null" : token.getId());
providerMap.put("name", token.getName() == null ? "null" : token.getName());
providerMap.put("username", token.getUsername() == null ? "null" : token.getUsername());
providerMap.put("email", token.getEmail() == null ? "null" : token.getEmail());
providerMap.put("lastPwdReset", token.getLastPasswordReset() == null ? "null" : token.getLastPasswordReset());
providerMap.put("lastLogin", token.getLastLogin() == null ? "null" : token.getLastLogin());
// add san info
Map san = token.getSAN();
providerMap.put("san", san);
// add group info
Map groupMap = new HashMap<>();
String groupType = token.getUserGroupType();
Collection groups = token.getUserGroups();
groupMap.put("groupType", groupType);
groupMap.put("groups", groups);
providerMap.put("groupInfo", groupMap);
// add user epoch into the login map
providerMap.put("userEpoch", userEpoch);
// add the entire map
returnMap.put(providerName, providerMap);
}
} else {
returnMap.put("No User", "User is not logged in");
}
NounMetadata noun = new NounMetadata(returnMap, PixelDataType.MAP, PixelOperationType.USER_INFO);
return noun;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy