public void InsertSshServer()
        {
            // arrange
            // act
            var result = _sshServerSerivce.Insert(SshServer(), false).GetAwaiter().GetResult();
            // assert
            var SshServers = _sshServerSerivce.FindAll().GetAwaiter().GetResult();

            SshServers.Should().HaveCount(1);
        }
        public static SshServer SshServerInsert(SshServerSerivce sshServerSerivce)
        {
            sshServerSerivce.Insert(SshServer(), false).GetAwaiter().GetResult();
            var sshServer = sshServerSerivce.FindAll().GetAwaiter().GetResult().FirstOrDefault();

            return(sshServer);
        }
Esempio n. 3
0
        public async Task <IActionResult> CreateSshServer(string apiKey, string email)
        {
            if (!HasAccess(apiKey))
            {
                return(BadRequest("No AuthKey set or wrong auth key!"));
            }
            var model = new SshServer
            {
                Name        = "Please Change",
                SshUsername = "******",
                SshPassword = "******"
            };
            var user = await _userService.GetUserByEmail(email);

            if (user != null)
            {
                model.LiteDbUserId = user.Id.ToString();
                model.Owner        = user;
                if (!await _userManager.IsInRoleAsync(user, "OnPremise"))
                {
                    await _userManager.AddToRoleAsync(user, "OnPremise");
                }
            }

            var sshServer = await _sshServerSerivce.Insert(model);

            if (user == null)
            {
                await _reservedServersService.Add(new ReservedServer()
                {
                    Email = email, SshServerId = sshServer
                });
            }
            return(Ok(sshServer));
        }
        public async Task <IActionResult> SaveServer(SshServer server)
        {
            if (!await CheckIfUserHasrights(server.Id))
            {
                return(Forbid());
            }
            var newServer = false;

            if (!ModelState.IsValid)
            {
                return(View("Server", server));
            }

            server.LiteDbUsers = (await _userservice.FindAll()).ToList();
            if (server.SshKeyFileNameForm != null)
            {
                await using var ms = new MemoryStream();
                await server.SshKeyFileNameForm.CopyToAsync(ms);

                var fileBytes = ms.ToArray();
                server.SshKeyFileName = fileBytes;
                // act on the Base64 data
            }

            if (server.SshKeyFileNameRootForHostingForm != null)
            {
                await using var ms = new MemoryStream();
                await server.SshKeyFileNameRootForHostingForm.CopyToAsync(ms);

                var fileBytes = ms.ToArray();
                server.SshKeyFileNameRootForHosting = fileBytes;
                // act on the Base64 data
            }

            server.Owner = (await _userservice.FindAll())
                           .FirstOrDefault(x => x.Id == new ObjectId(server.LiteDbUserId));
            try
            {
                if (server.Id == 0)
                {
                    newServer = true;
                    server.Id = await _service.Insert(server);
                }
                else
                {
                    if (server.SshKeyFileName == null)
                    {
                        var old = await _service.FindOne(server.Id);

                        if (old.SshKeyFileName != null)
                        {
                            server.SshKeyFileName = old.SshKeyFileName;
                        }
                    }
                    await _service.Update(server);
                }
            }
            catch (ValidateException e)
            {
                if (e.FieldName == "" && e.Message.ToLower().Contains("telnet"))
                {
                    ModelState.AddModelError("Password", e.Message);
                }
                else if (e.FieldName == "" && e.Message.ToLower().Contains("ssh"))
                {
                    ModelState.AddModelError("SshPassword", e.Message);
                }
                else if (e.FieldName == "")
                {
                    ModelState.AddModelError("Id", e.Message);
                }
                else
                {
                    ModelState.AddModelError(e.FieldName, e.Message);
                }
            }


            if (ModelState.ErrorCount > 0)
            {
                if (newServer)
                {
                    return(await EditServer(server));
                }
                return(await EditServer(server));
            }


            if (newServer)
            {
                return(await Index());
            }

            return(await Index());
        }