Exemplo n.º 1
0
        private void SendErrorReportAttachment(string exceptionType, IEnumerable <Image> screenShots, byte[] skyFileBytes, bool isTest)
        {
            if (isTest) // We don't want to be submitting an exception every time the ReportErrorDlgTest is run.
            {
                DialogResult = DialogResult.OK;
                return;
            }

            string reportUrl = WebHelpers.GetSkylineLink("/announcements/home/issues/exceptions/insert.view"); // Not L10N

            var nvc = new NameValueCollection
            {
                { "title", PostTitle },                  // Not L10N
                { "body", MessageBody },                 // Not L10N
                { "fromDiscussion", "false" },           // Not L10N
                { "allowMultipleDiscussions", "false" }, // Not L10N
                { "rendererType", "TEXT_WITH_LINKS" } // Not L10N
            };
            var files = new Dictionary <string, byte[]>();

            foreach (var screenShot in screenShots)
            {
                var memoryStream = new MemoryStream();
                screenShot.Save(memoryStream, ImageFormat.Jpeg);
                string name = "Image-" + (files.Count + 1) + ".jpg"; // Not L10N
                files.Add(name, memoryStream.ToArray());
            }

            if (skyFileBytes != null)
            {
                files.Add("skylineFile.sky", skyFileBytes); // Not L10N
            }

            HttpUploadFiles(reportUrl, "image/jpeg", nvc, files); // Not L10N

            DialogResult = DialogResult.OK;
        }
Exemplo n.º 2
0
        public static DailyTimeTrack GetCurrentDayClockInOutTime(string userName)
        {
            var startDate = WebHelpers.GetCurrentDateTimeByTimeZoneId(WebConfigurationManager.AppSettings["UserTimeZoneId"]).Date;
            var endDate   = startDate.AddDays(1);

            using (var dbContext = new TimeTrackingEntities())
            {
                var currentUser =
                    dbContext.ExtendedUserProfiles.FirstOrDefault(c => c.UserName.ToLower().Equals(userName));

                var userClockInOutTimeList = (from utsh in dbContext.UserTimeTrackHistories
                                              where utsh.IsDeleted == false &&
                                              utsh.UserName.ToLower().Equals(userName.ToLower()) &&
                                              (utsh.StampDate >= startDate && utsh.StampDate < endDate) &&
                                              utsh.ClockInTime.Length > 0
                                              select utsh).ToList();

                if (userClockInOutTimeList.Any())
                {
                    var userTimeStampHistory = userClockInOutTimeList.FirstOrDefault();
                    if (userTimeStampHistory != null)
                    {
                        var dailyTimeTrack = new DailyTimeTrack(userTimeStampHistory.StampDate, currentUser.HourlyRate.HasValue ? currentUser.HourlyRate.Value : 0)
                        {
                            TimeTrackList =
                                GetTimeTrackList(userClockInOutTimeList, userTimeStampHistory.StampDate).
                                OrderByDescending(c => c.ClockInTime).ThenByDescending(
                                    d => d.ClockOutTime).ToList()
                        };

                        dailyTimeTrack.SubmitButtonText = dailyTimeTrack.TimeTrackList.Any(c => c.ClockOutTime == null) ? WebConfigurationManager.AppSettings["ClockOutText"] : WebConfigurationManager.AppSettings["ClockInText"];
                        return(dailyTimeTrack);
                    }
                }
                return(new DailyTimeTrack());
            }
        }
Exemplo n.º 3
0
        public ActionResult Create(UserTimeTrackHistoryMapped utth, FormCollection collection)
        {
            var    userList = MembershipUserExtended.GetFullNameUserNameList();
            string userName = collection["UserName"];

            if (userList.ContainsValue(userName))
            {
                utth.UserName = userName;

                DateTime clockInDt;
                DateTime clockOutDt;
                if (DateTime.TryParse(utth.ClockInTime, out clockInDt) && DateTime.TryParse(utth.ClockOutTime, out clockOutDt))
                {
                    if (clockOutDt.TimeOfDay.CompareTo(clockInDt.TimeOfDay) != -1) // if clock out time is earlier than clock in time than error
                    {
                        utth.ClockInTime  = string.Format("{0:t}", clockInDt);
                        utth.ClockOutTime = string.Format("{0:t}", clockOutDt);

                        utth.UserId      = MembershipUserExtended.GetUserIdByUserName(userName);
                        utth.CreatedBy   = LoggedInUserName;
                        utth.CreatedDate = WebHelpers.GetCurrentDateTimeByTimeZoneId(WebConfigurationManager.AppSettings["UserTimeZoneId"]);
                        utth.IsDeleted   = false;
                        var tth = utth.Get(utth.Save());
                        tth.UserName    = userList.FindKeyByValue(userName);
                        ViewBag.Message = "Record inserted successfully.";
                        return(View(tth));
                    }
                    ViewBag.Message = "Clock Out time can not be earlier than Clock In time.";
                    return(View(utth));
                }
                ViewBag.Message = "Not a valid Clock In/Out time, please make sure time is in correct format.";
                return(View(utth));
            }
            ViewBag.Message = "Error inserting record.";
            return(View(new UserTimeTrackHistoryMapped()));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Sends the SMS.
        /// </summary>
        /// <param name="message">The message.</param>
        private async Task SendSMS(Message message)
        {
            try
            {
                await _smsApi.SendMessage(message.Recipient, message.Text);

                message.Status   = _smsApi.Success ? MessageStatus.Sent : MessageStatus.Failed;
                message.Response = _smsApi.Response;
            }
            catch (Exception ex)
            {
                message.Status = MessageStatus.Failed;
                var err = WebHelpers.ProcessException(ex).Message;
                if (err.StartsWith("The remote name could not be resolved"))
                {
                    err = "Unable to reach SMS Server. Make sure application server is connected to the internet.";
                }
                message.Response = err;
            }
            finally
            {
                SaveMessage(message);
            }
        }
Exemplo n.º 5
0
            protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
            {
                var json = string.Empty;

                if (request.Method == HttpMethod.Post && request.RequestUri.AbsoluteUri.Equals("https://portalbase.com/oauth2/token"))
                {
                    var formBody = WebHelpers.ParseForm(await request.Content.ReadAsStringAsync());
                    json = this.notifications.GenerateToken(formBody);
                }
                else if (request.Method == HttpMethod.Get && request.RequestUri.AbsoluteUri.Equals("https://portalbase.com/api/v1.1/m/profile"))
                {
                    json = this.notifications.GetUserProfile(request.Headers.Authorization.Scheme, request.Headers.Authorization.Parameter);
                }

                var response = new HttpResponseMessage(HttpStatusCode.NotFound);

                if (!string.IsNullOrEmpty(json))
                {
                    response.StatusCode = HttpStatusCode.OK;
                    response.Content    = new StringContent(json, Encoding.UTF8, "application/json");
                }

                return(response);
            }
Exemplo n.º 6
0
 private void linkProteoWizard_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenLink(this, "https://github.com/ProteoWizard"); // Not L10N
 }
