Exemplo n.º 1
0
        public IActionResult Private()
        {
            //ViewData["username"] = User.Identity.Name;
            //ViewData["token"] = HttpContext.Request.Cookies["iPlanetDirectoryPro"];
            PrivateViewModel model = new PrivateViewModel();

            model.Username = User.Identity.Name;
            model.Token    = HttpContext.Request.Cookies["ca.qc.inspq.oidc.token"];
            return(View("Private", model));
        }
        public IActionResult Index()
        {
            var viewModel = new PrivateViewModel
            {
                ModName = Constants.SupportedMods.Values.First().Name,
                Players = 2
            };

            return(View(viewModel));
        }
        public IActionResult Index(PrivateViewModel request)
        {
            StartServerResponse viewModel;

            try
            {
                if (!ModelState.IsValid)
                {
                    throw new WebInterfaceException("Something went off the rails.");
                }

                if (_torCheckService.IsTorExit(HttpContext.Connection.RemoteIpAddress))
                {
                    throw new WebInterfaceException("Requesting private servers through Tor is not allowed.");
                }

                if (!_rateLimiterService.IsRequestAllowed(HttpContext.Connection.RemoteIpAddress))
                {
                    throw new WebInterfaceException("Sorry, you have requested too many servers recently, you need to wait some time.");
                }

                string tempFolderName = "";
                if ((request.FormFile?.Length ?? 0) > 0)
                {
                    tempFolderName = _customMapService.StoreTempCustomMap(request.FormFile);
                }

                var    spawnedServer = _privateServerService.SpawnNewPrivateServer(request.Players + 1, request.ModName, tempFolderName ?? "");
                string commandLine   = CommandLineUtils.GetClientLaunchCommand(HttpContext.Request.Host.Host,
                                                                               spawnedServer.Port,
                                                                               spawnedServer.Mod.CommandLine);

                viewModel = new StartServerResponse(spawnedServer.Port, commandLine);
            }
            catch (WebInterfaceException ex)
            {
                viewModel = new StartServerResponse(ex.Message);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString());
                viewModel = new StartServerResponse("Internal server error.");
            }

            return(View("Result", viewModel));
        }
Exemplo n.º 4
0
        public IActionResult Appeler(PrivateViewModel model)
        {
            string url     = String.Empty;
            string request = String.Empty;

            if (model.AvecOuSansAgent == "avec")
            {
                if (model.JavaOuDotNet == "java")
                {
                    url     = Environment.GetEnvironmentVariable("JAVA_REST_BASE_URL");
                    request = "hello?nom=" + model.Username.Replace(" ", "");
                }
                else if (model.JavaOuDotNet == "dotnet")
                {
                    url     = Environment.GetEnvironmentVariable("DOTNET_REST_BASE_URL");
                    request = "helloworld/" + model.Username.Replace(" ", "");
                }
                if (url == null)
                {
                    url     = "http://sx5dotnetrest.bicycle2.inspq.qc.ca:8890/api/rest/";
                    request = "helloworld/" + model.Username.Replace(" ", "");
                }
            }
            else if (model.AvecOuSansAgent == "sans")
            {
                if (model.JavaOuDotNet == "java")
                {
                    url = Environment.GetEnvironmentVariable("JAVA_RESTOIDC_BASE_URL");
                }
                else if (model.JavaOuDotNet == "dotnet")
                {
                    url = Environment.GetEnvironmentVariable("DOTNET_RESTOIDC_BASE_URL");
                }
                if (url == null)
                {
                    url = "http://localhost:5001/API/Home/";
                }
                //request = "auth";
                request = "helloworld/" + model.Username.Replace(" ", "");
            }
            string retour = AppelerServiceRESTCSharp(url, request, model.Token).Result;

            model.Retour = retour;
            return(View("Private", model));
        }