public AsyncWebInterface(WebInterface web, int msPauseBetweenActions) { this.web = web; this.msPauseBetweenActions = msPauseBetweenActions; queue = new Queue<Action>(); bg = new Thread(RunBackgroundThread); bg.Start(); }
/// <summary> /// /// Author:Liudpc /// Create Date: 2010-9-2 13:42:28 /// Description: 得到输出的信息 /// </summary> /// <param name="request"></param> /// <param name="pro"></param> /// <returns></returns> public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro) { ListShowResponseWWE res = new ListShowResponseWWE(); ListShowRequestWWE req = (ListShowRequestWWE)request; DataTable dt = pro.DataInfo; StringBuilder sb = new StringBuilder(); /* switch (req.ShowType) { case "select": for (int i = 0, j = dt.Rows.Count; i < j; i++) { sb.Append(string.Format("<option value='{1}'>{0}<option>",dt.Rows[i].ItemArray)); } break; } */ List<ItemKvdWWE> kvdList = new List<ItemKvdWWE>(); int iColumnCount = dt.Columns.Count; int iValue=iColumnCount>1?1:0; for (int i = 0, j = dt.Rows.Count; i < j; i++) { kvdList.Add(new ItemKvdWWE() { K = dt.Rows[i][0].ToString().Trim(), V = dt.Rows[i][iValue].ToString().Trim(), D = (iColumnCount > 2 ? dt.Rows[i][2].ToString().Trim() : "") }); } res.Kvd = kvdList; res.HtmlString = sb.ToString(); return res; }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); string error = ""; if (requestParameters.ContainsKey("Submit")) { string username = requestParameters ["username"].ToString(); string UserEmail = requestParameters ["UserEmail"].ToString(); UserAccount account = webInterface.Registry.RequestModuleInterface <IUserAccountService> ().GetUserAccount(null, username); if (account == null) { response = "<h3>Please enter a valid username</h3>"; return(null); } // email user etc here... if (account.Email == "") { response = "<h3>Sorry! Your account has no email details. Please contact the administrator to correct</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 5000);" + "</script>"; return(null); } var emailAddress = account.Email; if (UserEmail != emailAddress) { response = "<h3>Sorry! Unable to authenticate your account. Please contact the administrator to correct</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 5000);" + "</script>"; return(null); } IEmailModule Email = webInterface.Registry.RequestModuleInterface <IEmailModule> (); if ((Email != null) && (!Email.LocalOnly())) { var newPassword = Utilities.RandomPassword.Generate(2, 1, 0); var authService = webInterface.Registry.RequestModuleInterface <IAuthenticationService> (); var gridName = webInterface.Registry.RequestModuleInterface <IGridInfo> ().GridName; bool success = false; if (authService != null) { success = authService.SetPassword(account.PrincipalID, "UserAccount", newPassword); } if (success) { Email.SendEmail( UUID.Zero, emailAddress, "Password reset request", string.Format("This request was made via the {0} WebUi at {1}\n\nYour new passsword is : {2}", gridName, Culture.LocaleTimeDate(), newPassword), null); response = "<h3>An email has been sent with your new password</h3>Redirecting to main page"; } else { response = "<h3>Sorry! Your password was not able to be reset.<h3>Please contact the administrator directly<br>Redirecting to main page</h3>"; } } else { response = "<h3>The email functions are local to the grid or have not yet been set up<h3>Please contact the administrator directly<br>Redirecting to main page</h3>"; } response = response + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 5000);" + "</script>"; return(null); } vars.Add("ErrorMessage", error); vars.Add("ForgotPassword", translator.GetTranslatedString("ForgotPassword")); vars.Add("UserNameText", translator.GetTranslatedString("UserName")); vars.Add("UserEmailText", translator.GetTranslatedString("UserEmailText")); vars.Add("Submit", translator.GetTranslatedString("Submit")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); var gridService = webInterface.Registry.RequestModuleInterface <IGridService> (); if (requestParameters.ContainsKey("Submit")) { string RegionServerURL = requestParameters["RegionServerURL"].ToString(); // required if (RegionServerURL == "") { response = "<h3>" + translator.GetTranslatedString("RegionServerURLError") + "</h3>"; return(null); } string RegionName = requestParameters["RegionName"].ToString(); //string OwnerUUID = requestParameters["OwnerUUID"].ToString(); string RegionLocX = requestParameters["RegionLocX"].ToString(); string RegionLocY = requestParameters["RegionLocY"].ToString(); string RegionSizeX = requestParameters["RegionSizeX"].ToString(); string RegionSizeY = requestParameters["RegionSizeY"].ToString(); string RegionType = requestParameters["RegionType"].ToString(); string RegionPresetType = requestParameters["RegionPresetType"].ToString(); string RegionTerrain = requestParameters["RegionTerrain"].ToString(); string RegionLoadTerrain = requestParameters.ContainsKey("RegionLoadTerrain") ? requestParameters["RegionLoadTerrain"].ToString() : ""; //bool ToSAccept = requestParameters.ContainsKey("ToSAccept") && // requestParameters["ToSAccept"].ToString() == "Accepted"; // string UserType = requestParameters.ContainsKey("UserType") // only admins can set membership // ? requestParameters ["UserType"].ToString () // : "Resident"; // a bit of idiot proofing if (RegionName == "") { response = "<h3>" + translator.GetTranslatedString("RegionNameError") + "</h3>"; return(null); } if ((RegionLocX == "") || (RegionLocY == "")) { response = "<h3>" + translator.GetTranslatedString("RegionLocationError") + "</h3>"; return(null); } // so far so good... // build the new region details int RegionPort = int.Parse(requestParameters ["RegionPort"].ToString()); var newRegion = new RegionInfo(); newRegion.RegionName = RegionName; newRegion.RegionType = RegionType; newRegion.RegionLocX = int.Parse(RegionLocX); newRegion.RegionLocY = int.Parse(RegionLocY); newRegion.RegionSizeX = int.Parse(RegionSizeX); newRegion.RegionSizeY = int.Parse(RegionSizeY); newRegion.RegionPort = RegionPort; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 50000; newRegion.Startup = StartupType.Normal; var regionPreset = RegionPresetType.ToLower(); if (regionPreset.StartsWith("c")) { newRegion.RegionPort = int.Parse(requestParameters["RegionPort"].ToString()); newRegion.SeeIntoThisSimFromNeighbor = (requestParameters["RegionVisibility"].ToString().ToLower() == "yes"); newRegion.InfiniteRegion = (requestParameters["RegionInfinite"].ToString().ToLower() == "yes"); newRegion.ObjectCapacity = int.Parse(requestParameters["RegionCapacity"].ToString()); string delayStartup = requestParameters["RegionDelayStartup"].ToString(); newRegion.Startup = delayStartup.StartsWith("n") ? StartupType.Normal : StartupType.Medium; } if (regionPreset.StartsWith("w")) { // 'standard' setup newRegion.RegionType = newRegion.RegionType + "Whitecore"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Flatland"; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 50000; newRegion.RegionPort = RegionPort; } if (regionPreset.StartsWith("o")) { // 'Openspace' setup newRegion.RegionType = newRegion.RegionType + "Openspace"; //newRegion.RegionPort; // use auto assigned port if (RegionTerrain.StartsWith("a")) { newRegion.RegionTerrain = "Aquatic"; } else { newRegion.RegionTerrain = "Grassland"; } newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 750; newRegion.RegionSettings.AgentLimit = 10; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith("h")) { // 'Homestead' setup newRegion.RegionType = newRegion.RegionType + "Homestead"; //info.RegionPort; // use auto assigned port newRegion.RegionTerrain = "Homestead"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 3750; newRegion.RegionSettings.AgentLimit = 20; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith("f")) { // 'Full Region' setup newRegion.RegionType = newRegion.RegionType + "Full Region"; //newRegion.RegionPort; // use auto assigned port newRegion.RegionTerrain = RegionTerrain; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = false; newRegion.ObjectCapacity = 15000; newRegion.RegionSettings.AgentLimit = 100; if (newRegion.RegionType.StartsWith("M")) // defaults are 'true' { newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } } if (RegionLoadTerrain.Length > 0) { // we are loading terrain from a file... handled later newRegion.RegionTerrain = "Custom"; } /* Disabled as this is a worl=k in progress and will break with the current scenemanager (Dec 5 - greythane- * // TODO: !!! Assumes everything is local for now !!! * ISceneManager scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); * if (scenemanager.CreateRegion(newRegion)) * { * IGridRegisterModule gridRegister = webInterface.Registry.RequestModuleInterface<IGridRegisterModule>(); * if( gridRegister.RegisterRegionWithGrid(null, true, false, null)) * { * * response = "<h3>Successfully created region, redirecting to main page</h3>" + * "<script language=\"javascript\">" + * "setTimeout(function() {window.location.href = \"index.html\";}, 3000);" + * "</script>"; * } * else * // response = "<h3>" + error + "</h3>"; * response = "<h3> Error registering region with grid</h3>"; * } * else */ response = "<h3>Error creating this region.</h3>"; return(null); } // we have or need data if (httpRequest.Query.ContainsKey("regionid")) { var region = gridService.GetRegionByUUID(null, UUID.Parse(httpRequest.Query ["regionid"].ToString())); IEstateConnector estateConnector = Framework.Utilities.DataManager.RequestPlugin <IEstateConnector> (); EstateSettings estate = estateConnector.GetEstateSettings(region.RegionID); vars.Add("RegionName", region.RegionName); vars.Add("OwnerUUID", estate.EstateOwner); var estateOwnerAccount = webInterface.Registry.RequestModuleInterface <IUserAccountService> (). GetUserAccount(null, estate.EstateOwner); vars.Add("OwnerName", estateOwnerAccount == null ? "No account found" : estateOwnerAccount.Name); vars.Add("RegionLocX", region.RegionLocX / Constants.RegionSize); vars.Add("RegionLocY", region.RegionLocY / Constants.RegionSize); vars.Add("RegionSizeX", region.RegionSizeX); vars.Add("RegionSizeY", region.RegionSizeY); vars.Add("RegionType", region.RegionType); vars.Add("RegionTerrain", region.RegionTerrain); vars.Add("RegionOnline", (region.Flags & (int)RegionFlags.RegionOnline) == (int)RegionFlags.RegionOnline ? translator.GetTranslatedString("Online") : translator.GetTranslatedString("Offline")); IWebHttpTextureService webTextureService = webInterface.Registry. RequestModuleInterface <IWebHttpTextureService> (); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) { vars.Add("RegionImageURL", webTextureService.GetTextureURL(region.TerrainMapImage)); } else { vars.Add("RegionImageURL", "images/icons/no_picture.jpg"); } } else { // default values // check for user name seed string[] m_regionNameSeed = null; /*IConfig regionConfig = * webInterface.Registry.RequestModuleInterface<ISimulationBase>().ConfigSource.Configs["LoginService"]; * * if (loginServerConfig != null) * { * string userNameSeed = loginServerConfig.GetString ("UserNameSeed", ""); * if (userNameSeed != "") * m_userNameSeed = userNameSeed.Split (','); * } */ Utilities.MarkovNameGenerator rNames = new Utilities.MarkovNameGenerator(); string regionName = rNames.FirstName(m_regionNameSeed == null ? Utilities.RegionNames: m_regionNameSeed, 3, 7); vars.Add("RegionName", regionName); //var scenemanager = webInterface.Registry.RequestModuleInterface<ISceneManager> (); var gconnector = Framework.Utilities.DataManager.RequestPlugin <IGenericsConnector>(); var settings = gconnector.GetGeneric <WebUISettings>(UUID.Zero, "WebUISettings", "Settings"); // get some current details //List<GridRegion> regions = gridService.GetRegionsByName(null, "", null,null); // var currentInfo = scenemanager.FindCurrentRegionInfo (); Dictionary <string, int> currentInfo = null; if (currentInfo != null) { vars.Add("RegionLocX", currentInfo ["minX"] > 0 ? currentInfo ["minX"] : settings.MapCenter.X); vars.Add("RegionLocY", currentInfo ["minY"] > 0 ? currentInfo ["minY"] : settings.MapCenter.Y); vars.Add("RegionPort", currentInfo ["port"] > 0 ? currentInfo ["port"] + 1 : 9000); } else { vars.Add("RegionLocX", settings.MapCenter.X); vars.Add("RegionLocY", settings.MapCenter.Y); vars.Add("RegionPort", 9000); } vars.Add("RegionSizeX", Constants.RegionSize); vars.Add("RegionSizeY", Constants.RegionSize); vars.Add("RegionType", webInterface.RegionTypeArgs(translator)); vars.Add("RegionPresetType", webInterface.RegionPresetArgs(translator)); vars.Add("RegionTerrain", webInterface.RegionTerrainArgs(translator)); } // Labels //vars.Add ("RegionInformationText", translator.GetTranslatedString ("RegionInformationText")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("RegionLocationText", translator.GetTranslatedString("RegionLocationText")); vars.Add("RegionSizeText", translator.GetTranslatedString("RegionSizeText")); vars.Add("RegionTypeText", translator.GetTranslatedString("RegionTypeText")); vars.Add("RegionPresetText", translator.GetTranslatedString("RegionPresetText")); vars.Add("RegionTerrainText", translator.GetTranslatedString("RegionTerrainText")); vars.Add("OwnerNameText", translator.GetTranslatedString("OwnerNameText")); vars.Add("RegionPortText", translator.GetTranslatedString("RegionPortText")); vars.Add("RegionDelayStartupText", translator.GetTranslatedString("RegionDelayStartupText")); vars.Add("RegionVisibilityText", translator.GetTranslatedString("RegionVisibilityText")); vars.Add("RegionInfiniteText", translator.GetTranslatedString("RegionInfiniteText")); vars.Add("RegionCapacityText", translator.GetTranslatedString("RegionCapacityText")); vars.Add("Yes", translator.GetTranslatedString("Yes")); vars.Add("No", translator.GetTranslatedString("No")); vars.Add("Accept", translator.GetTranslatedString("Accept")); vars.Add("Submit", translator.GetTranslatedString("Submit")); vars.Add("SubmitURL", "home.html"); vars.Add("ErrorMessage", ""); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); var regionslist = new List <Dictionary <string, object> >(); UserAccount account = null; // future use // uint amountPerQuery = 10; string noDetails = translator.GetTranslatedString("NoDetailsText"); if (httpRequest.Query.ContainsKey("userid")) { List <UUID> scopeUUID = new List <UUID>(); string userid = httpRequest.Query["userid"].ToString(); UUID userUUID = UUID.Parse(userid); scopeUUID.Add(userUUID); account = webInterface.Registry.RequestModuleInterface <IUserAccountService>(). GetUserAccount(null, userUUID); IGridService gridService = webInterface.Registry.RequestModuleInterface <IGridService>(); IWebHttpTextureService webTextureService = webInterface.Registry.RequestModuleInterface <IWebHttpTextureService>(); var regions = gridService.GetRegionsByName(scopeUUID, "", null, null); // TODO: Searching using the user UUID scope does not appear to work -greythane- 20141020 if (regions != null) { noDetails = ""; foreach (var region in regions) { if (region.EstateOwner != userUUID) // not this one... { continue; } string info; info = (region.RegionArea < 1000000) ? region.RegionArea + " m2" : (region.RegionArea / 1000000) + " km2"; info = info + ", " + region.RegionTerrain; var regionData = new Dictionary <string, object> (); regionData.Add("RegionName", region.RegionName); regionData.Add("RegionLocX", region.RegionLocX / Constants.RegionSize); regionData.Add("RegionLocY", region.RegionLocY / Constants.RegionSize); regionData.Add("RegionInfo", info); regionData.Add("RegionStatus", region.IsOnline ? "yes" : "no"); regionData.Add("RegionID", region.RegionID); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) { regionData.Add("RegionImageURL", webTextureService.GetTextureURL(region.TerrainMapImage)); } else { regionData.Add("RegionImageURL", "../images/icons/no_terrain.jpg"); } regionslist.Add(regionData); } } } // provide something.. if (regionslist.Count == 0) { regionslist.Add(new Dictionary <string, object> { { "RegionName", translator.GetTranslatedString("NoDetailsText") }, { "RegionLocX", "" }, { "RegionLocY", "" }, { "RegionInfo", "" }, { "RegionStatus", "" }, { "RegionID", "" }, { "RegionImageURL", "../images/icons/no_terrain.jpg" } }); } vars.Add("NoDetailsText", noDetails); if (account != null) { vars.Add("UserName", account.Name); } else { vars.Add("UserName", ""); } vars.Add("RegionListText", translator.GetTranslatedString("RegionListText")); vars.Add("RegionList", regionslist); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("RegionText", translator.GetTranslatedString("Region")); vars.Add("RegionLocXText", translator.GetTranslatedString("RegionLocXText")); vars.Add("RegionLocYText", translator.GetTranslatedString("RegionLocYText")); vars.Add("RegionOnlineText", translator.GetTranslatedString("Online")); vars.Add("RegionMoreInfo", translator.GetTranslatedString("RegionMoreInfo")); vars.Add("MoreInfoText", translator.GetTranslatedString("MoreInfoText")); return(vars); }
internal void SendToSegment(string eventName, Dictionary <string, string> data) { WebInterface.ReportAnalyticsEvent(eventName, data.Select(x => new WebInterface.AnalyticsPayload.Property(x.Key, x.Value)).ToArray()); }
internal void OnTermsOfServiceAgreed() { WebInterface.SendPassport(name, email); DataStore.i.isSignUpFlow.Set(false); signupVisible.Set(false); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { UserAccount ourAccount = Authenticator.GetAuthentication(httpRequest); IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface <IMoneyModule> (); var currencySymbol = "$"; if (moneyModule != null) { currencySymbol = moneyModule.InWorldCurrencySymbol; } response = null; var vars = new Dictionary <string, object> (); var duration = 10; if (requestParameters.ContainsKey("Submit")) { string eventName = requestParameters ["eventName"].ToString(); string eventDate = requestParameters ["eventDate"].ToString(); string eventTime = requestParameters ["eventTime"].ToString(); string eventDuration = requestParameters ["eventDuration"].ToString(); string eventLocation = requestParameters ["eventLocation"].ToString(); string eventCategory = requestParameters ["eventCategory"].ToString(); string eventCoverCharge = requestParameters ["eventCoverCharge"].ToString(); string eventDescription = requestParameters ["eventDescription"].ToString(); var directoryService = Framework.Utilities.DataManager.RequestPlugin <IDirectoryServiceConnector> (); var regionData = Framework.Utilities.DataManager.RequestPlugin <IRegionData> (); var selParcel = eventLocation.Split(','); // Format: parcelLocationX, parcelLocationY, parcelLandingX, parcelLandingY, parcelLandingZ, parcelUUID // "1020,995,128,28,25,d436261b-7186-42a6-dcd3-b80c1bcafaa4" Framework.Services.GridRegion region = null; var parcel = directoryService.GetParcelInfo((UUID)selParcel [5]); if (parcel != null) { region = regionData.Get(parcel.RegionID, null); } if (region == null) { var error = "Parcel details not found!"; vars.Add("ErrorMessage", "<h3>" + error + "</h3>"); response = "<h3>" + error + "</h3>"; return(null); } // we have details... var eventDT = DateTime.Parse(eventDate + " " + eventTime).ToUniversalTime(); var localPos = new Vector3(int.Parse(selParcel [0]), int.Parse(selParcel [0]), 0); var nEvent = directoryService.CreateEvent( ourAccount.PrincipalID, region.RegionID, (UUID)selParcel [5], eventDT, uint.Parse(eventCoverCharge), (DirectoryManager.EventFlags)Util.ConvertAccessLevelToMaturity(region.Access), (uint)region.Access, uint.Parse(eventDuration), localPos, eventName, eventDescription, eventCategory ); if (nEvent != null) { response = "<h3>Event added successfully, redirecting to main page</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html?page=events\";}, 0);" + "</script>"; } return(null); } // Time selections var nearestHalf = Utilities.RoundUp(DateTime.Now, TimeSpan.FromMinutes(30)).ToString("hh\\:mm\\:ss"); vars.Add("EventDate", DateTime.Now.AddDays(1).ToShortDateString()); vars.Add("EventTimes", WebHelpers.EventTimeSelections(nearestHalf, translator)); // event durations vars.Add("EventDurations", WebHelpers.EventDurationSelections(duration)); // event locations vars.Add("EventLocations", WebHelpers.EventLocations(ourAccount, webInterface.Registry)); vars.Add("EventCategories", WebHelpers.EventCategorySelections(-1, translator)); vars.Add("EventCoverCharge", "0"); // labels vars.Add("AddEventText", translator.GetTranslatedString("AddEventText")); vars.Add("EventNameText", translator.GetTranslatedString("EventNameText")); vars.Add("EventDateText", translator.GetTranslatedString("EventDateText")); vars.Add("EventTimeText", translator.GetTranslatedString("TimeText")); vars.Add("EventTimeInfoText", translator.GetTranslatedString("EventTimeInfoText")); vars.Add("EventDurationText", translator.GetTranslatedString("DurationText")); vars.Add("EventLocationText", translator.GetTranslatedString("EventLocationText")); vars.Add("EventCategoryText", translator.GetTranslatedString("CategoryText")); vars.Add("EventCoverChargeText", translator.GetTranslatedString("CoverChargeText") + " " + currencySymbol); vars.Add("EventDescriptionText", translator.GetTranslatedString("DescriptionText")); vars.Add("ErrorMessage", ""); vars.Add("Submit", translator.GetTranslatedString("AddEventText")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); string error = ""; UUID userID = httpRequest.Query.ContainsKey("userid") ? UUID.Parse(httpRequest.Query ["userid"].ToString()) : UUID.Parse(requestParameters ["userid"].ToString()); IUserAccountService userService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); UserAccount account = null; if (userService != null) { account = userService.GetUserAccount(null, userID); } var agentService = Framework.Utilities.DataManager.RequestPlugin <IAgentConnector> (); IAgentInfo agent = agentService.GetAgent(userID); if (agent == null) { error = "No agent information is available"; } // Set user type if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitSetUserType") { string UserType = requestParameters ["UserType"].ToString(); int UserFlags = WebHelpers.UserTypeToUserFlags(UserType); // set the user account type if (account != null) { account.UserFlags = UserFlags; userService.StoreUserAccount(account); } else { response = "User account not found - Unable to update!'"; return(null); } if (agent != null) { agent.OtherAgentInformation ["UserFlags"] = UserFlags; agentService.UpdateAgent(agent); } else { response = "Agent information is not available! Has the user logged in yet?"; return(null); } IProfileConnector profileData = Framework.Utilities.DataManager.RequestPlugin <IProfileConnector> (); if (profileData != null) { IUserProfileInfo profile = profileData.GetUserProfile(userID); if (profile == null) { profileData.CreateNewProfile(userID); profile = profileData.GetUserProfile(userID); } profile.MembershipGroup = WebHelpers.UserFlagToType(UserFlags, webInterface.EnglishTranslator); // membership is english profileData.UpdateUserProfile(profile); } response = "User account has been updated."; return(null); } // Password change if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitPasswordChange") { string password = requestParameters ["password"].ToString(); string passwordconf = requestParameters ["passwordconf"].ToString(); if (password != passwordconf) { response = "Passwords do not match"; } else { IAuthenticationService authService = webInterface.Registry.RequestModuleInterface <IAuthenticationService> (); if (authService != null) { response = authService.SetPassword(userID, "UserAccount", password) ? "Successfully set password" : "Failed to set your password, try again later"; } else { response = "No authentication service was available to change the account passwor!"; } } return(null); } // Email change if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitEmailChange") { string email = requestParameters ["email"].ToString(); if (account != null) { account.Email = email; userService.StoreUserAccount(account); response = "Successfully updated email"; } else { response = "No authentication service was available to change the email details!"; } return(null); } // Delete user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitDeleteUser") { string username = requestParameters ["username"].ToString(); if (account != null) { if (username == account.Name) { userService.DeleteUser(account.PrincipalID, account.Name, "", false, false); response = "User has been successfully deleted"; } else { response = "The user name did not match!"; } } else { response = "No account details to verify user against!"; } return(null); } // Temp Ban user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitTempBanUser") { int timeDays = int.Parse(requestParameters ["TimeDays"].ToString()); int timeHours = int.Parse(requestParameters ["TimeHours"].ToString()); int timeMinutes = int.Parse(requestParameters ["TimeMinutes"].ToString()); if (agent != null) { agent.Flags |= IAgentFlags.TempBan; DateTime until = DateTime.Now.AddDays(timeDays).AddHours(timeHours).AddMinutes(timeMinutes); agent.OtherAgentInformation ["Temperory BanInfo"] = until; agentService.UpdateAgent(agent); response = "User has been banned."; } else { response = "Agent information is not available! Has the user logged in yet?"; } return(null); } // Ban user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitBanUser") { if (agent != null) { agent.Flags |= IAgentFlags.PermBan; agentService.UpdateAgent(agent); response = "User has been banned."; } else { response = "Agent information is not available! Has the user logged in yet?"; } return(null); } //UnBan user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitUnbanUser") { if (agent != null) { agent.Flags &= ~IAgentFlags.TempBan; agent.Flags &= ~IAgentFlags.PermBan; agent.OtherAgentInformation.Remove("Temporary BanInfo"); agentService.UpdateAgent(agent); response = "User has been unbanned."; } else { response = "Agent information is not available! Has the user logged in yet?"; } return(null); } // Login as user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitLoginAsUser") { Authenticator.ChangeAuthentication(httpRequest, account); webInterface.Redirect(httpResponse, "/"); return(vars); } // Kick user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitKickUser") { string message = requestParameters ["KickMessage"].ToString(); if (account != null) { IGridWideMessageModule messageModule = webInterface.Registry.RequestModuleInterface <IGridWideMessageModule> (); if (messageModule != null) { messageModule.KickUser(account.PrincipalID, message); } response = "User has been kicked."; } else { response = "Unable to determine user to kick!"; } return(null); } // Message user if (requestParameters.ContainsKey("Submit") && requestParameters ["Submit"].ToString() == "SubmitMessageUser") { string message = requestParameters ["Message"].ToString(); if (account != null) { IGridWideMessageModule messageModule = webInterface.Registry.RequestModuleInterface <IGridWideMessageModule> (); if (messageModule != null) { messageModule.MessageUser(account.PrincipalID, message); response = "User has been sent the message."; } } else { response = "User account details are unavailable to send the message!"; } return(null); } // page variables string bannedUntil = ""; bool userBanned = false; if (agent != null) { userBanned = ((agent.Flags & IAgentFlags.PermBan) == IAgentFlags.PermBan || (agent.Flags & IAgentFlags.TempBan) == IAgentFlags.TempBan); } bool TempUserBanned = false; if (userBanned) { if ((agent.Flags & IAgentFlags.TempBan) == IAgentFlags.TempBan && agent.OtherAgentInformation ["Temperory BanInfo"].AsDate() < DateTime.Now.ToUniversalTime()) { userBanned = false; agent.Flags &= ~IAgentFlags.TempBan; agent.Flags &= ~IAgentFlags.PermBan; agent.OtherAgentInformation.Remove("Temporary BanInfo"); agentService.UpdateAgent(agent); } else { DateTime bannedTime = agent.OtherAgentInformation ["Temporary BanInfo"].AsDate(); TempUserBanned = bannedTime != Util.UnixEpoch; bannedUntil = string.Format("{0} {1}", bannedTime.ToShortDateString(), bannedTime.ToLongTimeString()); } } bool userOnline = false; IAgentInfoService agentInfoService = webInterface.Registry.RequestModuleInterface <IAgentInfoService> (); if (agentInfoService != null) { UserInfo Info = null; if (account != null) { Info = agentInfoService.GetUserInfo(account.PrincipalID.ToString()); } userOnline = Info != null && Info.IsOnline; } if (account != null) { vars.Add("EmailValue", account.Email); vars.Add("UserID", account.PrincipalID); vars.Add("UserName", account.Name); } else { vars.Add("EmailValue", ""); vars.Add("UserID", ""); vars.Add("UserName", ""); } vars.Add("UserOnline", userOnline); vars.Add("NotUserBanned", !userBanned); vars.Add("UserBanned", userBanned); vars.Add("TempUserBanned", TempUserBanned); vars.Add("BannedUntil", bannedUntil); vars.Add("ErrorMessage", error); vars.Add("ChangeUserInformationText", translator.GetTranslatedString("ChangeUserInformationText")); vars.Add("ChangePasswordText", translator.GetTranslatedString("ChangePasswordText")); vars.Add("NewPasswordText", translator.GetTranslatedString("NewPasswordText")); vars.Add("NewPasswordConfirmationText", translator.GetTranslatedString("NewPasswordConfirmationText")); vars.Add("ChangeEmailText", translator.GetTranslatedString("ChangeEmailText")); vars.Add("NewEmailText", translator.GetTranslatedString("NewEmailText")); vars.Add("UserNameText", translator.GetTranslatedString("UserNameText")); vars.Add("PasswordText", translator.GetTranslatedString("PasswordText")); vars.Add("DeleteUserText", translator.GetTranslatedString("DeleteUserText")); vars.Add("DeleteText", translator.GetTranslatedString("DeleteText")); vars.Add("DeleteUserInfoText", translator.GetTranslatedString("DeleteUserInfoText")); vars.Add("Submit", translator.GetTranslatedString("Submit")); vars.Add("Login", translator.GetTranslatedString("Login")); vars.Add("TypeUserNameToConfirm", translator.GetTranslatedString("TypeUserNameToConfirm")); vars.Add("AdminUserTypeInfoText", translator.GetTranslatedString("AdminUserTypeInfoText")); vars.Add("AdminSetUserTypeText", translator.GetTranslatedString("UserTypeText")); vars.Add("AdminLoginInAsUserText", translator.GetTranslatedString("AdminLoginInAsUserText")); vars.Add("AdminLoginInAsUserInfoText", translator.GetTranslatedString("AdminLoginInAsUserInfoText")); vars.Add("AdminDeleteUserText", translator.GetTranslatedString("AdminDeleteUserText")); vars.Add("AdminDeleteUserInfoText", translator.GetTranslatedString("AdminDeleteUserInfoText")); vars.Add("AdminUnbanUserText", translator.GetTranslatedString("AdminUnbanUserText")); vars.Add("AdminTempBanUserText", translator.GetTranslatedString("AdminTempBanUserText")); vars.Add("AdminTempBanUserInfoText", translator.GetTranslatedString("AdminTempBanUserInfoText")); vars.Add("AdminBanUserText", translator.GetTranslatedString("AdminBanUserText")); vars.Add("AdminBanUserInfoText", translator.GetTranslatedString("AdminBanUserInfoText")); vars.Add("BanText", translator.GetTranslatedString("BanText")); vars.Add("UnbanText", translator.GetTranslatedString("UnbanText")); vars.Add("TimeUntilUnbannedText", translator.GetTranslatedString("TimeUntilUnbannedText")); vars.Add("EdittingText", translator.GetTranslatedString("EdittingText")); vars.Add("BannedUntilText", translator.GetTranslatedString("BannedUntilText")); vars.Add("KickAUserInfoText", translator.GetTranslatedString("KickAUserInfoText")); vars.Add("KickAUserText", translator.GetTranslatedString("KickAUserText")); vars.Add("KickMessageText", translator.GetTranslatedString("KickMessageText")); vars.Add("KickUserText", translator.GetTranslatedString("KickUserText")); vars.Add("MessageAUserText", translator.GetTranslatedString("MessageAUserText")); vars.Add("MessageAUserInfoText", translator.GetTranslatedString("MessageAUserInfoText")); vars.Add("MessageUserText", translator.GetTranslatedString("MessageUserText")); List <Dictionary <string, object> > daysArgs = new List <Dictionary <string, object> > (); for (int i = 0; i <= 100; i++) { daysArgs.Add(new Dictionary <string, object> { { "Value", i } }); } List <Dictionary <string, object> > hoursArgs = new List <Dictionary <string, object> > (); for (int i = 0; i <= 23; i++) { hoursArgs.Add(new Dictionary <string, object> { { "Value", i } }); } List <Dictionary <string, object> > minutesArgs = new List <Dictionary <string, object> > (); for (int i = 0; i <= 59; i++) { minutesArgs.Add(new Dictionary <string, object> { { "Value", i } }); } vars.Add("Days", daysArgs); vars.Add("Hours", hoursArgs); vars.Add("Minutes", minutesArgs); vars.Add("DaysText", translator.GetTranslatedString("DaysText")); vars.Add("HoursText", translator.GetTranslatedString("HoursText")); vars.Add("MinutesText", translator.GetTranslatedString("MinutesText")); vars.Add("UserType", WebHelpers.UserTypeArgs(translator)); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var directoryService = Framework.Utilities.DataManager.RequestPlugin <IDirectoryServiceConnector> (); var classifiedListVars = new List <Dictionary <string, object> > (); IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface <IMoneyModule> (); var currencySymbol = "$"; if (moneyModule != null) { currencySymbol = moneyModule.InWorldCurrencySymbol; } var pg_checked = "checked"; var ma_checked = ""; var ao_checked = ""; var classifiedLevel = (uint)DirectoryManager.ClassifiedQueryFlags.PG; var category = (int)DirectoryManager.ClassifiedCategories.Any; if (requestParameters.ContainsKey("Submit")) { uint level = 0; pg_checked = ""; ma_checked = ""; ao_checked = ""; if (requestParameters.ContainsKey("display_pg")) { level += (uint)DirectoryManager.ClassifiedQueryFlags.PG; pg_checked = "checked"; } if (requestParameters.ContainsKey("display_ma")) { level += (uint)DirectoryManager.ClassifiedQueryFlags.Mature; ma_checked = "checked"; } if (requestParameters.ContainsKey("display_ao")) { level += (uint)DirectoryManager.ClassifiedQueryFlags.Adult; ao_checked = "checked"; } classifiedLevel = level; string cat = requestParameters ["category"].ToString(); category = int.Parse(cat); } // build category selection vars.Add("CategoryType", WebHelpers.ClassifiedCategorySelections(category, translator)); // maturity selections vars.Add("PG_checked", pg_checked); vars.Add("MA_checked", ma_checked); vars.Add("AO_checked", ao_checked); // get some classifieds if (directoryService != null) { var classifieds = new List <Classified> (); classifieds = directoryService.GetAllClassifieds(category, classifiedLevel); if (classifieds.Count == 0) { classifiedListVars.Add(new Dictionary <string, object> { { "ClassifiedUUID", "" }, //{ "CreatorUUID", "" }, { "CreationDate", "" }, { "ExpirationDate", "" }, { "Category", "" }, { "Name", "" }, { "Description", translator.GetTranslatedString("NoDetailsText") }, //{ "ParcelUUID", "") }, //{ "ParentEstate", "" }, { "SnapshotUUID", "" }, //{ "ScopeID", "" }, { "SimName", "" }, { "GPosX", "" }, { "GPosY", "" }, { "GPosZ", "" }, { "ParcelName", "" }, { "Maturity", "" }, { "PriceForListing", "" } }); } else { foreach (var classified in classifieds) { classifiedListVars.Add(new Dictionary <string, object> { { "ClassifiedUUID", classified.ClassifiedUUID }, //{ "CreatorUUID", classified.CreatorUUID) }, { "CreationDate", Util.ToDateTime(classified.CreationDate).ToShortDateString() }, { "ExpirationDate", Util.ToDateTime(classified.ExpirationDate).ToShortDateString() }, { "Category", WebHelpers.ClassifiedCategory(classified.Category, translator) }, { "Name", classified.Name }, { "Description", classified.Description }, //{ "ParcelUUID", classified.ParcelUUID }, //{ "ParentEstate",classified.(ParentEstate }, { "SnapshotUUID", classified.SnapshotUUID }, //{ "ScopeID",clasified.ScopeID }, { "SimName", classified.SimName }, { "GPosX", classified.GlobalPos.X.ToString() }, { "GPosY", classified.GlobalPos.Y.ToString() }, { "GPosZ", classified.GlobalPos.Z.ToString() }, { "ParcelName", classified.ParcelName }, { "Maturity", WebHelpers.ClassifiedMaturity(classified.ClassifiedFlags) }, { "PriceForListing", currencySymbol + " " + classified.PriceForListing } }); } } vars.Add("ClassifiedList", classifiedListVars); } vars.Add("Classifieds", translator.GetTranslatedString("Classifieds")); // labels vars.Add("ClassifiedsText", translator.GetTranslatedString("ClassifiedsText")); vars.Add("CreationDateText", translator.GetTranslatedString("CreationDateText")); vars.Add("CategoryText", translator.GetTranslatedString("CategoryText")); vars.Add("ClassifiedNameText", translator.GetTranslatedString("ClassifiedText")); vars.Add("DescriptionText", translator.GetTranslatedString("DescriptionText")); vars.Add("MaturityText", translator.GetTranslatedString("MaturityText")); vars.Add("GeneralText", translator.GetTranslatedString("GeneralText")); vars.Add("MatureText", translator.GetTranslatedString("MatureText")); vars.Add("AdultText", translator.GetTranslatedString("AdultText")); vars.Add("PriceOfListingText", translator.GetTranslatedString("PriceOfListingText")); vars.Add("ExpirationDateText", translator.GetTranslatedString("ExpirationDateText")); vars.Add("SearchText", translator.GetTranslatedString("SearchText")); return(vars); }
public override void UpdateSetting(object newValue) { currentGeneralSettings.voiceChatVolume = (float)newValue * 0.01f; WebInterface.ApplySettings(currentGeneralSettings.voiceChatVolume, (int)currentGeneralSettings.voiceChatAllow); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); if (httpRequest.Query.ContainsKey("regionid")) { IAgentInfoService agentInfoService = webInterface.Registry.RequestModuleInterface <IAgentInfoService> (); IUserAccountService userService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); var regionService = webInterface.Registry.RequestModuleInterface <IGridService> (); var region = regionService.GetRegionByUUID(null, UUID.Parse(httpRequest.Query ["regionid"].ToString())); IEstateConnector estateConnector = Framework.Utilities.DataManager.RequestPlugin <IEstateConnector> (); var ownerUUID = UUID.Zero; var ownerName = "Unknown"; if (estateConnector != null) { EstateSettings estate = estateConnector.GetRegionEstateSettings(region.RegionID); if (estate != null) { ownerUUID = estate.EstateOwner; UserAccount estateOwnerAcct = new UserAccount(); if (userService != null) { estateOwnerAcct = userService.GetUserAccount(null, estate.EstateOwner); } ownerName = estateOwnerAcct.Valid ? estateOwnerAcct.Name : "No account found"; } } vars.Add("OwnerUUID", ownerUUID); vars.Add("OwnerName", ownerName); vars.Add("RegionName", region.RegionName); vars.Add("RegionLocX", region.RegionLocX / Constants.RegionSize); vars.Add("RegionLocY", region.RegionLocY / Constants.RegionSize); vars.Add("RegionSizeX", region.RegionSizeX); vars.Add("RegionSizeY", region.RegionSizeY); vars.Add("RegionType", region.RegionType); vars.Add("RegionTerrain", region.RegionTerrain); vars.Add("RegionOnline", (region.Flags & (int)RegionFlags.RegionOnline) == (int)RegionFlags.RegionOnline ? translator.GetTranslatedString("Online") : translator.GetTranslatedString("Offline")); if (agentInfoService != null) { List <UserInfo> usersInRegion = agentInfoService.GetUserInfos(region.RegionID); if (usersInRegion.Count == 0) { vars.Add("NumberOfUsersInRegion", 0); vars.Add("UsersInRegion", new List <Dictionary <string, object> > ()); } else { vars.Add("NumberOfUsersInRegion", usersInRegion.Count); List <Dictionary <string, object> > users = new List <Dictionary <string, object> > (); foreach (var client in usersInRegion) { if (userService != null) { UserAccount userAcct = userService.GetUserAccount(null, client.UserID); if (userAcct.Valid) { Dictionary <string, object> user = new Dictionary <string, object> (); user.Add("UserNameText", translator.GetTranslatedString("UserNameText")); user.Add("UserUUID", client.UserID); user.Add("UserName", userAcct.Name); users.Add(user); } } } vars.Add("UsersInRegion", users); } } else { vars.Add("NumberOfUsersInRegion", 0); vars.Add("UsersInRegion", new List <Dictionary <string, object> > ()); } IDirectoryServiceConnector directoryConnector = Framework.Utilities.DataManager.RequestPlugin <IDirectoryServiceConnector> (); if (directoryConnector != null) { List <LandData> data = directoryConnector.GetParcelsByRegion(0, 10, region.RegionID, UUID.Zero, ParcelFlags.None, ParcelCategory.Any); List <Dictionary <string, object> > parcels = new List <Dictionary <string, object> > (); if (data != null) { foreach (var p in data) { Dictionary <string, object> parcel = new Dictionary <string, object> (); parcel.Add("ParcelNameText", translator.GetTranslatedString("ParcelNameText")); parcel.Add("ParcelOwnerText", translator.GetTranslatedString("ParcelOwnerText")); parcel.Add("ParcelUUID", p.GlobalID); parcel.Add("ParcelName", p.Name); parcel.Add("ParcelOwnerUUID", p.OwnerID); if (userService != null) { var parcelownerAcct = userService.GetUserAccount(null, p.OwnerID); if (parcelownerAcct.Valid) { parcel.Add("ParcelOwnerName", parcelownerAcct.Name); } else { parcel.Add("ParcelOwnerName", translator.GetTranslatedString("NoAccountFound")); } } parcels.Add(parcel); } } vars.Add("ParcelInRegion", parcels); vars.Add("NumberOfParcelsInRegion", parcels.Count); } IWebHttpTextureService webTextureService = webInterface.Registry. RequestModuleInterface <IWebHttpTextureService> (); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) { vars.Add("RegionImageURL", webTextureService.GetTextureURL(region.TerrainMapImage)); } else { vars.Add("RegionImageURL", "images/icons/no_picture.jpg"); } // Menu Region vars.Add("MenuRegionTitle", translator.GetTranslatedString("MenuRegionTitle")); vars.Add("MenuParcelTitle", translator.GetTranslatedString("MenuParcelTitle")); vars.Add("MenuOwnerTitle", translator.GetTranslatedString("MenuOwnerTitle")); vars.Add("RegionInformationText", translator.GetTranslatedString("RegionInformationText")); vars.Add("OwnerNameText", translator.GetTranslatedString("OwnerNameText")); vars.Add("RegionLocationText", translator.GetTranslatedString("RegionLocationText")); vars.Add("RegionSizeText", translator.GetTranslatedString("RegionSizeText")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("RegionTypeText", translator.GetTranslatedString("RegionTypeText")); vars.Add("RegionTerrainText", translator.GetTranslatedString("RegionTerrainText")); vars.Add("RegionInfoText", translator.GetTranslatedString("RegionInfoText")); vars.Add("RegionOnlineText", translator.GetTranslatedString("RegionOnlineText")); vars.Add("NumberOfUsersInRegionText", translator.GetTranslatedString("NumberOfUsersInRegionText")); vars.Add("ParcelsInRegionText", translator.GetTranslatedString("ParcelsInRegionText")); // Style Switcher vars.Add("styles1", translator.GetTranslatedString("styles1")); vars.Add("styles2", translator.GetTranslatedString("styles2")); vars.Add("styles3", translator.GetTranslatedString("styles3")); vars.Add("styles4", translator.GetTranslatedString("styles4")); vars.Add("styles5", translator.GetTranslatedString("styles5")); vars.Add("StyleSwitcherStylesText", translator.GetTranslatedString("StyleSwitcherStylesText")); vars.Add("StyleSwitcherLanguagesText", translator.GetTranslatedString("StyleSwitcherLanguagesText")); vars.Add("StyleSwitcherChoiceText", translator.GetTranslatedString("StyleSwitcherChoiceText")); // Language Switcher vars.Add("en", translator.GetTranslatedString("en")); vars.Add("fr", translator.GetTranslatedString("fr")); vars.Add("de", translator.GetTranslatedString("de")); vars.Add("it", translator.GetTranslatedString("it")); vars.Add("es", translator.GetTranslatedString("es")); vars.Add("nl", translator.GetTranslatedString("nl")); var settings = webInterface.GetWebUISettings(); vars.Add("ShowLanguageTranslatorBar", !settings.HideLanguageTranslatorBar); vars.Add("ShowStyleBar", !settings.HideStyleBar); } return(vars); }
public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI req) { throw new NotImplementedException(); }
public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI req) { return GetResponse(req, null); }
/// <summary> /// Attempt to get coordinates for a specified query or address. /// </summary> /// <param name="req">Geocode request object</param> /// <returns>Array of geocode responses</returns> public async Task <GeocodeResponse[]> Geocode(ForwardGeocodeRequest req) { var result = await WebInterface.GetRequest <GeocodeResponse[]>(url, buildQueryString(req)).ConfigureAwait(false); return(result); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var gridService = webInterface.Registry.RequestModuleInterface <IGridService> (); var user = Authenticator.GetAuthentication(httpRequest); vars.Add("RegionServerURL", webInterface.GridURL); // This needs to be sorted out for grid regions #region EditRegion if (requestParameters.ContainsKey("Submit")) { var regionServerURL = requestParameters ["RegionServerURL"].ToString(); // required if (regionServerURL == "") { response = "<h3>" + translator.GetTranslatedString("RegionServerURLError") + "</h3>"; return(null); } var regionID = requestParameters ["RegionID"].ToString(); var regionName = requestParameters ["RegionName"].ToString(); var regionLocX = requestParameters ["RegionLocX"].ToString(); var regionLocY = requestParameters ["RegionLocY"].ToString(); var regionSizeX = requestParameters ["RegionSizeX"].ToString(); var regionSizeY = requestParameters ["RegionSizeY"].ToString(); var regionType = requestParameters ["RegionType"].ToString(); var regionPresetType = requestParameters ["RegionPresetType"].ToString(); var regionTerrain = requestParameters ["RegionTerrain"].ToString(); var regionLoadTerrain = requestParameters.ContainsKey("RegionLoadTerrain") ? requestParameters ["RegionLoadTerrain"].ToString() : ""; // a bit of idiot proofing if (regionName == "") { response = "<h3>" + translator.GetTranslatedString("RegionNameError") + "</h3>"; return(null); } if ((regionLocX == "") || (regionLocY == "")) { response = "<h3>" + translator.GetTranslatedString("RegionLocationError") + "</h3>"; return(null); } // so far so good... // build the new region details int RegionPort = int.Parse(requestParameters ["RegionPort"].ToString()); var newRegion = new RegionInfo(); if (regionID != "") { newRegion.RegionID = UUID.Parse(regionID); } newRegion.RegionName = regionName; newRegion.RegionType = regionType; newRegion.RegionLocX = int.Parse(regionLocX); newRegion.RegionLocY = int.Parse(regionLocY); newRegion.RegionSizeX = int.Parse(regionSizeX); newRegion.RegionSizeY = int.Parse(regionSizeY); newRegion.RegionPort = RegionPort; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 50000; newRegion.Startup = StartupType.Normal; var regionPreset = regionPresetType.ToLower(); //SubString(0,1); if (regionPreset.StartsWith("c", System.StringComparison.Ordinal)) { newRegion.RegionPort = int.Parse(requestParameters ["RegionPort"].ToString()); newRegion.SeeIntoThisSimFromNeighbor = (requestParameters ["RegionVisibility"].ToString().ToLower() == "yes"); newRegion.InfiniteRegion = (requestParameters ["RegionInfinite"].ToString().ToLower() == "yes"); newRegion.ObjectCapacity = int.Parse(requestParameters ["RegionCapacity"].ToString()); string delayStartup = requestParameters ["RegionDelayStartup"].ToString(); newRegion.Startup = delayStartup.StartsWith("n", System.StringComparison.Ordinal) ? StartupType.Normal : StartupType.Medium; } if (regionPreset.StartsWith("u", System.StringComparison.Ordinal)) { // 'standard' setup newRegion.RegionType = newRegion.RegionType + "Universe"; newRegion.RegionTerrain = "Flatland"; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 100000; newRegion.RegionPort = RegionPort; } if (regionPreset.StartsWith("o", System.StringComparison.Ordinal)) { // 'Openspace' setup newRegion.RegionType = newRegion.RegionType + "Openspace"; if (regionTerrain.StartsWith("a", System.StringComparison.Ordinal)) { newRegion.RegionTerrain = "Aquatic"; } else { newRegion.RegionTerrain = "Grassland"; } newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 50000; newRegion.RegionSettings.AgentLimit = 10; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith("h", System.StringComparison.Ordinal)) { // 'Homestead' setup newRegion.RegionType = newRegion.RegionType + "Homestead"; newRegion.RegionTerrain = "Homestead"; newRegion.Startup = StartupType.Medium; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 75000; newRegion.RegionSettings.AgentLimit = 20; newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; } if (regionPreset.StartsWith("f", System.StringComparison.Ordinal)) { // 'Full Region' setup newRegion.RegionType = newRegion.RegionType + "Full Region"; newRegion.RegionTerrain = regionTerrain; newRegion.Startup = StartupType.Normal; newRegion.SeeIntoThisSimFromNeighbor = true; newRegion.InfiniteRegion = true; newRegion.ObjectCapacity = 100000; newRegion.RegionSettings.AgentLimit = 100; if (newRegion.RegionType.StartsWith("M", System.StringComparison.Ordinal)) // defaults are 'true' { newRegion.RegionSettings.AllowLandJoinDivide = false; newRegion.RegionSettings.AllowLandResell = false; newRegion.InfiniteRegion = true; } } if (regionLoadTerrain.Length > 0) { // we are loading terrain from a file... handled later newRegion.RegionTerrain = "Custom"; } // TODO: !!! Assumes everything is local for now !!! if (requestParameters.ContainsKey("NewRegion")) { ISceneManager scenemanager = webInterface.Registry.RequestModuleInterface <ISceneManager> (); if (scenemanager.CreateRegion(newRegion)) { response = "<h3>Successfully created region</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; return(null); } response = "<h3>Error creating this region.</h3>"; return(null); } // TODO: This will not work yet :) // update region details var infoConnector = Framework.Utilities.DataManager.RequestPlugin <IRegionInfoConnector> (); if (infoConnector != null) { infoConnector.UpdateRegionInfo(newRegion); response = "<h3>Region details updated.</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; } else { response = "<h3>Unable to update Region details!</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=region_manager\";}, 2000);" + "</script>"; } return(null); } #endregion #region EditRegion // we have or need data if (httpRequest.Query.ContainsKey("regionid")) { var region = gridService.GetRegionByUUID(null, UUID.Parse(httpRequest.Query ["regionid"].ToString())); vars.Add("RegionID", region.RegionID.ToString()); vars.Add("RegionName", region.RegionName); UserAccount estateOwnerAccount = null; var estateOwner = UUID.Zero; var estateId = -1; IEstateConnector estateConnector = Framework.Utilities.DataManager.RequestPlugin <IEstateConnector> (); if (estateConnector != null) { EstateSettings estate = estateConnector.GetRegionEstateSettings(region.RegionID); if (estate != null) { estateId = (int)estate.EstateID; estateOwner = estate.EstateOwner; } var accountService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); if (accountService != null) { estateOwnerAccount = accountService.GetUserAccount(null, estate.EstateOwner); } } vars.Add("EstateList", WebHelpers.EstateSelections(webInterface.Registry, estateOwner.ToString(), estateId)); vars.Add("OwnerUUID", region.EstateOwner); vars.Add("OwnerName", estateOwnerAccount != null ? estateOwnerAccount.Name : "No account found"); vars.Add("RegionLocX", region.RegionLocX / Constants.RegionSize); vars.Add("RegionLocY", region.RegionLocY / Constants.RegionSize); vars.Add("RegionSizeX", region.RegionSizeX); vars.Add("RegionSizeY", region.RegionSizeY); vars.Add("RegionPort", region.InternalPort.ToString()); vars.Add("RegionType", WebHelpers.RegionTypeArgs(translator, region.RegionType)); vars.Add("RegionPresetType", WebHelpers.RegionPresetArgs(translator, region.RegionType)); vars.Add("RegionTerrain", WebHelpers.RegionTerrainArgs(translator, region.RegionTerrain)); // TODO: This will not work yet :) bool switches = false; var infoConnector = Framework.Utilities.DataManager.RequestPlugin <IRegionInfoConnector> (); if (infoConnector != null) { var regionInfo = infoConnector.GetRegionInfo(region.RegionID); if (regionInfo != null) { vars.Add("RegionCapacity", regionInfo.ObjectCapacity.ToString()); vars.Add("RegionVisibility", WebHelpers.YesNoSelection(translator, regionInfo.SeeIntoThisSimFromNeighbor)); vars.Add("RegionInfinite", WebHelpers.YesNoSelection(translator, regionInfo.InfiniteRegion)); vars.Add("RegionDelayStartup", WebHelpers.RegionStartupSelection(translator, regionInfo.Startup)); } } if (!switches) { vars.Add("RegionCapacity", "Unknown"); vars.Add("RegionVisibility", WebHelpers.YesNoSelection(translator, true)); vars.Add("RegionInfinite", WebHelpers.YesNoSelection(translator, true)); vars.Add("RegionDelayStartup", WebHelpers.RegionStartupSelection(translator, StartupType.Normal)); // normal startup } IWebHttpTextureService webTextureService = webInterface.Registry.RequestModuleInterface <IWebHttpTextureService> (); if (webTextureService != null && region.TerrainMapImage != UUID.Zero) { vars.Add("RegionImageURL", webTextureService.GetTextureURL(region.TerrainMapImage)); } else { vars.Add("RegionImageURL", "images/icons/no_picture.jpg"); } vars.Add("Submit", translator.GetTranslatedString("SaveUpdates")); } #endregion vars.Add("RegionPresets", WebHelpers.RegionSelections(webInterface.Registry)); // Labels vars.Add("UserName", user.Name); vars.Add("RegionManagerText", translator.GetTranslatedString("MenuRegionManager")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("RegionLocationText", translator.GetTranslatedString("RegionLocationText")); vars.Add("RegionSizeText", translator.GetTranslatedString("RegionSizeText")); vars.Add("RegionTypeText", translator.GetTranslatedString("RegionTypeText")); vars.Add("RegionPresetText", translator.GetTranslatedString("RegionPresetText")); vars.Add("RegionTerrainText", translator.GetTranslatedString("RegionTerrainText")); vars.Add("EstateText", translator.GetTranslatedString("EstateText")); vars.Add("RegionPortText", translator.GetTranslatedString("RegionPortText")); vars.Add("RegionDelayStartupText", translator.GetTranslatedString("RegionDelayStartupText")); vars.Add("RegionVisibilityText", translator.GetTranslatedString("RegionVisibilityText")); vars.Add("RegionInfiniteText", translator.GetTranslatedString("RegionInfiniteText")); vars.Add("RegionCapacityText", translator.GetTranslatedString("RegionCapacityText")); vars.Add("Cancel", translator.GetTranslatedString("Cancel")); vars.Add("InfoMessage", ""); return(vars); }
public void SellCollectible(string collectibleId) { WebInterface.OpenURL("https://market.decentraland.org/account"); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); // homescreen login string error = ""; if (requestParameters.ContainsKey("username") && requestParameters.ContainsKey("password")) { string username = requestParameters["username"].ToString(); string password = requestParameters["password"].ToString(); ILoginService loginService = webInterface.Registry.RequestModuleInterface <ILoginService>(); if (loginService.VerifyClient(UUID.Zero, username, "UserAccount", password)) { UUID sessionID = UUID.Random(); UserAccount account = webInterface.Registry.RequestModuleInterface <IUserAccountService>() .GetUserAccount(null, username); Authenticator.AddAuthentication(sessionID, account); if (account.UserLevel > 0) { Authenticator.AddAdminAuthentication(sessionID, account); } httpResponse.AddCookie(new System.Web.HttpCookie("SessionID", sessionID.ToString()) { Expires = DateTime.MinValue, Path = "" }); response = "<h3>Successfully logged in</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 0);" + "</script>"; } else { response = "<h3>Failed to verify user name and password</h3>"; } return(null); } // Tooltips Urls vars.Add("TooltipsWelcomeScreen", translator.GetTranslatedString("TooltipsWelcomeScreen")); vars.Add("TooltipsWorldMap", translator.GetTranslatedString("TooltipsWorldMap")); // Index Page vars.Add("HomeText", translator.GetTranslatedString("HomeText")); vars.Add("HomeTextWelcome", translator.GetTranslatedString("HomeTextWelcome")); vars.Add("HomeTextTips", translator.GetTranslatedString("HomeTextTips")); vars.Add("WelcomeScreen", translator.GetTranslatedString("WelcomeScreen")); vars.Add("WelcomeToText", translator.GetTranslatedString("WelcomeToText")); // login vars.Add("UserLogin", !Authenticator.CheckAuthentication(httpRequest)); vars.Add("ErrorMessage", error); vars.Add("Login", translator.GetTranslatedString("Login")); vars.Add("UserNameText", translator.GetTranslatedString("UserName")); vars.Add("PasswordText", translator.GetTranslatedString("Password")); vars.Add("ForgotPassword", translator.GetTranslatedString("ForgotPassword")); vars.Add("Submit", translator.GetTranslatedString("Login")); var settings = webInterface.GetWebUISettings(); if (PagesMigrator.RequiresUpdate() && PagesMigrator.CheckWhetherIgnoredVersionUpdate(settings.LastPagesVersionUpdateIgnored)) { vars.Add("PagesUpdateRequired", translator.GetTranslatedString("Pages") + " " + translator.GetTranslatedString("DefaultsUpdated")); } else { vars.Add("PagesUpdateRequired", ""); } if (SettingsMigrator.RequiresUpdate() && SettingsMigrator.CheckWhetherIgnoredVersionUpdate(settings.LastSettingsVersionUpdateIgnored)) { vars.Add("SettingsUpdateRequired", translator.GetTranslatedString("Settings") + " " + translator.GetTranslatedString("DefaultsUpdated")); } else { vars.Add("SettingsUpdateRequired", ""); } vars.Add("ShowSlideshowBar", !settings.HideSlideshowBar); // user setup news inclusion if (settings.LocalFrontPage == "") { vars.Add("LocalPage", false); vars.Add("LocalFrontPage", ""); } else { vars.Add("LocalPage", true); vars.Add("LocalFrontPage", settings.LocalFrontPage); } return(vars); }
private void Report(string encodedSamples) { WebInterface.SendPerformanceReport(encodedSamples, Settings.i.currentQualitySettings.fpsCap, tracker.CurrentHiccupCount(), tracker.GetHiccupSum(), tracker.GetTotalSeconds()); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var regionListVars = new List <Dictionary <string, object> > (); var user = Authenticator.GetAuthentication(httpRequest); var regionData = Framework.Utilities.DataManager.RequestPlugin <IRegionData> (); var regions = regionData.GetOwnerRegions(user.PrincipalID); if (regions.Count > 0) { foreach (var region in regions) { string info; info = (region.RegionArea < 1000000) ? region.RegionArea + " m2" : (region.RegionArea / 1000000) + " km2"; info = info + ", " + region.RegionTerrain; regionListVars.Add(new Dictionary <string, object> { { "RegionLocX", region.RegionLocX / Constants.RegionSize }, { "RegionLocY", region.RegionLocY / Constants.RegionSize }, { "RegionName", region.RegionName }, { "RegionInfo", info }, { "RegionStatus", WebHelpers.YesNo(translator, region.IsOnline) }, { "RegionID", region.RegionID }, { "RegionURI", region.RegionURI } }); } } else { regionListVars.Add(new Dictionary <string, object> { { "RegionLocX", "" }, { "RegionLocY", "" }, { "RegionName", "" }, { "RegionInfo", translator.GetTranslatedString("NoDetailsText") }, { "RegionStatus", "" }, { "RegionID", "" }, { "RegionURI", "" } }); } vars.Add("RegionList", regionListVars); // labels vars.Add("UserName", user.Name); vars.Add("RegionsText", translator.GetTranslatedString("MenuRegionsTitle")); vars.Add("AddRegionText", translator.GetTranslatedString("AddRegionText")); vars.Add("EditRegionText", translator.GetTranslatedString("EditText")); vars.Add("RegionListText", translator.GetTranslatedString("RegionListText")); vars.Add("RegionText", translator.GetTranslatedString("Region")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("RegionLocXText", translator.GetTranslatedString("RegionLocXText")); vars.Add("RegionLocYText", translator.GetTranslatedString("RegionLocYText")); vars.Add("RegionOnlineText", translator.GetTranslatedString("Online")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var usersList = new List <Dictionary <string, object> > (); var agentInfo = Framework.Utilities.DataManager.RequestPlugin <IAgentInfoConnector> (); var IsAdmin = Authenticator.CheckAdminAuthentication(httpRequest); //var activeUsers = agentInfo.RecentlyOnline(15*60, true, new Dictionary<string, bool>()); // active in the last 15 minutes var activeUsers = agentInfo.CurrentlyOnline(0, new Dictionary <string, bool> ()); var onlineText = ""; if (activeUsers.Count > 0) { var activeUsersList = new List <UUID> (); if (IsAdmin) // display all online users { onlineText = translator.GetTranslatedString("OnlineUsersText"); foreach (var user in activeUsers) { activeUsersList.Add((UUID)user.UserID); } } else // only show the users online friends { onlineText = translator.GetTranslatedString("OnlineFriendsText"); var ourAccount = Authenticator.GetAuthentication(httpRequest); if (ourAccount.Valid) { var friendsService = webInterface.Registry.RequestModuleInterface <IFriendsService> (); if (friendsService != null) { var friends = friendsService.GetFriends(ourAccount.PrincipalID); foreach (var friend in friends) { UUID friendID; UUID.TryParse(friend.Friend, out friendID); if (friendID != UUID.Zero) { // if ( (friendID != UUID.Zero) && (friendID == ourAccount.PrincipalID)) activeUsersList.Add(friendID); } } } } } if (activeUsersList.Count > 0) { var accountService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); var gridService = webInterface.Registry.RequestModuleInterface <IGridService> (); foreach (var user in activeUsers) { if (Utilities.IsSystemUser((UUID)user.UserID)) { continue; } if (!activeUsersList.Contains((UUID)user.UserID)) { continue; } var region = gridService.GetRegionByUUID(null, user.CurrentRegionID); if (region != null) { var userAcct = accountService.GetUserAccount(region.AllScopeIDs, UUID.Parse(user.UserID)); if (userAcct.Valid) { usersList.Add(new Dictionary <string, object> { { "UserName", userAcct.Name }, { "UserRegion", region.RegionName }, { "UserLocation", user.CurrentPosition }, { "UserID", user.UserID }, { "UserRegionID", region.RegionID } }); } } } } } if (usersList.Count == 0) { usersList.Add( new Dictionary <string, object> { { "UserName", "" }, { "UserRegion", "" }, { "UserLocation", "No users are currently logged in" }, { "UserID", "" }, { "UserRegionID", "" } }); } if (requestParameters.ContainsKey("Order")) { if (requestParameters ["Order"].ToString() == "RegionName") { usersList.Sort((a, b) => a ["UserRegion"].ToString().CompareTo(b ["UserRegion"].ToString())); } if (requestParameters ["Order"].ToString() == "UserName") { usersList.Sort((a, b) => a ["UserName"].ToString().CompareTo(b ["UserName"].ToString())); } } vars.Add("OnlineUsersText", onlineText); vars.Add("UsersOnlineList", usersList); vars.Add("UserNameText", translator.GetTranslatedString("UserNameText")); vars.Add("OnlineLocationText", translator.GetTranslatedString("OnlineLocationText")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("MoreInfoText", translator.GetTranslatedString("MoreInfoText")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; IConfig gridInfo = webInterface.Registry.RequestModuleInterface <ISimulationBase> ().ConfigSource.Configs ["GridInfoService"]; var inWorldCurrency = gridInfo.GetString("CurrencySymbol", string.Empty) + " "; var realCurrency = gridInfo.GetString("RealCurrencySymbol", string.Empty) + " "; var vars = new Dictionary <string, object> (); var purchasesList = new List <Dictionary <string, object> > (); var today = DateTime.Now; var thirtyDays = today.AddDays(-7); string dateStart = thirtyDays.ToShortDateString(); string dateEnd = today.ToShortDateString(); IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface <IMoneyModule> (); string noDetails = translator.GetTranslatedString("NoPurchasesText"); // Check if we're looking at the standard page or the submitted one if (requestParameters.ContainsKey("Submit")) { if (requestParameters.ContainsKey("date_start")) { dateStart = requestParameters ["date_start"].ToString(); } if (requestParameters.ContainsKey("date_end")) { dateEnd = requestParameters ["date_end"].ToString(); } } UserAccount user = Authenticator.GetAuthentication(httpRequest); if (user == null) { response = "<h3>Error validating user details</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"/?page=user_purchases\";}, 1000);" + "</script>"; return(null); } // Purchases Logs var timeNow = DateTime.Now.ToString("HH:mm:ss"); var dateFrom = DateTime.Parse(dateStart + " " + timeNow); var dateTo = DateTime.Parse(dateEnd + " " + timeNow); TimeSpan period = dateTo.Subtract(dateFrom); var purchases = new List <AgentPurchase> (); if (moneyModule != null) { purchases = moneyModule.GetPurchaseHistory(user.PrincipalID, dateFrom, dateTo, null, null); } // data if (purchases.Count > 0) { noDetails = ""; foreach (var purchase in purchases) { purchasesList.Add(new Dictionary <string, object> { { "ID", purchase.ID }, { "AgentID", purchase.AgentID }, { "AgentName", user.Name }, { "LoggedIP", purchase.IP }, { "Description", "Purchase" }, { "Amount", purchase.Amount }, { "RealAmount", ((float)purchase.RealAmount / 100).ToString("0.00") }, { "PurchaseDate", Culture.LocaleDate(purchase.PurchaseDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") }, { "UpdateDate", Culture.LocaleDate(purchase.UpdateDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") } }); } } if (purchasesList.Count == 0) { purchasesList.Add(new Dictionary <string, object> { { "ID", "" }, { "AgentID", "" }, { "AgentName", "" }, { "LoggedIP", "" }, { "Description", translator.GetTranslatedString("NoPurchasesText") }, { "Amount", "" }, { "RealAmount", "" }, { "PurchaseDate", "" }, { "UpdateDate", "" } }); } // always required data vars.Add("DateStart", dateStart); vars.Add("DateEnd", dateEnd); vars.Add("Period", period.TotalDays + " " + translator.GetTranslatedString("DaysText")); vars.Add("PurchasesList", purchasesList); vars.Add("NoPurchasesText", noDetails); // labels vars.Add("UserName", user.Name); vars.Add("PurchasesText", translator.GetTranslatedString("PurchasesText")); vars.Add("DateInfoText", translator.GetTranslatedString("DateInfoText")); vars.Add("DateStartText", translator.GetTranslatedString("DateStartText")); vars.Add("DateEndText", translator.GetTranslatedString("DateEndText")); vars.Add("SearchUserText", translator.GetTranslatedString("AvatarNameText")); vars.Add("PurchaseAgentText", translator.GetTranslatedString("TransactionToAgentText")); vars.Add("PurchaseDateText", translator.GetTranslatedString("TransactionDateText")); vars.Add("PurchaseUpdateDateText", translator.GetTranslatedString("TransactionDateText")); vars.Add("PurchaseDetailText", translator.GetTranslatedString("TransactionDetailText")); vars.Add("LoggedIPText", translator.GetTranslatedString("LoggedIPText")); vars.Add("PurchaseAmountText", inWorldCurrency + translator.GetTranslatedString("TransactionAmountText")); vars.Add("PurchaseRealAmountText", realCurrency + translator.GetTranslatedString("PurchaseCostText")); return(vars); }
void OnSendEmail(string email) { WebInterface.SendUserEmail(email); SetEmailFlag(); SetVisibility(false); }
public Dictionary<string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary<string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary<string, object>(); var transactionsList = new List<Dictionary<string, object>>(); uint amountPerQuery = 25; var today = DateTime.Now; var thirtyDays = today.AddDays (-30); string DateStart = thirtyDays.ToShortDateString(); string DateEnd = today.ToShortDateString(); string UserName = ""; UUID UserID = UUID.Zero; IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface<IMoneyModule>(); string noDetails = translator.GetTranslatedString ("NoTransactionsText"); // Check if we're looking at the standard page or the submitted one if (requestParameters.ContainsKey ("Submit")) { if (requestParameters.ContainsKey ("date_start")) DateStart = requestParameters ["date_start"].ToString (); if (requestParameters.ContainsKey ("date_end")) DateEnd = requestParameters ["date_end"].ToString (); if (requestParameters.ContainsKey ("user_name")) UserName = requestParameters ["user_name"].ToString (); if (UserName != "") { // TODO: Work out a better way to catch this UserID = (UUID)Constants.LibraryOwner; // This user should hopefully never have transactions if (UserName.Split (' ').Length == 2) { IUserAccountService accountService = webInterface.Registry.RequestModuleInterface<IUserAccountService> (); var userAccount = accountService.GetUserAccount (null, UserName); if (userAccount != null) UserID = userAccount.PrincipalID; } } // paginations int start = httpRequest.Query.ContainsKey ("Start") ? int.Parse (httpRequest.Query ["Start"].ToString ()) : 0; int count = (int) moneyModule.NumberOfTransactions(UserID, UUID.Zero); int maxPages = (int)(count / amountPerQuery) - 1; if (start == -1) start = (int)(maxPages < 0 ? 0 : maxPages); vars.Add ("CurrentPage", start); vars.Add ("NextOne", start + 1 > maxPages ? start : start + 1); vars.Add ("BackOne", start - 1 < 0 ? 0 : start - 1); // Transaction Logs var timeNow = DateTime.Now.ToString ("HH:mm:ss"); var dateFrom = DateTime.Parse (DateStart + " " + timeNow); var dateTo = DateTime.Parse (DateEnd + " " + timeNow); List<AgentTransfer> transactions; if (UserID != UUID.Zero) transactions = moneyModule.GetTransactionHistory (UserID, UUID.Zero, dateFrom, dateTo, (uint)start, amountPerQuery); else transactions = moneyModule.GetTransactionHistory (dateFrom, dateTo, (uint)start, amountPerQuery); // data if (transactions.Count > 0) { noDetails = ""; foreach (var transaction in transactions) { transactionsList.Add (new Dictionary<string, object> { { "Date", Culture.LocaleDate (transaction.TransferDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") }, { "ToAgent", transaction.ToAgentName }, { "FromAgent", transaction.FromAgentName }, { "Description", transaction.Description }, { "Amount",transaction.Amount }, { "ToBalance",transaction.ToBalance } }); } } } else { vars.Add ("CurrentPage", 0 ); vars.Add ("NextOne", 0); vars.Add ("BackOne", 0); } if (transactionsList.Count == 0) { transactionsList.Add(new Dictionary<string, object> { {"Date", ""}, {"ToAgent", ""}, {"FromAgent", ""}, {"Description", translator.GetTranslatedString ("NoTransactionsText")}, {"Amount",""}, {"ToBalance",""} }); } // always required data vars.Add("DateStart", DateStart ); vars.Add ("DateEnd", DateEnd ); vars.Add ("SearchUser", UserName); vars.Add("TransactionsList",transactionsList); vars.Add ("NoTransactionsText", noDetails); // labels vars.Add("TransactionsText", translator.GetTranslatedString("TransactionsText")); vars.Add("DateInfoText", translator.GetTranslatedString("DateInfoText")); vars.Add("DateStartText", translator.GetTranslatedString("DateStartText")); vars.Add("DateEndText", translator.GetTranslatedString("DateEndText")); vars.Add("SearchUserText", translator.GetTranslatedString("AvatarNameText")); vars.Add("TransactionDateText", translator.GetTranslatedString("TransactionDateText")); vars.Add("TransactionToAgentText", translator.GetTranslatedString("TransactionToAgentText")); vars.Add("TransactionFromAgentText", translator.GetTranslatedString("TransactionFromAgentText")); vars.Add("TransactionDetailText", translator.GetTranslatedString("TransactionDetailText")); vars.Add("TransactionAmountText", translator.GetTranslatedString("TransactionAmountText")); vars.Add("TransactionBalanceText", translator.GetTranslatedString("TransactionBalanceText")); vars.Add("FirstText", translator.GetTranslatedString("FirstText")); vars.Add("BackText", translator.GetTranslatedString("BackText")); vars.Add("NextText", translator.GetTranslatedString("NextText")); vars.Add("LastText", translator.GetTranslatedString("LastText")); vars.Add("CurrentPageText", translator.GetTranslatedString("CurrentPageText")); return vars; }
void SetEmailFlag() { WebInterface.SaveUserTutorialStep(UserProfile.GetOwnUserProfile().tutorialStep | EMAIL_PROMPT_PROFILE_FLAG); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); IAbuseReportsConnector abuseModule = Framework.Utilities.DataManager.RequestPlugin <IAbuseReportsConnector> (); IUserAccountService accountService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); IWebHttpTextureService webTextureService = webInterface.Registry.RequestModuleInterface <IWebHttpTextureService> (); string noDetails = translator.GetTranslatedString("NoDetailsText"); string infoMessage = ""; AbuseReport rpt; var snapshotURL = "../images/icons/no_screenshot.jpg"; // the card number can come in a number of ways int cardID = httpRequest.Query.ContainsKey("cardid") ? int.Parse(httpRequest.Query ["cardid"].ToString()) : int.Parse(requestParameters ["cardid"].ToString()); rpt = abuseModule.GetAbuseReport(cardID); if (rpt == null) { vars.Add("NoDetailsText", noDetails); return(vars); } // we have the report noDetails = ""; if (rpt.ScreenshotID != UUID.Zero) { snapshotURL = webTextureService.GetTextureURL(rpt.ScreenshotID); } // updating? if (requestParameters.ContainsKey("SubmitUpdates")) { { string newNote = requestParameters ["AbuseNoteText"].ToString(); if (newNote != "") { rpt.Notes = newNote; } rpt.Checked = (requestParameters ["Checked"].ToString().ToLower() == "yes"); rpt.Active = (requestParameters ["Active"].ToString().ToLower() == "yes"); rpt.AssignedTo = requestParameters ["AssignedTo"].ToString(); abuseModule.UpdateAbuseReport(rpt); infoMessage = translator.GetTranslatedString("ChangesSavedSuccessfully"); } } // get admin users var adminUsers = accountService.GetUserAccounts(null, Constants.USER_GOD_CUSTOMER_SERVICE, 0); var adminUsersList = new List <Dictionary <string, object> > (); if (adminUsers.Count > 0) { foreach (var user in adminUsers) { if (!Utilities.IsSystemUser(user.PrincipalID)) { adminUsersList.Add(new Dictionary <string, object> { { "Value", user.Name } }); } } adminUsersList.Add(new Dictionary <string, object> { { "Value", "No One" } }); } vars.Add("AdminUsersList", adminUsersList); // details vars.Add("CardNumber", rpt.Number); //vars.Add("Date"), Culture.LocaleDate (transaction.TransferDate.ToLocalTime(), "MMM dd, hh:mm:ss tt"); vars.Add("Details", rpt.AbuseDetails); vars.Add("AbuseLocation", rpt.AbuseLocation); vars.Add("Summary", rpt.AbuseSummary); vars.Add("AbuserName", rpt.AbuserName); vars.Add("IsActive", rpt.Active); vars.Add("IsNotActive", !rpt.Active); vars.Add("AssignedTo", rpt.AssignedTo); vars.Add("Category", rpt.Category); vars.Add("IsChecked", rpt.Checked); vars.Add("IsNotChecked", !rpt.Checked); vars.Add("Notes", rpt.Notes); vars.Add("ObjectName", rpt.ObjectName); vars.Add("ObjectPosition", rpt.ObjectPosition); vars.Add("ObjectUUID", rpt.ObjectUUID); vars.Add("RegionName", rpt.RegionName); vars.Add("ReporterName", rpt.ReporterName); vars.Add("ScreenshotURL", snapshotURL); vars.Add("NoDetailsText", noDetails); vars.Add("InfoMessage", infoMessage); // labels vars.Add("AbuseReportText", translator.GetTranslatedString("AbuseReportText")); vars.Add("DateText", translator.GetTranslatedString("DateText")); vars.Add("CategoryText", translator.GetTranslatedString("CategoryText")); vars.Add("SummaryText", translator.GetTranslatedString("SummaryText")); vars.Add("AbuserNameText", translator.GetTranslatedString("AbuserNameText")); vars.Add("AbuseReporterNameText", translator.GetTranslatedString("AbuseReporterNameText")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("ObjectNameText", translator.GetTranslatedString("ObjectNameText")); vars.Add("LocationText", translator.GetTranslatedString("LocationText")); vars.Add("UUIDText", translator.GetTranslatedString("UUIDText")); vars.Add("DetailsText", translator.GetTranslatedString("DetailsText")); vars.Add("NotesText", translator.GetTranslatedString("NotesText")); vars.Add("AddNotesText", translator.GetTranslatedString("AddNotesText")); vars.Add("ActiveText", translator.GetTranslatedString("ActiveText")); vars.Add("CheckedText", translator.GetTranslatedString("CheckedText")); vars.Add("AssignedToText", translator.GetTranslatedString("AssignedToText")); vars.Add("Submit", translator.GetTranslatedString("SaveUpdates")); vars.Add("Yes", translator.GetTranslatedString("Yes")); vars.Add("No", translator.GetTranslatedString("No")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var directoryService = Framework.Utilities.DataManager.RequestPlugin <IDirectoryServiceConnector> (); List <Dictionary <string, object> > eventListVars = new List <Dictionary <string, object> > (); IMoneyModule moneyModule = webInterface.Registry.RequestModuleInterface <IMoneyModule> (); var currencySymbol = "$"; if (moneyModule != null) { currencySymbol = moneyModule.InWorldCurrencySymbol; } var eventLevel = Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.PG); var category = (int)DirectoryManager.EventCategories.All; var timeframe = 24; var pg_checked = "checked"; var ma_checked = ""; var ao_checked = ""; if (requestParameters.ContainsKey("Submit")) { int level = 0; pg_checked = ""; ma_checked = ""; ao_checked = ""; if (requestParameters.ContainsKey("display_pg")) { //level += 1; level += Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.PG); pg_checked = "checked"; } if (requestParameters.ContainsKey("display_ma")) { //level += 2; level += Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.Mature); ma_checked = "checked"; } if (requestParameters.ContainsKey("display_ao")) { //level += 4; level += Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.Adult); ao_checked = "checked"; } eventLevel = level; string cat = requestParameters ["category"].ToString(); category = int.Parse(cat); string timsel = requestParameters ["timeframe"].ToString(); timeframe = int.Parse(timsel); } // maturity selections vars.Add("PG_checked", pg_checked); vars.Add("MA_checked", ma_checked); vars.Add("AO_checked", ao_checked); // build category selection vars.Add("CategoryType", WebHelpers.EventCategorySelections(category, translator)); // build timeframes vars.Add("TimeFrame", WebHelpers.EventTimeframesSelections(timeframe, translator)); // get some events if (directoryService != null) { var events = new List <EventData> (); events = directoryService.GetAllEvents(timeframe, category, eventLevel); if (events.Count == 0) { eventListVars.Add(new Dictionary <string, object> { { "EventUUID", "" }, { "CreatorUUID", "" }, { "EventDate", "" }, { "EventDateUTC", "" }, { "CoverCharge", "" }, { "Duration", "" }, { "Name", "" }, { "Description", translator.GetTranslatedString("NoDetailsText") }, { "SimName", "" }, { "GPosX", "" }, { "GPosY", "" }, { "GPosZ", "" }, { "LocalPosX", "" }, { "LocalPosY", "" }, { "LocalPosZ", "" }, { "Maturity", "" }, { "EventFlags", "" }, // same as maturity?? { "Category", "" } }); } else { foreach (var evnt in events) { var evntDateTime = Util.ToDateTime(evnt.dateUTC).ToLocalTime(); eventListVars.Add(new Dictionary <string, object> { { "EventUUID", evnt.eventID }, { "CreatorUUID", evnt.creator }, { "EventDate", evnt.date }, { "EventDateUTC", Culture.LocaleShortDateTime(evntDateTime) }, { "CoverCharge", currencySymbol + " " + evnt.amount }, { "Duration", WebHelpers.EventDuration((int)evnt.duration, translator) }, { "Name", evnt.name }, { "Description", evnt.description }, { "SimName", evnt.simName }, { "GPosX", evnt.globalPos.X.ToString() }, { "GPosY", evnt.globalPos.Y.ToString() }, { "GPosZ", evnt.globalPos.Z.ToString() }, { "LocalPosX", evnt.regionPos.X.ToString() }, { "LocalPosY", evnt.regionPos.Y.ToString() }, { "LocalPosZ", evnt.regionPos.Z.ToString() }, { "Maturity", WebHelpers.EventMaturity(evnt.maturity) }, { "EventFlags", evnt.eventFlags }, { "Category", WebHelpers.EventCategory(int.Parse(evnt.category), translator) } }); } } vars.Add("EventList", eventListVars); } vars.Add("Events", translator.GetTranslatedString("Events")); // labels vars.Add("EventsText", translator.GetTranslatedString("EventsText")); vars.Add("AddEventText", translator.GetTranslatedString("AddEventText")); vars.Add("EventDateText", translator.GetTranslatedString("EventDateText")); vars.Add("CategoryText", translator.GetTranslatedString("CategoryText")); vars.Add("EventNameText", translator.GetTranslatedString("EventNameText")); vars.Add("DescriptionText", translator.GetTranslatedString("DescriptionText")); vars.Add("MaturityText", translator.GetTranslatedString("MaturityText")); vars.Add("CoverChargeText", translator.GetTranslatedString("CoverChargeText")); vars.Add("DurationText", translator.GetTranslatedString("DurationText")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object> (); var abuseReportsList = new List <Dictionary <string, object> > (); IAbuseReportsConnector abuseModule = Framework.Utilities.DataManager.RequestPlugin <IAbuseReportsConnector> (); string noDetails = translator.GetTranslatedString("NoDetailsText"); List <AbuseReport> abuseReports; abuseReports = abuseModule.GetAbuseReports(0, 0, true); if (abuseReports.Count > 0) { noDetails = ""; foreach (var rpt in abuseReports) { abuseReportsList.Add(new Dictionary <string, object> { //{ "Date", Culture.LocaleDate (transaction.TransferDate.ToLocalTime(), "MMM dd, hh:mm:ss tt") }, { "Category", rpt.Category }, { "ReporterName", rpt.ReporterName }, { "Abusername", rpt.AbuserName }, { "Summary", rpt.AbuseSummary }, { "AssignedTo", rpt.AssignedTo }, { "Active", rpt.Active ? "Yes" : "No" }, { "CardNumber", rpt.Number.ToString() } }); } } if (abuseReports == null) { abuseReportsList.Add(new Dictionary <string, object> { { "Category", "" }, { "ReporterName", "" }, { "Abusername", "" }, { "Summary", "No abuse reports available" }, { "AssignedTo", "" }, { "Active", "" }, { "CardNumber", "" } }); } // always required data vars.Add("AbuseReportsList", abuseReportsList); vars.Add("NoDetailsText", noDetails); vars.Add("AbuseReportText", translator.GetTranslatedString("MenuAbuse")); // vars.Add("DateText", translator.GetTranslatedString("DateText")); vars.Add("CategoryText", translator.GetTranslatedString("CategoryText")); vars.Add("AbuseReporterNameText", translator.GetTranslatedString("AbuseReporterNameText")); vars.Add("AbuserNameText", translator.GetTranslatedString("AbuserNameText")); vars.Add("SummaryText", translator.GetTranslatedString("SummaryText")); vars.Add("AssignedToText", translator.GetTranslatedString("AssignedToText")); vars.Add("ActiveText", translator.GetTranslatedString("ActiveText")); vars.Add("MoreInfoText", translator.GetTranslatedString("MoreInfoText")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); var settings = webInterface.GetWebUISettings(); if (requestParameters.ContainsKey("Submit")) { settings.WebRegistration = requestParameters["WebRegistration"].ToString() == "1"; settings.MapCenter.X = int.Parse(requestParameters["GridCenterX"].ToString()); settings.MapCenter.Y = int.Parse(requestParameters["GridCenterY"].ToString()); settings.LocalFrontPage = requestParameters["LocalFrontPage"].ToString(); if (settings.LocalFrontPage != "") { settings.LocalFrontPage = "local/" + settings.LocalFrontPage; } settings.LocalCSS = requestParameters["LocalCSS"].ToString(); settings.HideSlideshowBar = requestParameters["HideSlideshowBar"].ToString() == "1"; settings.HideLanguageTranslatorBar = requestParameters["HideLanguageBar"].ToString() == "1"; settings.HideStyleBar = requestParameters["HideStyleBar"].ToString() == "1"; if (settings.LocalCSS != "") { settings.LocalCSS = "local/" + settings.LocalCSS; settings.HideStyleBar = true; // not needed if a local style is used } webInterface.SaveWebUISettings(settings); response = "Successfully updated WebUI settings."; return(null); } else if (requestParameters.ContainsKey("IgnorePagesUpdates")) { settings.LastPagesVersionUpdateIgnored = PagesMigrator.CurrentVersion; webInterface.SaveWebUISettings(settings); } else if (requestParameters.ContainsKey("IgnoreSettingsUpdates")) { settings.LastSettingsVersionUpdateIgnored = PagesMigrator.CurrentVersion; webInterface.SaveWebUISettings(settings); } vars.Add("WebRegistrationNo", !settings.WebRegistration ? "selected=\"selected\"" : ""); vars.Add("WebRegistrationYes", settings.WebRegistration ? "selected=\"selected\"" : ""); vars.Add("GridCenterX", settings.MapCenter.X); vars.Add("GridCenterY", settings.MapCenter.Y); if (settings.LocalFrontPage.StartsWith("local/")) { vars.Add("LocalFrontPage", settings.LocalFrontPage.Remove(0, 6)); // remove 'local/' prefix } else { vars.Add("LocalFrontPage", settings.LocalFrontPage); } if (settings.LocalCSS.StartsWith("local/")) { vars.Add("LocalCSS", settings.LocalCSS.Remove(0, 6)); // remove 'local/' prefix } else { vars.Add("LocalCSS", settings.LocalCSS); } vars.Add("HideSlideshowBarNo", !settings.HideSlideshowBar ? "selected=\"selected\"" : ""); vars.Add("HideSlideshowBarYes", settings.HideSlideshowBar ? "selected=\"selected\"" : ""); vars.Add("HideLanguageBarNo", !settings.HideLanguageTranslatorBar ? "selected=\"selected\"" : ""); vars.Add("HideLanguageBarYes", settings.HideLanguageTranslatorBar ? "selected=\"selected\"" : ""); vars.Add("HideStyleBarNo", !settings.HideStyleBar ? "selected=\"selected\"" : ""); vars.Add("HideStyleBarYes", settings.HideStyleBar ? "selected=\"selected\"" : ""); vars.Add("IgnorePagesUpdates", PagesMigrator.CheckWhetherIgnoredVersionUpdate(settings.LastPagesVersionUpdateIgnored) ? "" : "checked"); vars.Add("IgnoreSettingsUpdates", settings.LastSettingsVersionUpdateIgnored != SettingsMigrator.CurrentVersion ? "" : "checked"); vars.Add("SettingsManager", translator.GetTranslatedString("SettingsManager")); vars.Add("IgnorePagesUpdatesText", translator.GetTranslatedString("IgnorePagesUpdatesText")); vars.Add("IgnoreSettingsUpdatesText", translator.GetTranslatedString("IgnoreSettingsUpdatesText")); vars.Add("WebRegistrationText", translator.GetTranslatedString("WebRegistrationText")); vars.Add("GridCenterXText", translator.GetTranslatedString("GridCenterXText")); vars.Add("GridCenterYText", translator.GetTranslatedString("GridCenterYText")); vars.Add("LocalFrontPageText", translator.GetTranslatedString("LocalFrontPageText")); vars.Add("LocalCSSText", translator.GetTranslatedString("LocalCSSText")); vars.Add("WelcomeMessageText", translator.GetTranslatedString("WelcomeMessageText")); vars.Add("HideSlideshowBarText", translator.GetTranslatedString("HideSlideshowBarText")); vars.Add("HideLanguageBarText", translator.GetTranslatedString("HideLanguageBarText")); vars.Add("HideStyleBarText", translator.GetTranslatedString("HideStyleBarText")); vars.Add("Save", translator.GetTranslatedString("Save")); vars.Add("No", translator.GetTranslatedString("No")); vars.Add("Yes", translator.GetTranslatedString("Yes")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); var settings = webInterface.GetWebUISettings(); bool adminUser = Authenticator.CheckAdminAuthentication(httpRequest, Constants.USER_GOD_CUSTOMER_SERVICE); bool allowRegistration = settings.WebRegistration; bool anonymousLogins; // allow configuration to override the web settings IConfig config = webInterface.Registry.RequestModuleInterface <ISimulationBase>().ConfigSource.Configs ["LoginService"]; if (config != null) { anonymousLogins = config.GetBoolean("AllowAnonymousLogin", allowRegistration); allowRegistration = (allowRegistration || anonymousLogins); } if (!adminUser && !allowRegistration) { vars.Add("ErrorMessage", ""); vars.Add("RegistrationText", translator.GetTranslatedString("RegistrationText")); vars.Add("RegistrationsDisabled", translator.GetTranslatedString("RegistrationsDisabled")); vars.Add("Registrations", false); vars.Add("NoRegistrations", true); return(vars); } if (requestParameters.ContainsKey("Submit")) { string AvatarName = requestParameters["AvatarName"].ToString(); string AvatarPassword = requestParameters["AvatarPassword"].ToString(); string AvatarPasswordCheck = requestParameters["AvatarPassword2"].ToString(); string FirstName = requestParameters["FirstName"].ToString(); string LastName = requestParameters["LastName"].ToString(); string UserCity = requestParameters["UserCity"].ToString(); string UserEmail = requestParameters["UserEmail"].ToString(); string UserHomeRegion = requestParameters["UserHomeRegion"].ToString(); string UserDOBMonth = requestParameters["UserDOBMonth"].ToString(); string UserDOBDay = requestParameters["UserDOBDay"].ToString(); string UserDOBYear = requestParameters["UserDOBYear"].ToString(); string AvatarArchive = requestParameters.ContainsKey("AvatarArchive") ? requestParameters["AvatarArchive"].ToString() : ""; bool ToSAccept = requestParameters.ContainsKey("ToSAccept") && requestParameters["ToSAccept"].ToString() == "Accepted"; string UserType = requestParameters.ContainsKey("UserType") // only admins can set membership ? requestParameters ["UserType"].ToString() : "Resident"; // revise UserDOBMonth to a number UserDOBMonth = ShortMonthToNumber(UserDOBMonth); // revise Type flags int UserFlags = webInterface.UserTypeToUserFlags(UserType); // a bit of idiot proofing if (AvatarName == "") { response = "<h3>" + translator.GetTranslatedString("AvatarNameError") + "</h3>"; return(null); } if ((AvatarPassword == "") || (AvatarPassword != AvatarPasswordCheck)) { response = "<h3>" + translator.GetTranslatedString("AvatarPasswordError") + "</h3>"; return(null); } if (UserEmail == "") { response = "<h3>" + translator.GetTranslatedString("AvatarEmailError") + "</h3>"; return(null); } // Only one space is allowed in the name to seperate First and Last of the avatar name if (AvatarName.Split(' ').Length != 2) { response = "<h3>" + translator.GetTranslatedString("AvatarNameSpacingError") + "</h3>"; return(null); } // so far so good... if (ToSAccept) { AvatarPassword = Util.Md5Hash(AvatarPassword); IUserAccountService accountService = webInterface.Registry.RequestModuleInterface <IUserAccountService>(); UUID userID = UUID.Random(); string error = accountService.CreateUser(userID, settings.DefaultScopeID, AvatarName, AvatarPassword, UserEmail); if (error == "") { // set the user account type UserAccount account = accountService.GetUserAccount(null, userID); account.UserFlags = UserFlags; accountService.StoreUserAccount(account); // create and save agent info IAgentConnector con = Framework.Utilities.DataManager.RequestPlugin <IAgentConnector> (); con.CreateNewAgent(userID); IAgentInfo agent = con.GetAgent(userID); agent.OtherAgentInformation ["RLFirstName"] = FirstName; agent.OtherAgentInformation ["RLLastName"] = LastName; agent.OtherAgentInformation ["RLCity"] = UserCity; agent.OtherAgentInformation ["UserDOBMonth"] = UserDOBMonth; agent.OtherAgentInformation ["UserDOBDay"] = UserDOBDay; agent.OtherAgentInformation ["UserDOBYear"] = UserDOBYear; agent.OtherAgentInformation ["UserFlags"] = UserFlags; con.UpdateAgent(agent); // create user profile details IProfileConnector profileData = Framework.Utilities.DataManager.RequestPlugin <IProfileConnector> (); if (profileData != null) { IUserProfileInfo profile = profileData.GetUserProfile(userID); if (profile == null) { profileData.CreateNewProfile(userID); profile = profileData.GetUserProfile(userID); } if (AvatarArchive != "") { profile.AArchiveName = AvatarArchive; List <AvatarArchive> avarchives = webInterface.Registry.RequestModuleInterface <IAvatarAppearanceArchiver>().GetAvatarArchives(); UUID snapshotUUID = UUID.Zero; foreach (var archive in avarchives) { if (archive.FolderName == AvatarArchive) { snapshotUUID = archive.Snapshot; } } if (snapshotUUID != UUID.Zero) { profile.Image = snapshotUUID; } } profile.MembershipGroup = webInterface.UserFlagToType(UserFlags, webInterface.EnglishTranslator); // membership is english profile.IsNewUser = true; profileData.UpdateUserProfile(profile); } IAgentInfoService agentInfoService = webInterface.Registry.RequestModuleInterface <IAgentInfoService> (); Vector3 position = new Vector3(128, 128, 25); Vector3 lookAt = new Vector3(0, 0, 22); if (agentInfoService != null) { agentInfoService.SetHomePosition(userID.ToString(), (UUID)UserHomeRegion, position, lookAt); } vars.Add("ErrorMessage", "Successfully created account, redirecting to main page"); response = "<h3>Successfully created account, redirecting to main page</h3>" + "<script language=\"javascript\">" + "setTimeout(function() {window.location.href = \"index.html\";}, 3000);" + "</script>"; } else { vars.Add("ErrorMessage", "<h3>" + error + "</h3>"); response = "<h3>" + error + "</h3>"; } } else { response = "<h3>You did not accept the Terms of Service agreement.</h3>"; } return(null); } List <Dictionary <string, object> > daysArgs = new List <Dictionary <string, object> >(); for (int i = 1; i <= 31; i++) { daysArgs.Add(new Dictionary <string, object> { { "Value", i } }); } List <Dictionary <string, object> > monthsArgs = new List <Dictionary <string, object> >(); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Jan_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Feb_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Mar_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Apr_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("May_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Jun_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Jul_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Aug_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Sep_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Oct_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Nov_Short") } }); monthsArgs.Add(new Dictionary <string, object> { { "Value", translator.GetTranslatedString("Dec_Short") } }); List <Dictionary <string, object> > yearsArgs = new List <Dictionary <string, object> >(); for (int i = 1940; i <= 2013; i++) { yearsArgs.Add(new Dictionary <string, object> { { "Value", i } }); } vars.Add("Days", daysArgs); vars.Add("Months", monthsArgs); vars.Add("Years", yearsArgs); var sortBy = new Dictionary <string, bool>(); sortBy.Add("RegionName", true); var RegionListVars = new List <Dictionary <string, object> >(); var regions = Framework.Utilities.DataManager.RequestPlugin <IRegionData>().Get((RegionFlags)0, RegionFlags.Hyperlink | RegionFlags.Foreign | RegionFlags.Hidden, null, null, sortBy); foreach (var region in regions) { RegionListVars.Add(new Dictionary <string, object> { { "RegionName", region.RegionName }, { "RegionUUID", region.RegionID } }); } vars.Add("RegionList", RegionListVars); vars.Add("UserHomeRegionText", translator.GetTranslatedString("UserHomeRegionText")); vars.Add("UserTypeText", translator.GetTranslatedString("UserTypeText")); vars.Add("UserType", webInterface.UserTypeArgs(translator)); List <AvatarArchive> archives = webInterface.Registry.RequestModuleInterface <IAvatarAppearanceArchiver>().GetAvatarArchives(); List <Dictionary <string, object> > avatarArchives = new List <Dictionary <string, object> >(); IWebHttpTextureService webTextureService = webInterface.Registry. RequestModuleInterface <IWebHttpTextureService>(); foreach (var archive in archives) { avatarArchives.Add(new Dictionary <string, object> { { "AvatarArchiveName", archive.FolderName }, { "AvatarArchiveSnapshotID", archive.Snapshot }, { "AvatarArchiveSnapshotURL", webTextureService.GetTextureURL(archive.Snapshot) } }); } vars.Add("AvatarArchive", avatarArchives); IConfig loginServerConfig = webInterface.Registry.RequestModuleInterface <ISimulationBase>().ConfigSource.Configs["LoginService"]; string tosLocation = ""; if (loginServerConfig != null && loginServerConfig.GetBoolean("UseTermsOfServiceOnFirstLogin", false)) { tosLocation = loginServerConfig.GetString("FileNameOfTOS", ""); tosLocation = PathHelpers.VerifyReadFile(tosLocation, ".txt", Constants.DEFAULT_DATA_DIR); } string ToS = "There are no Terms of Service currently. This may be changed at any point in the future."; if (tosLocation != "") { System.IO.StreamReader reader = new System.IO.StreamReader(System.IO.Path.Combine(Environment.CurrentDirectory, tosLocation)); ToS = reader.ReadToEnd(); reader.Close(); } // check for user name seed string[] m_userNameSeed = null; if (loginServerConfig != null) { string userNameSeed = loginServerConfig.GetString("UserNameSeed", ""); if (userNameSeed != "") { m_userNameSeed = userNameSeed.Split(','); } } Utilities.MarkovNameGenerator ufNames = new Utilities.MarkovNameGenerator(); Utilities.MarkovNameGenerator ulNames = new Utilities.MarkovNameGenerator(); string[] nameSeed = m_userNameSeed == null ? Utilities.UserNames : m_userNameSeed; string firstName = ufNames.FirstName(nameSeed, 3, 4); string lastName = ulNames.FirstName(nameSeed, 5, 6); string enteredName = firstName + " " + lastName; vars.Add("AvatarName", enteredName); vars.Add("ToSMessage", ToS); vars.Add("TermsOfServiceAccept", translator.GetTranslatedString("TermsOfServiceAccept")); vars.Add("TermsOfServiceText", translator.GetTranslatedString("TermsOfServiceText")); vars.Add("RegistrationsDisabled", ""); vars.Add("RegistrationText", translator.GetTranslatedString("RegistrationText")); vars.Add("AvatarNameText", translator.GetTranslatedString("AvatarNameText")); vars.Add("AvatarPasswordText", translator.GetTranslatedString("Password")); vars.Add("AvatarPasswordConfirmationText", translator.GetTranslatedString("PasswordConfirmation")); vars.Add("AvatarScopeText", translator.GetTranslatedString("AvatarScopeText")); vars.Add("FirstNameText", translator.GetTranslatedString("FirstNameText")); vars.Add("LastNameText", translator.GetTranslatedString("LastNameText")); vars.Add("UserAddressText", translator.GetTranslatedString("UserAddressText")); vars.Add("UserZipText", translator.GetTranslatedString("UserZipText")); vars.Add("UserCityText", translator.GetTranslatedString("UserCityText")); vars.Add("UserCountryText", translator.GetTranslatedString("UserCountryText")); vars.Add("UserDOBText", translator.GetTranslatedString("UserDOBText")); vars.Add("UserEmailText", translator.GetTranslatedString("UserEmailText")); vars.Add("Accept", translator.GetTranslatedString("Accept")); vars.Add("Submit", translator.GetTranslatedString("Submit")); vars.Add("SubmitURL", "register.html"); vars.Add("ErrorMessage", ""); vars.Add("Registrations", true); vars.Add("NoRegistrations", false); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); var usersList = new List <Dictionary <string, object> >(); var agentInfo = Framework.Utilities.DataManager.RequestPlugin <IAgentInfoConnector> (); uint amountPerQuery = 10; int start = httpRequest.Query.ContainsKey("Start") ? int.Parse(httpRequest.Query["Start"].ToString()) : 0; uint count = agentInfo.OnlineUsers(0); int maxPages = (int)(count / amountPerQuery) - 1; if (start == -1) { start = (int)(maxPages < 0 ? 0 : maxPages); } vars.Add("CurrentPage", start); vars.Add("NextOne", start + 1 > maxPages ? start : start + 1); vars.Add("BackOne", start - 1 < 0 ? 0 : start - 1); var IsAdmin = Authenticator.CheckAdminAuthentication(httpRequest); var activeUsers = agentInfo.CurrentlyOnline(0, new Dictionary <string, bool>(), (uint)start, amountPerQuery); if (activeUsers.Count > 0) { var activeUsersList = new List <UUID>(); if (IsAdmin) // display all online users { foreach (var user in activeUsers) { activeUsersList.Add((UUID)user.UserID); } } else // only show the users online friends { UserAccount ourAccount = Authenticator.GetAuthentication(httpRequest); if (ourAccount != null) { IFriendsService friendsService = webInterface.Registry.RequestModuleInterface <IFriendsService> (); var friends = friendsService.GetFriends(ourAccount.PrincipalID); foreach (var friend in friends) { UUID friendID = UUID.Zero; UUID.TryParse(friend.Friend, out friendID); if (friendID != UUID.Zero) { activeUsersList.Add(friendID); } } } } if (activeUsersList.Count > 0) { IUserAccountService accountService = webInterface.Registry.RequestModuleInterface <IUserAccountService> (); IGridService gridService = webInterface.Registry.RequestModuleInterface <IGridService> (); foreach (var user in activeUsers) { if (Utilities.IsSystemUser((UUID)user.UserID)) { continue; } if (!activeUsersList.Contains((UUID)user.UserID)) { continue; } var region = gridService.GetRegionByUUID(null, user.CurrentRegionID); if (region != null) { var account = accountService.GetUserAccount(region.AllScopeIDs, UUID.Parse(user.UserID)); if (account != null) { usersList.Add(new Dictionary <string, object> { { "UserName", account.Name }, { "UserRegion", region.RegionName }, { "UserLocation", user.CurrentPosition }, { "UserID", user.UserID }, { "UserRegionID", region.RegionID } }); } } } } } if (usersList.Count == 0) { usersList.Add( new Dictionary <string, object> { { "UserName", "" }, { "UserRegion", "" }, { "UserLocation", "No users are currently logged in" }, { "UserID", "" }, { "UserRegionID", "" } }); } if (requestParameters.ContainsKey("Order")) { if (requestParameters["Order"].ToString() == "RegionName") { usersList.Sort((a, b) => a["UserRegion"].ToString().CompareTo(b["UserRegion"].ToString())); } if (requestParameters["Order"].ToString() == "UserName") { usersList.Sort((a, b) => a["UserName"].ToString().CompareTo(b["UserName"].ToString())); } } vars.Add("UsersOnlineList", usersList); vars.Add("OnlineUsersText", translator.GetTranslatedString("OnlineUsersText")); vars.Add("UserNameText", translator.GetTranslatedString("UserNameText")); vars.Add("OnlineLocationText", translator.GetTranslatedString("OnlineLocationText")); vars.Add("RegionNameText", translator.GetTranslatedString("RegionNameText")); vars.Add("MoreInfoText", translator.GetTranslatedString("MoreInfoText")); vars.Add("FirstText", translator.GetTranslatedString("FirstText")); vars.Add("BackText", translator.GetTranslatedString("BackText")); vars.Add("NextText", translator.GetTranslatedString("NextText")); vars.Add("LastText", translator.GetTranslatedString("LastText")); vars.Add("CurrentPageText", translator.GetTranslatedString("CurrentPageText")); return(vars); }
public Dictionary <string, object> Fill(WebInterface webInterface, string filename, OSHttpRequest httpRequest, OSHttpResponse httpResponse, Dictionary <string, object> requestParameters, ITranslator translator, out string response) { response = null; var vars = new Dictionary <string, object>(); string username = filename.Split('/').LastOrDefault(); UserAccount account = null; if (httpRequest.Query.ContainsKey("userid")) { string userid = httpRequest.Query["userid"].ToString(); account = webInterface.Registry.RequestModuleInterface <IUserAccountService>(). GetUserAccount(null, UUID.Parse(userid)); } else if (httpRequest.Query.ContainsKey("name") || username.Contains('.')) { string name = httpRequest.Query.ContainsKey("name") ? httpRequest.Query["name"].ToString() : username; name = name.Replace('.', ' '); account = webInterface.Registry.RequestModuleInterface <IUserAccountService>(). GetUserAccount(null, name); } else { username = username.Replace("%20", " "); account = webInterface.Registry.RequestModuleInterface <IUserAccountService>(). GetUserAccount(null, username); } if (account == null) { return(vars); } // User found.... vars.Add("UserName", account.Name); IProfileConnector profileConnector = Framework.Utilities.DataManager.RequestPlugin <IProfileConnector>(); IUserProfileInfo profile = profileConnector == null ? null : profileConnector.GetUserProfile(account.PrincipalID); IWebHttpTextureService webhttpService = webInterface.Registry.RequestModuleInterface <IWebHttpTextureService>(); List <Dictionary <string, object> > picks = new List <Dictionary <string, object> >(); if (profile != null) { vars.Add("UserType", profile.MembershipGroup == "" ? "Resident" : profile.MembershipGroup); if (profile.Partner != UUID.Zero) { account = webInterface.Registry.RequestModuleInterface <IUserAccountService>(). GetUserAccount(null, profile.Partner); vars.Add("UserPartner", account.Name); } else { vars.Add("UserPartner", "No partner"); } vars.Add("UserAboutMe", profile.AboutText == "" ? "Nothing here" : profile.AboutText); string url = "../images/icons/no_avatar.jpg"; if (webhttpService != null && profile.Image != UUID.Zero) { url = webhttpService.GetTextureURL(profile.Image); } vars.Add("UserPictureURL", url); foreach (var pick in profileConnector.GetPicks(profile.PrincipalID)) { url = "../images/icons/no_picks.png"; if (webhttpService != null && pick.SnapshotUUID != UUID.Zero) { url = webhttpService.GetTextureURL(pick.SnapshotUUID); } Vector3 pickLoc = pick.GlobalPos; pickLoc.X /= Universe.Framework.Utilities.Constants.RegionSize; pickLoc.Y /= Universe.Framework.Utilities.Constants.RegionSize; picks.Add(new Dictionary <string, object> { { "PickSnapshotURL", url }, { "PickName", pick.OriginalName }, { "PickRegion", pick.SimName }, { "PickLocation", pickLoc } }); } } if (picks.Count == 0) { picks.Add(new Dictionary <string, object> { { "PickSnapshotURL", "../images/icons/no_picks.png" }, { "PickName", "None yet" }, { "PickRegion", "" }, { "PickLocation", "" } }); } vars.Add("UsersPicksText", translator.GetTranslatedString("UsersPicksText")); vars.Add("PickNameText", translator.GetTranslatedString("PickNameText")); vars.Add("PickRegionText", translator.GetTranslatedString("PickRegionText")); vars.Add("Picks", picks); return(vars); }
private void Report(string encodedSamples) { WebInterface.SendPerformanceReport(encodedSamples); }
private void OnReportUserButtonPressed() { OnReport?.Invoke(userId); WebInterface.SendReportPlayer(userId); Hide(); }
public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro) { return GetHtmlByEntity(GetEntityById(request.Id), (GridShowRequestWWE)request,pro); }