All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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