public AsyncWebInterface(WebInterface web, int msPauseBetweenActions)
        {
            this.web = web;
            this.msPauseBetweenActions = msPauseBetweenActions;

            queue = new Queue<Action>();
            bg = new Thread(RunBackgroundThread);
            bg.Start();
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
 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);
 }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }
Пример #10
0
        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);
 }
Пример #12
0
        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);
        }
Пример #13
0
 public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI req)
 {
     throw new NotImplementedException();
 }
Пример #14
0
 public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI req)
 {
     return GetResponse(req, null);
 }
Пример #15
0
        /// <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);
        }
Пример #16
0
        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);
        }
Пример #17
0
 public void SellCollectible(string collectibleId)
 {
     WebInterface.OpenURL("https://market.decentraland.org/account");
 }
Пример #18
0
        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());
 }
Пример #20
0
        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);
        }
Пример #21
0
        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);
        }
Пример #22
0
        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);
        }
Пример #23
0
 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;
        }
Пример #25
0
 void SetEmailFlag()
 {
     WebInterface.SaveUserTutorialStep(UserProfile.GetOwnUserProfile().tutorialStep | EMAIL_PROMPT_PROFILE_FLAG);
 }
Пример #26
0
        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);
        }
Пример #27
0
        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);
        }
Пример #28
0
        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);
        }
Пример #29
0
        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);
        }
Пример #30
0
        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);
        }
Пример #32
0
        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);
        }
Пример #33
0
 private void Report(string encodedSamples)
 {
     WebInterface.SendPerformanceReport(encodedSamples);
 }
 private void OnReportUserButtonPressed()
 {
     OnReport?.Invoke(userId);
     WebInterface.SendReportPlayer(userId);
     Hide();
 }
Пример #35
0
 public WebInterface.WidgetResponseWWI GetResponse(WebInterface.WidgetRequestWWI request, WidgetProcessWWE pro)
 {
     return GetHtmlByEntity(GetEntityById(request.Id), (GridShowRequestWWE)request,pro);
 }