public IActionResult DeleteAccounts(int id, ServerAccountModel serverAccount) { // Vérification de l'appelant if (!this.SecurityCheckRoleAdminOrOwner(serverAccount.UserLogin)) { return(Forbid()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id < 0 || string.IsNullOrWhiteSpace(serverAccount.UserLogin)) { return(BadRequest()); } if (id != serverAccount.ServerId) { return(BadRequest()); } DatabaseServerUser databaseServerUser = _service.RemoveAccount(id, serverAccount.UserLogin); if (databaseServerUser == null) { return(NotFound()); } return(Ok(databaseServerUser)); }
public IHttpActionResult Put(int id, ServerAccountModel serverAccount) { // Vérification de l'appelant IHttpActionResult result = this.SecurityCheckRoleAdminOrOwner(serverAccount.UserLogin); if (result != null) { return(result); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != serverAccount.ServerId) { return(BadRequest()); } if (service.UpdateAccount(serverAccount)) { return(StatusCode(HttpStatusCode.NoContent)); } return(StatusCode(HttpStatusCode.NotFound)); }
public void TestUpdateAccount() { ServerAccountModel serverAccount = new ServerAccountModel() { ServerId = 0, UserLogin = "******", Password = "******" }; Assert.IsTrue(service.UpdateAccount(serverAccount)); }
public void TestAddAccount() { DateTime dateDuJour = DateTime.Now; string login = string.Format("Test-{0}{1}{2}.{3}{4}", dateDuJour.Year, dateDuJour.Month, dateDuJour.Day, dateDuJour.Second, dateDuJour.Millisecond); ServerAccountModel serverAccount = new ServerAccountModel() { ServerId = 0, UserLogin = login, Password = "******" }; DatabaseServerUser databaseServerUser = service.AddAccount(serverAccount); Assert.IsNotNull(databaseServerUser); Assert.IsFalse(string.IsNullOrWhiteSpace(databaseServerUser.SqlLogin)); }
public DatabaseServerUser AddAccount(ServerAccountModel serverAccount) { DatabaseServerUser databaseServerUser = new DatabaseServerUser { ServerId = serverAccount.ServerId, UserLogin = serverAccount.UserLogin }; string serverName = "Serveur non trouvé"; try { // Obtention du serveur DatabaseServerName databaseServerName = this.db.DatabaseServerName.Find(serverAccount.ServerId); if (databaseServerName == null) { return(null); } serverName = databaseServerName.Name; // Obtention du serveur réel : MySQL, SQL Server, ... avec son adresse IP DatabaseManagement management = DatabaseManagement.CreateDatabaseManagement(databaseServerName.Code, databaseServerName.Iplocale, databaseServerName.PortLocal); // Création du login SQL databaseServerUser.SqlLogin = management.MakeSqlLogin(serverAccount.UserLogin); // Ajout du login SQL sur le serveur management.AddOrUpdateUser(databaseServerUser.SqlLogin, serverAccount.Password); } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(string.Format("Erreur dans l'ajout du compte utilisateur {0} sur le serveur '{1}', Erreur: {2}", serverAccount.ToString(), serverName, ex.Message)); } // Ajout de l'utilisateur pour cette BD try { db.DatabaseServerUser.Add(databaseServerUser); db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(string.Format("Erreur dans l'ajout du compte utilisateur {0} dans le référentiel", serverAccount.ToString()), ex); } return(databaseServerUser); }
public static void InitialisationTests(TestContext context) { service = new ServerAccountService(); // Ajout d'un compte pour les tests // Cela constitue aussi un test ! ServerAccountModel serverAccount = new ServerAccountModel() { ServerId = 0, UserLogin = "******", Password = "******" }; DatabaseServerUser databaseServerUser = service.AddAccount(serverAccount); Assert.IsNotNull(databaseServerUser); }
public bool UpdateAccount(ServerAccountModel serverAccount) { DatabaseServerUser databaseServerUser = null; DatabaseServerName databaseServerName = null; string serverName = "Serveur non trouvé"; try { // Obtention du serveur databaseServerName = this.db.DatabaseServerName.Find(serverAccount.ServerId); if (databaseServerName == null) { return(false); } serverName = databaseServerName.Name; // Obtention du login SQL de l'utilisateur var databaseServerUsers = db.DatabaseServerUser.Include(su => su.Server).AsEnumerable(); databaseServerUser = databaseServerUsers.SingleOrDefault(su => su.ServerId == serverAccount.ServerId && su.UserLogin.Equals(serverAccount.UserLogin, StringComparison.InvariantCultureIgnoreCase)); if (databaseServerUser == null) { return(false); } } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(String.Format("Erreur dans l'obtention du compte utilisateur {0} dans le référentiel, Erreur: {1}", serverAccount.ToString(), ex.Message)); } try { // Obtention du serveur réel : MySQL, SQL Server, ... avec son adresse IP DatabaseManagement management = DatabaseManagement.CreateDatabaseManagement(databaseServerName.Code, databaseServerName.Iplocale, databaseServerName.PortLocal); // Modification du mot de passe du login SQL sur le serveur management.AddOrUpdateUser(databaseServerUser.SqlLogin, serverAccount.Password); } catch (Exception ex) { LogManager.GetLogger().Error(ex); throw new DatabaseException(String.Format("Erreur dans la modification du compte utilisateur {0} sur le serveur '{1}', Erreur: {2}", serverAccount.ToString(), serverName, ex.Message)); } return(true); }
public IActionResult Put(int id, ServerAccountModel serverAccount) { // Vérification de l'appelant if (!this.SecurityCheckRoleAdminOrOwner(serverAccount.UserLogin)) { return(Forbid()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != serverAccount.ServerId) { return(BadRequest()); } return(_service.UpdateAccount(serverAccount) ? StatusCode(StatusCodes.Status204NoContent) : NotFound()); }
public ActionResult <DatabaseServerUser> PostAccounts(ServerAccountModel serverAccount) { // Vérification de l'appelant if (!this.SecurityCheckRoleAdminOrOwner(serverAccount.UserLogin)) { return(Forbid()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DatabaseServerUser databaseServerUser = _service.AddAccount(serverAccount); if (databaseServerUser == null) { return(Conflict()); } return(Ok(databaseServerUser)); //return CreatedAtAction(nameof(GetAccountsByServerId ), new { id = databaseServerUser.ServerId }, databaseServerUser); }
public IHttpActionResult PostAccounts(ServerAccountModel serverAccount) { // Vérification de l'appelant IHttpActionResult result = this.SecurityCheckRoleAdminOrOwner(serverAccount.UserLogin); if (result != null) { return(result); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DatabaseServerUser databaseServerUser = service.AddAccount(serverAccount); if (databaseServerUser == null) { return(Conflict()); } return(CreatedAtRoute("DefaultApi", new { id = databaseServerUser.ServerId }, databaseServerUser)); }