Exemplo n.º 7
0
 private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenSkylineLink(this, "/wiki/home/software/Skyline/page.view?name=LicenseAgreement"); // Not L10N
 }
Exemplo n.º 8
0
 private void linkLabelProvider_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenLink(this, e.Link.LinkData as string);
 }
        public static void DisableChecks(bool CompletedEvent)
        {
            cheats_detected = Get_Cheat_Status();

            if (cheats_detected != 0)
            {
                if (cheats_detected == 64 && !CompletedEvent)
                {
                    /* You Know the Rules and So Do I */
                }
                else
                {
                    if (ServerProxy.Running())
                    {
                        foreach (string report_url in URLs.AntiCheatFD)
                        {
                            if (Completed == 0)
                            {
                                Completed++;
                                FunctionStatus.ExternalToolsWasUsed = true;
                            }

                            if (report_url.EndsWith("?"))
                            {
                                try
                                {
                                    Uri sendReport = new Uri(report_url + "serverip=" + serverip + "&user_id=" + user_id + "&persona_name=" + persona_name + "&event_session=" + event_id + "&cheat_type=" + cheats_detected + "&hwid=" + HardwareID.FingerPrint.Value() + "&persona_id=" + persona_id + "&launcher_hash=" + WebHelpers.Value() + "&launcher_certificate=" + CertificateStore.LauncherSerial + "&hwid_fallback=" + HardwareID.FingerPrint.ValueAlt() + "&car_used=" + DiscordGamePresence.PersonaCarName + "&os_platform=" + InformationCache.OSName + "&event_status=" + CompletedEvent);
                                    ServicePointManager.FindServicePoint(sendReport).ConnectionLeaseTimeout = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;

                                    var Client = new WebClient
                                    {
                                        Encoding = Encoding.UTF8
                                    };

                                    if (!WebCalls.Alternative())
                                    {
                                        Client = new WebClientWithTimeout {
                                            Encoding = Encoding.UTF8
                                        };
                                    }
                                    else
                                    {
                                        Client.Headers.Add("user-agent", "SBRW Launcher " + Application.ProductVersion + " - (" + InsiderInfo.BuildNumberOnly() + ")");
                                    }
                                    Client.DownloadStringCompleted += (Nice, Brock) => { Client.Dispose(); };

                                    try
                                    {
                                        string NTVersion = WindowsProductVersion.GetWindowsBuildNumber() != 0 ? WindowsProductVersion.GetWindowsBuildNumber().ToString() : "Wine";
                                        Client.Headers.Add("os-version", NTVersion);
                                        Client.DownloadStringAsync(sendReport);
                                    }
                                    catch { }
                                }
                                catch { }
                            }
                            else
                            {
                                try
                                {
                                    Uri sendReport = new Uri(report_url);
                                    ServicePointManager.FindServicePoint(sendReport).ConnectionLeaseTimeout = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;

                                    var request  = (HttpWebRequest)WebRequest.Create(sendReport);
                                    var postData = "serverip=" + serverip + "&user_id=" + user_id + "&persona_name=" + persona_name + "&event_session=" + event_id + "&cheat_type=" + cheats_detected + "&hwid=" + HardwareID.FingerPrint.Value() + "&persona_id=" + persona_id + "&launcher_hash=" + WebHelpers.Value() + "&launcher_certificate=" + CertificateStore.LauncherSerial + "&hwid_fallback=" + HardwareID.FingerPrint.ValueAlt() + "&car_used=" + DiscordGamePresence.PersonaCarName + "&os_platform=" + InformationCache.OSName + "&event_status=" + CompletedEvent;

                                    var data = Encoding.ASCII.GetBytes(postData);
                                    request.Method        = "POST";
                                    request.ContentType   = "application/x-www-form-urlencoded";
                                    request.ContentLength = data.Length;
                                    request.Timeout       = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;

                                    using (var stream = request.GetRequestStream())
                                    {
                                        stream.Write(data, 0, data.Length);
                                    }

                                    var    response       = (HttpWebResponse)request.GetResponse();
                                    String responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                                }
                                catch { }
                            }
                        }
                    }
                    else
                    {
                        if (Completed != URLs.AntiCheatSD.Length)
                        {
                            foreach (string report_url in URLs.AntiCheatSD)
                            {
                                Completed++;
                                if (report_url.EndsWith("?"))
                                {
                                    try
                                    {
                                        Uri sendReport = new Uri(report_url + "serverip=" + serverip + "&user_id=" + user_id + "&cheat_type=" + cheats_detected + "&hwid=" + HardwareID.FingerPrint.Value() + "&launcher_hash=" + WebHelpers.Value() + "&launcher_certificate=" + CertificateStore.LauncherSerial + "&hwid_fallback=" + HardwareID.FingerPrint.ValueAlt() + "&os_platform=" + InformationCache.OSName);
                                        ServicePointManager.FindServicePoint(sendReport).ConnectionLeaseTimeout = (int)TimeSpan.FromSeconds(30).TotalMilliseconds;

                                        var Client = new WebClient
                                        {
                                            Encoding = Encoding.UTF8
                                        };

                                        if (!WebCalls.Alternative())
                                        {
                                            Client = new WebClientWithTimeout {
                                                Encoding = Encoding.UTF8
                                            };
                                        }
                                        else
                                        {
                                            Client.Headers.Add("user-agent", "SBRW Launcher " + Application.ProductVersion + " - (" + InsiderInfo.BuildNumberOnly() + ")");
                                        }
                                        Client.DownloadStringCompleted += (Nice, Brock) => { Client.Dispose(); };

                                        try
                                        {
                                            string NTVersion = WindowsProductVersion.GetWindowsBuildNumber() != 0 ? WindowsProductVersion.GetWindowsBuildNumber().ToString() : "Wine";
                                            Client.Headers.Add("os-version", NTVersion);
                                            Client.DownloadStringAsync(sendReport);
                                        }
                                        catch { }
                                    }
                                    catch { }
                                }
                            }
                        }
                    }

                    TimeConversions.MUFRTime();
                }
            }

            detect_MULTIHACK = detect_FAST_POWERUPS = detect_SPEEDHACK = detect_SMOOTH_WALLS = detect_TANK_MODE = detect_WALLHACK = detect_DRIFTMOD = detect_PURSUITBOT = false;
            cheats_detected  = 0;
            Secret.Abort();
        }
 public Dictionary <string, string> GetFilesInfo()
 {
     return(WebHelpers.GetAllFilesInfo(HttpContext.Current.Server.MapPath("~/ClientBin")));
 }
