private OSDMap UserInfo2InfoWebOSD(UserInfo userinfo)
{
OSDMap resp = new OSDMap();
IUserAccountService accountService = m_registry.RequestModuleInterface<IUserAccountService>();
IGridService gs = m_registry.RequestModuleInterface<IGridService>();
UserAccount user = accountService.GetUserAccount(null, new UUID(userinfo.UserID));
GridRegion homeRegion = gs.GetRegionByUUID(null, userinfo.HomeRegionID);
GridRegion currentRegion = userinfo.CurrentRegionID != UUID.Zero ? gs.GetRegionByUUID(null, userinfo.CurrentRegionID) : null;
resp["UUID"] = OSD.FromUUID(user.PrincipalID);
resp["HomeUUID"] = OSD.FromUUID((homeRegion == null) ? UUID.Zero : homeRegion.RegionID);
resp["HomeName"] = OSD.FromString((homeRegion == null) ? "" : homeRegion.RegionName);
resp["CurrentRegionUUID"] = OSD.FromUUID((userinfo == null) ? UUID.Zero : userinfo.CurrentRegionID);
resp["CurrentRegionName"] = OSD.FromString((currentRegion == null) ? "" : currentRegion.RegionName);
resp["Online"] = OSD.FromBoolean((userinfo == null) ? false : userinfo.IsOnline);
resp["Email"] = OSD.FromString(user.Email);
resp["Name"] = OSD.FromString(user.Name);
resp["FirstName"] = OSD.FromString(user.FirstName);
resp["LastName"] = OSD.FromString(user.LastName);
resp["LastLogin"] = userinfo == null ? OSD.FromBoolean(false) : OSD.FromInteger((int)Utils.DateTimeToUnixTime(userinfo.LastLogin));
resp["LastLogout"] = userinfo == null ? OSD.FromBoolean(false) : OSD.FromInteger((int)Utils.DateTimeToUnixTime(userinfo.LastLogout));
return resp;
}