Exemplo n.º 11
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);
        }
Exemplo n.º 12
0
        public async Task <ActionResult> Login(LoginModel model)
        {
            try
            {
                var user = await userManager.FindByNameAsync(model.Username);

                if (user != null)
                {
                    var result = await signInManager.CheckPasswordSignInAsync(user, model.Password, model.RememberMe);

                    if (result.Succeeded)
                    {
                        user = _context.Users.Where(x => x.Id == user.Id).Include(x => x.UserRoles).Include(x => x.Claims).First();
                        var role       = _context.Roles.Where(x => x.Id == user.UserRoles.First().RoleId).Include(x => x.RoleClaims).First();
                        var roleClaims = role.RoleClaims.Select(x => x.ClaimValue).Distinct().ToList();

                        var key     = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Tokens:Key"]));
                        var creds   = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                        var nowUtc  = DateTime.Now.ToUniversalTime();
                        var expires = nowUtc.AddMinutes(double.Parse(configuration["Tokens:ExpiryMinutes"])).ToUniversalTime();

                        var claims = new List <Claim> {
                            new Claim("Id", user.Id), new Claim("UserName", user.UserName)
                        };
                        var token = new JwtSecurityToken(
                            configuration["Tokens:Issuer"],
                            configuration["Tokens:Audience"],
                            claims,
                            expires: expires,
                            signingCredentials: creds);
                        var tokenResponse = new JwtSecurityTokenHandler().WriteToken(token);

                        var data = new
                        {
                            user.Id,
                            Username = user.UserName,
                            user.Name,
                            user.Email,
                            user.PhoneNumber,
                            Role   = role.Name,
                            Claims = roleClaims,
                            Token  = tokenResponse
                        };

                        return(Ok(new
                        {
                            data,
                            message = "Login Successful"
                        }));
                    }

                    return(BadRequest("Invalid Username or Password"));
                }

                return(BadRequest("Invalid Username or Password"));
            }
            catch (Exception e)
            {
                return(BadRequest(WebHelpers.ProcessException(e)));
            }
        }
Exemplo n.º 13
0
 private void lblCustomFormatString_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenSkylineShortLink(this, @"helptopic-docgridformats");
 }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public static void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseCustomSerilogRequestLogging();

            app.UseRouting();
            app.UseStaticFiles();
            if (!Directory.Exists("./Images"))
            {
                Directory.CreateDirectory("./Images");
            }
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(env.ContentRootPath, "Images")),
                RequestPath = "/Images"
            });

            app.UseDirectoryBrowser(new DirectoryBrowserOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(env.ContentRootPath, "Images")),
                RequestPath = "/Images"
            });
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(env.ContentRootPath, "Documents")),
                RequestPath = "/Documents"
            });

            app.UseDirectoryBrowser(new DirectoryBrowserOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(env.ContentRootPath, "Documents")),
                RequestPath = "/Documents"
            });

            app.UseCors("AllowAll");

            app.UseApiDoc();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
            WebHelpers.Configure(app.ApplicationServices.GetRequiredService <IHttpContextAccessor>());

            //added request logging

            app.UseHttpsRedirection();
            app.UseMiddleware <JwtMiddleware>();
            app.UseMiddleware <ApiLoggingMiddleware>();

            app.UseResponseCompression();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseSecureHeadersMiddleware(SecureHeadersMiddlewareExtensions.BuildDefaultConfiguration());
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
            // app.UseCors(options => options.AllowAnyOrigin());
        }
Exemplo n.º 15
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          eventListVars    = new List <Dictionary <string, object> > ();
            IMoneyModule moneyModule      = webInterface.Registry.RequestModuleInterface <IMoneyModule> ();

            var currencySymbol = "$";

            if (moneyModule != null)
            {
                currencySymbol = moneyModule.InWorldCurrencySymbol;
            }

            UserAccount user = Authenticator.GetAuthentication(httpRequest);

            var eventLevel = 7; // all events;
            var category   = (int)DirectoryManager.EventCategories.All;
            var timeframe  = 24;

            var pg_checked = "checked";
            var ma_checked = "checked";
            var ao_checked = "checked";

            if (requestParameters.ContainsKey("Submit"))
            {
                int level = 0;
                pg_checked = "";
                ma_checked = "";
                ao_checked = "";

                if (requestParameters.ContainsKey("display_pg"))
                {
                    level     += Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.PG);
                    pg_checked = "checked";
                }

                if (requestParameters.ContainsKey("display_ma"))
                {
                    level     += Util.ConvertEventMaturityToDBMaturity(DirectoryManager.EventFlags.Mature);
                    ma_checked = "checked";
                }

                if (requestParameters.ContainsKey("display_ao"))
                {
                    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.GetUserEvents(user.PrincipalID.ToString(), timeframe, category, eventLevel);

                if (events.Count == 0)
                {
                    vars.Add("EditText", "");
                    eventListVars.Add(new Dictionary <string, object> {
                        { "EventID", "" },
                        { "CreatorUUID", "" },
                        { "EventDate", "" },
                        { "EventDateUTC", "" },
                        { "CoverCharge", "" },
                        { "Duration", "" },
                        { "Name", "" },
                        { "Description", translator.GetTranslatedString("NoDetailsText") },
                        { "SimName", "" },
                        { "GPosX", "" },
                        { "GPosY", "" },
                        { "GPosZ", "" },
                        { "LocalPosX", "" },
                        { "LocalPosY", "" },
                        { "LocalPosZ", "" },
                        { "Maturity", "" },
                        { "EventFlags", "" },   // same as maturity??
                        { "Category", "" }
                    });
                }
                else
                {
                    vars.Add("EditText", translator.GetTranslatedString("EditText"));
                    foreach (var evnt in events)
                    {
                        var evntDateTime = Util.ToDateTime(evnt.dateUTC).ToLocalTime();
                        eventListVars.Add(new Dictionary <string, object> {
                            { "EventID", 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("UserName", user.Name);
            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("LocationText", translator.GetTranslatedString("LocationText"));
            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("CoverChargeText", translator.GetTranslatedString("CoverChargeText"));
            vars.Add("DurationText", translator.GetTranslatedString("DurationText"));
            vars.Add("SearchText", translator.GetTranslatedString("SearchText"));

            return(vars);
        }
        protected override async Task <AuthenticationTicket> AuthenticateCoreAsync()
        {
            var properties = (AuthenticationProperties)null;

            try
            {
                var    accessToken = Request.Query["accessToken"];
                var    expires     = Request.Query["expiresIn"];
                string text;
                if (null == accessToken)
                {
                    var code   = (string)null;
                    var state  = (string)null;
                    var query  = Request.Query;
                    var values = query.GetValues("error");
                    if (values != null && values.Count >= 1)
                    {
                        _logger.WriteVerbose("Remote server returned an error: " + Request.QueryString);
                    }
                    values = query.GetValues("code");
                    if (values != null && values.Count == 1)
                    {
                        code = values[0];
                    }
                    values = query.GetValues("state");
                    if (values != null && values.Count == 1)
                    {
                        state = values[0];
                    }
                    properties = Options.StateDataFormat.Unprotect(state);
                    if (properties == null)
                    {
                        return(null);
                    }
                    if (!ValidateCorrelationId(properties, _logger))
                    {
                        return(new AuthenticationTicket(null, properties));
                    }
                    if (code == null)
                    {
                        return(new AuthenticationTicket(null, properties));
                    }
                    var requestPrefix = Request.Scheme + "://" + Request.Host;
                    var redirectUri   = requestPrefix + Request.PathBase + Options.CallbackPath;
                    var tokenRequest  = "grant_type=authorization_code&code=" + Uri.EscapeDataString(code) +
                                        "&redirect_uri=" + Uri.EscapeDataString(redirectUri) + "&client_id=" +
                                        Uri.EscapeDataString(Options.AppId) + "&client_secret=" +
                                        Uri.EscapeDataString(Options.AppSecret);
                    var tokenResponse =
                        await _httpClient.GetAsync(Options.TokenEndpoint + "?" + tokenRequest, Request.CallCancelled);

                    tokenResponse.EnsureSuccessStatusCode();
                    text = await tokenResponse.Content.ReadAsStringAsync();

                    var form = WebHelpers.ParseForm(text);
                    accessToken = form["access_token"];
                    expires     = form["expires"];
                }
                else
                {
                    properties = new AuthenticationProperties()
                    {
                        RedirectUri = "/Account/ExternalLoginCallback"
                    };
                }
                var graphAddress = Options.UserInformationEndpoint + "?access_token=" + Uri.EscapeDataString(accessToken);
                if (Options.SendAppSecretProof)
                {
                    graphAddress += "&appsecret_proof=" + GenerateAppSecretProof(accessToken);
                }
                var graphResponse = await _httpClient.GetAsync(graphAddress, Request.CallCancelled);

                graphResponse.EnsureSuccessStatusCode();
                text = await graphResponse.Content.ReadAsStringAsync();

                var user    = JObject.Parse(text);
                var context = new FacebookAuthenticatedContext(Context, user, accessToken, expires)
                {
                    Identity =
                        new ClaimsIdentity(Options.AuthenticationType,
                                           "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
                                           "http://schemas.microsoft.com/ws/2008/06/identity/claims/role")
                };
                if (!string.IsNullOrEmpty(context.Id))
                {
                    context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", context.Id, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.UserName))
                {
                    context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", context.UserName, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.Email))
                {
                    context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress", context.Email, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.Name))
                {
                    context.Identity.AddClaim(new Claim("urn:facebook:name", context.Name, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                    if (string.IsNullOrEmpty(context.UserName))
                    {
                        context.Identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name", context.Name, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                    }
                }
                if (!string.IsNullOrEmpty(context.Link))
                {
                    context.Identity.AddClaim(new Claim("urn:facebook:link", context.Link, "http://www.w3.org/2001/XMLSchema#string", Options.AuthenticationType));
                }
                context.Properties = properties;
                await Options.Provider.Authenticated(context);

                return(new AuthenticationTicket(context.Identity, context.Properties));
            }
            catch (Exception ex)
            {
                _logger.WriteError("Authentication failed", ex);
                return(new AuthenticationTicket(null, properties));
            }
        }
Exemplo n.º 17
0
        protected override async Task <AuthenticationTicket> AuthenticateCoreAsync()
        {
            AuthenticationProperties properties = null;

            try
            {
                string code  = null;
                string state = null;

                IReadableStringCollection query = Request.Query;

                IList <string> values = query.GetValues("error");
                if (values != null && values.Count >= 1)
                {
                    _logger.WriteVerbose("Remote server returned an error: " + Request.QueryString);
                }

                values = query.GetValues("code");
                if (values != null && values.Count == 1)
                {
                    code = values[0];
                }
                values = query.GetValues("state");
                if (values != null && values.Count == 1)
                {
                    state = values[0];
                }

                properties = Options.StateDataFormat.Unprotect(state);
                if (properties == null)
                {
                    return(null);
                }

                // OAuth2 10.12 CSRF
                if (!ValidateCorrelationId(properties, _logger))
                {
                    return(new AuthenticationTicket(null, properties));
                }

                if (code == null)
                {
                    // Null if the remote server returns an error.
                    return(new AuthenticationTicket(null, properties));
                }

                string requestPrefix = Request.Scheme + "://" + Request.Host;
                string redirectUri   = requestPrefix + Request.PathBase + Options.CallbackPath;

                string tokenRequest = "grant_type=authorization_code" +
                                      "&code=" + Uri.EscapeDataString(code) +
                                      "&redirect_uri=" + Uri.EscapeDataString(redirectUri) +
                                      "&client_id=" + Uri.EscapeDataString(Options.AppId) +
                                      "&client_secret=" + Uri.EscapeDataString(Options.AppSecret);

                HttpResponseMessage tokenResponse = await _httpClient.GetAsync(Options.TokenEndpoint + "?" + tokenRequest, Request.CallCancelled);

                tokenResponse.EnsureSuccessStatusCode();
                string text = await tokenResponse.Content.ReadAsStringAsync();

                IFormCollection form = WebHelpers.ParseForm(text);

                string accessToken  = form["access_token"];
                string expires      = form["expires"];
                string graphAddress = Options.UserInformationEndpoint + "?access_token=" + Uri.EscapeDataString(accessToken);
                if (Options.SendAppSecretProof)
                {
                    graphAddress += "&appsecret_proof=" + GenerateAppSecretProof(accessToken);
                }

                HttpResponseMessage graphResponse = await _httpClient.GetAsync(graphAddress, Request.CallCancelled);

                graphResponse.EnsureSuccessStatusCode();
                text = await graphResponse.Content.ReadAsStringAsync();

                JObject user = JObject.Parse(text);

                var context = new FacebookAuthenticatedContext(Context, user, accessToken, expires);
                context.Identity = new ClaimsIdentity(
                    Options.AuthenticationType,
                    ClaimsIdentity.DefaultNameClaimType,
                    ClaimsIdentity.DefaultRoleClaimType);
                if (!string.IsNullOrEmpty(context.Id))
                {
                    context.Identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, context.Id, XmlSchemaString, Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.UserName))
                {
                    context.Identity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, context.UserName, XmlSchemaString, Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.Email))
                {
                    context.Identity.AddClaim(new Claim(ClaimTypes.Email, context.Email, XmlSchemaString, Options.AuthenticationType));
                }
                if (!string.IsNullOrEmpty(context.Name))
                {
                    context.Identity.AddClaim(new Claim("urn:facebook:name", context.Name, XmlSchemaString, Options.AuthenticationType));

                    // Many Facebook accounts do not set the UserName field.  Fall back to the Name field instead.
                    if (string.IsNullOrEmpty(context.UserName))
                    {
                        context.Identity.AddClaim(new Claim(ClaimsIdentity.DefaultNameClaimType, context.Name, XmlSchemaString, Options.AuthenticationType));
                    }
                }
                if (!string.IsNullOrEmpty(context.Link))
                {
                    context.Identity.AddClaim(new Claim("urn:facebook:link", context.Link, XmlSchemaString, Options.AuthenticationType));
                }
                context.Properties = properties;

                await Options.Provider.Authenticated(context);

                return(new AuthenticationTicket(context.Identity, context.Properties));
            }
            catch (Exception ex)
            {
                _logger.WriteError("Authentication failed", ex);
                return(new AuthenticationTicket(null, properties));
            }
        }
Exemplo n.º 18
0
        public ActionResult LoginPostback(string returnUrl)
        {
            var redirectUrl = WebHelpers.AppendParameter(ConfigOptions.Value.SecureAuthUrl, "ReturnUrl", $"https://{Request.Host.Host}/");

            return(new RedirectResult(redirectUrl));
        }
Exemplo n.º 19
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 estateConnector = Framework.Utilities.DataManager.RequestPlugin <IEstateConnector> ();

            string estate;

            if (httpRequest.Query.ContainsKey("EstateID"))
            {
                estate = httpRequest.Query ["EstateID"].ToString();
            }
            else
            {
                if (requestParameters.ContainsKey("EstateID"))
                {
                    estate = requestParameters ["EstateID"].ToString();
                }
                else
                {
                    response = "<h3>Estate details not supplied, redirecting to main page</h3>" +
                               "<script>" +
                               "setTimeout(function() {window.location.href = \"/?page=estate_manager\";}, 1000);" +
                               "</script>";
                    return(null);
                }
            }

            var estateid = -1;

            int.TryParse(estate, out estateid);

            if (requestParameters.ContainsKey("Delete"))
            {
                response = "Estate details would have been deleted (but not yet).";
                return(null);
            }

            if (requestParameters.ContainsKey("Submit"))
            {
                var estateSettings = new EstateSettings();

                if (estateid >= 0)
                {
                    estateSettings = estateConnector.GetEstateIDSettings(estateid);
                }

                var estateOwner = requestParameters ["EstateOwner"].ToString();

                estateSettings.EstateName          = requestParameters ["EstateName"].ToString();
                estateSettings.EstateOwner         = UUID.Parse(estateOwner);
                estateSettings.PricePerMeter       = int.Parse(requestParameters ["PricePerMeter"].ToString());
                estateSettings.PublicAccess        = requestParameters ["PublicAccess"].ToString() == "1";
                estateSettings.TaxFree             = requestParameters ["TaxFree"].ToString() == "1";
                estateSettings.AllowVoice          = requestParameters ["AllowVoice"].ToString() == "1";
                estateSettings.AllowDirectTeleport = requestParameters ["AllowDirectTeleport"].ToString() == "1";

                estateConnector.SaveEstateSettings(estateSettings);

                response = "Estate details have been updated." +
                           "<script>" +
                           "setTimeout(function() {window.location.href = \"/?page=estate_manager\";}, 1000);" +
                           "</script>";

                return(null);
            }

            if (requestParameters.ContainsKey("NewEstate"))
            {
                // blank details for new estate
                vars.Add("EstateID", "-1");
                vars.Add("EstateName", "");
                vars.Add("UserList", WebHelpers.UserSelections(webInterface.Registry, UUID.Zero));
                vars.Add("PricePerMeter", "");
                vars.Add("PublicAccess", WebHelpers.YesNoSelection(translator, true));
                vars.Add("AllowVoice", WebHelpers.YesNoSelection(translator, true));
                vars.Add("TaxFree", WebHelpers.YesNoSelection(translator, true));
                vars.Add("AllowDirectTeleport", WebHelpers.YesNoSelection(translator, true));

                vars.Add("Submit", translator.GetTranslatedString("AddEstateText"));
            }
            else
            {
                // get selected estate details
                var estateSettings = estateConnector.GetEstateIDSettings(estateid);
                if (estateSettings != null)
                {
                    vars.Add("EstateID", estateSettings.EstateID.ToString());
                    vars.Add("EstateName", estateSettings.EstateName);
                    vars.Add("UserList", WebHelpers.UserSelections(webInterface.Registry, estateSettings.EstateOwner));
                    vars.Add("PricePerMeter", estateSettings.PricePerMeter.ToString());
                    vars.Add("PublicAccess", WebHelpers.YesNoSelection(translator, estateSettings.PublicAccess));
                    vars.Add("AllowVoice", WebHelpers.YesNoSelection(translator, estateSettings.AllowVoice));
                    vars.Add("TaxFree", WebHelpers.YesNoSelection(translator, estateSettings.TaxFree));
                    vars.Add("AllowDirectTeleport", WebHelpers.YesNoSelection(translator, estateSettings.AllowDirectTeleport));

                    vars.Add("Submit", translator.GetTranslatedString("SaveUpdates"));
                }
            }

            // labels
            vars.Add("EstateManagerText", translator.GetTranslatedString("MenuEstateManager"));
            vars.Add("EstateNameText", translator.GetTranslatedString("EstateText"));
            vars.Add("EstateOwnerText", translator.GetTranslatedString("MenuOwnerTitle"));
            vars.Add("PricePerMeterText", translator.GetTranslatedString("PricePerMeterText"));
            vars.Add("PublicAccessText", translator.GetTranslatedString("PublicAccessText"));
            vars.Add("AllowVoiceText", translator.GetTranslatedString("AllowVoiceText"));
            vars.Add("TaxFreeText", translator.GetTranslatedString("TaxFreeText"));
            vars.Add("AllowDirectTeleportText", translator.GetTranslatedString("AllowDirectTeleportText"));
            vars.Add("Cancel", translator.GetTranslatedString("Cancel"));
            vars.Add("InfoMessage", "");

            return(vars);
        }
Exemplo n.º 20
0
        public ActionResult Login(DevLoginViewModel model, string returnUrl)
        {
            var redirectUrl = WebHelpers.AppendParameter(ConfigOptions.Value.SecureAuthUrl, "ReturnUrl", $"https://{Request.Host.Host}/Account/ExternalLoginCallback");

            return(ExternalLogin(AuthenticationTypeExternalCookie, redirectUrl));
        }
        private async Task <AccessToken> ObtainAccessTokenAsync(string consumerKey, string consumerSecret, RequestToken token, string verifier)
        {
            //https://dev.xing.com/docs/authentication

            _logger.WriteVerbose("ObtainAccessToken");

            var nonce = Guid.NewGuid().ToString("N");

            var authorizationParts = new SortedDictionary <string, string>
            {
                { "oauth_consumer_key", consumerKey },
                { "oauth_nonce", nonce },
                { "oauth_signature_method", "HMAC-SHA1" },
                { "oauth_token", token.Token },
                { "oauth_timestamp", GenerateTimeStamp() },
                { "oauth_verifier", verifier },
                { "oauth_version", "1.0" },
            };

            var parameterBuilder = new StringBuilder();

            foreach (var authorizationKey in authorizationParts)
            {
                parameterBuilder.AppendFormat("{0}={1}&", Uri.EscapeDataString(authorizationKey.Key), Uri.EscapeDataString(authorizationKey.Value));
            }
            parameterBuilder.Length--;
            var parameterString = parameterBuilder.ToString();

            var canonicalizedRequestBuilder = new StringBuilder();

            canonicalizedRequestBuilder.Append(HttpMethod.Post.Method);
            canonicalizedRequestBuilder.Append("&");
            canonicalizedRequestBuilder.Append(Uri.EscapeDataString(AccessTokenEndpoint));
            canonicalizedRequestBuilder.Append("&");
            canonicalizedRequestBuilder.Append(Uri.EscapeDataString(parameterString));

            var signature = ComputeSignature(consumerSecret, token.TokenSecret, canonicalizedRequestBuilder.ToString());

            authorizationParts.Add("oauth_signature", signature);
            authorizationParts.Remove("oauth_verifier");

            var authorizationHeaderBuilder = new StringBuilder();

            authorizationHeaderBuilder.Append("OAuth ");
            foreach (var authorizationPart in authorizationParts)
            {
                authorizationHeaderBuilder.AppendFormat(
                    "{0}=\"{1}\", ", authorizationPart.Key, Uri.EscapeDataString(authorizationPart.Value));
            }
            authorizationHeaderBuilder.Length = authorizationHeaderBuilder.Length - 2;

            var request = new HttpRequestMessage(HttpMethod.Post, AccessTokenEndpoint);

            request.Headers.Add("Authorization", authorizationHeaderBuilder.ToString());

            var formPairs = new List <KeyValuePair <string, string> >()
            {
                new KeyValuePair <string, string>("oauth_verifier", verifier)
            };

            request.Content = new FormUrlEncodedContent(formPairs);

            var response = await _httpClient.SendAsync(request, Request.CallCancelled);

            if (!response.IsSuccessStatusCode)
            {
                _logger.WriteError("AccessToken request failed with a status code of " + response.StatusCode);
                response.EnsureSuccessStatusCode(); // throw
            }

            var responseText = await response.Content.ReadAsStringAsync();

            var responseParameters = WebHelpers.ParseForm(responseText);

            return(new AccessToken
            {
                Token = Uri.UnescapeDataString(responseParameters["oauth_token"]),
                TokenSecret = Uri.UnescapeDataString(responseParameters["oauth_token_secret"]),
                UserId = Uri.UnescapeDataString(responseParameters["user_id"]),
            });
        }
Exemplo n.º 22
0
 private void SpecLibLinkClicked(LinkLabel linkLabel, string link)
 {
     linkLabel.LinkVisited = true;
     WebHelpers.OpenLink(this, link);
 }
Exemplo n.º 23
0
 private void buttonToolStore_Click(object sender, EventArgs e)
 {
     WebHelpers.OpenLink(this, _tools[listBoxTools.SelectedIndex].FilePath);
 }
Exemplo n.º 24
0
        private async Task <RequestToken> ObtainRequestTokenAsync(string consumerKey, string consumerSecret, string callBackUri, AuthenticationProperties properties)
        {
            _logger.WriteVerbose("ObtainRequestToken");

            string nonce = Guid.NewGuid().ToString("N");

            var authorizationParts = new SortedDictionary <string, string>
            {
                { "oauth_callback", callBackUri },
                { "oauth_consumer_key", consumerKey },
                { "oauth_nonce", nonce },
                { "oauth_signature_method", "HMAC-SHA1" },
                { "oauth_timestamp", GenerateTimeStamp() },
                { "oauth_version", "1.0" }
            };

            var parameterBuilder = new StringBuilder();

            foreach (var authorizationKey in authorizationParts)
            {
                parameterBuilder.AppendFormat("{0}={1}&", Uri.EscapeDataString(authorizationKey.Key), Uri.EscapeDataString(authorizationKey.Value));
            }
            parameterBuilder.Length--;
            string parameterString = parameterBuilder.ToString();

            var canonicalizedRequestBuilder = new StringBuilder();

            canonicalizedRequestBuilder.Append(HttpMethod.Post.Method);
            canonicalizedRequestBuilder.Append("&");
            canonicalizedRequestBuilder.Append(Uri.EscapeDataString(RequestTokenEndpoint));
            canonicalizedRequestBuilder.Append("&");
            canonicalizedRequestBuilder.Append(Uri.EscapeDataString(parameterString));

            string signature = ComputeSignature(consumerSecret, null, canonicalizedRequestBuilder.ToString());

            authorizationParts.Add("oauth_signature", signature);

            var authorizationHeaderBuilder = new StringBuilder();

            authorizationHeaderBuilder.Append("OAuth ");
            foreach (var authorizationPart in authorizationParts)
            {
                authorizationHeaderBuilder.AppendFormat(
                    "{0}=\"{1}\", ", authorizationPart.Key, Uri.EscapeDataString(authorizationPart.Value));
            }
            authorizationHeaderBuilder.Length = authorizationHeaderBuilder.Length - 2;

            var request = new HttpRequestMessage(HttpMethod.Post, RequestTokenEndpoint);

            request.Headers.Add("Authorization", authorizationHeaderBuilder.ToString());

            HttpResponseMessage response = await _httpClient.SendAsync(request, Request.CallCancelled);

            response.EnsureSuccessStatusCode();
            string responseText = await response.Content.ReadAsStringAsync();

            IFormCollection responseParameters = WebHelpers.ParseForm(responseText);

            if (string.Equals(responseParameters["oauth_callback_confirmed"], "true", StringComparison.InvariantCulture))
            {
                return(new RequestToken {
                    Token = Uri.UnescapeDataString(responseParameters["oauth_token"]), TokenSecret = Uri.UnescapeDataString(responseParameters["oauth_token_secret"]), CallbackConfirmed = true, Properties = properties
                });
            }

            return(new RequestToken());
        }
Exemplo n.º 25
0
        private void linkReleaseNotes_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            string notes = Install.Type == Install.InstallType.release ? @"notes" : @"notes-daily";

            WebHelpers.OpenSkylineShortLink(this, notes);
        }
Exemplo n.º 26
0
 private void linkProteoWizard_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenLink(this, "http://proteowizard.sourceforge.net/"); // Not L10N
 }
Exemplo n.º 27
0
 private void linkProteome_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenLink(this, "http://skyline.ms"); // Not L10N
 }
Exemplo n.º 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 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);
        }
Exemplo n.º 29
0
 private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     WebHelpers.OpenLink(this, "http://proteome.gs.washington.edu/software/Skyline/funding.html"); // Not L10N
 }
Exemplo n.º 30
0
        public static bool keylib_activate_get(
            string prod,
            string sregid,
            string email,
            out string keycode,
            out string reason)
        {
            string str1    = "netwinsite.com";
            string str2    = MyKey.keylib_host_new(MyKey.get_host());
            string postUrl = string.Format("http://{0}/cgi-bin/keycgi.exe", (object)str1);

            keycode           = "failed";
            MyKey.robot_email = string.Format("{{host: {0}}}\r\n{{regid: {1}}}\r\n{{email: {2}}}\r\n{{product: {3}}}\r\n{{build: {4}}}\r\n{{hostid: {5}}}\r\n", (object)str2, (object)sregid, (object)email, (object)prod, (object)MyKey.keylib_build_date(), (object)MyKey.s_hostid);
            if (email.Length > 0)
            {
                MyKey.s_email = email;
            }
            reason = "";
            sregid = sregid.ToLower();
            if (sregid.StartsWith("n"))
            {
                sregid = sregid.Substring(1);
            }
            Dictionary <string, object> postParameters = new Dictionary <string, object>();

            postParameters.Add("cmd", (object)"activate");
            postParameters.Add("regid", (object)sregid);
            postParameters.Add(nameof(email), (object)email);
            postParameters.Add("host", (object)str2);
            postParameters.Add("product", (object)prod);
            postParameters.Add("build", (object)MyKey.keylib_build_date());
            postParameters.Add("hostid", (object)MyKey.s_hostid);
            string end;

            try
            {
                string          userAgent       = "ftpdav";
                HttpWebResponse httpWebResponse = WebHelpers.MultipartFormDataPost(postUrl, userAgent, postParameters, "", "");
                end = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd();
                httpWebResponse.Close();
                stat.imsg("image post response {0}", (object)end);
            }
            catch (Exception ex)
            {
                stat.imsg("image post failed to connect {0}", (object)ex.ToString());
                return(false);
            }
            keycode = "";
            string str3 = "";

            foreach (string str4 in end.string_lines_any())
            {
                clib.imsg("Response: {0}", (object)str4);
                if (str4.StartsWith("key: "))
                {
                    keycode = str4.Substring(5);
                }
                if (str4.StartsWith("key_state: "))
                {
                    str3 = str4.Substring(1);
                }
                if (str4.StartsWith("error: "))
                {
                    reason = str4.Substring(7);
                }
            }
            if (reason.Length > 0)
            {
                return(false);
            }
            clib.imsg("key state {0}", (object)str3);
            MyKey.s_code = keycode;
            return(true);
        }