private void btnSave_Click(object sender, EventArgs e) { try { if (btnSave.Text == "Save") { // Add new ServerShip newServer = new ServerShip(); newServer.SessionKey = information.Token; newServer.ServerId = -1; newServer.ServerName = txtName.Text; newServer.ServerOsId = cmbOs.SelectedIndex + 1; newServer.ServerDescription = txtDescription.Text; newServer.ServerIp = txtIp.Text; newServer.IpStatic = chkStatic.Checked; newServer.Fqdn = txtFQDN.Text; newServer.ServerNote = txtNotes.Text; var json = JsonConvert.SerializeObject(newServer); json = "=" + json; var path = information.URL + "/api/servers"; var response = ApiConnector.SendToApi(path, json); if (response.Contains("Passed!")) { MessageBox.Show("Server added!"); newServer.ServerId = Int32.Parse(response.Substring(1, 2)); } // Create permission for this user. ServerAccessLogedIn accessToSend = new ServerAccessLogedIn(); accessToSend.SessionKey = information.Token; accessToSend.ServerAccessId = -1; accessToSend.UserId = information.UserId; accessToSend.DepartmentId = 1; accessToSend.ServerId = newServer.ServerId; accessToSend.StartTime = null; accessToSend.FinishTime = null; accessToSend.StandardAccountId = null; accessToSend.Allowed = true; json = JsonConvert.SerializeObject(accessToSend); json = "=" + json; path = information.URL + "/api/serverAccessLevel"; response = ApiConnector.SendToApi(path, json); } else { // Update Existing ServerShip newServer = new ServerShip(); newServer.SessionKey = information.Token; newServer.ServerId = Int32.Parse(txtId.Text); newServer.ServerName = txtName.Text; newServer.ServerOsId = cmbOs.SelectedIndex + 1; newServer.ServerDescription = txtDescription.Text; newServer.ServerIp = txtIp.Text; newServer.IpStatic = chkStatic.Checked; newServer.Fqdn = txtFQDN.Text; newServer.ServerNote = txtNotes.Text; var json = JsonConvert.SerializeObject(newServer); json = "=" + json; var path = information.URL + "/api/servers"; var response = ApiConnector.SendToApi(path, json); if (response.Contains("\"Passed!\"")) { MessageBox.Show("Server updated!"); } } } catch (Exception ex) { // Do nothing } this.Close(); }
private void btnSave_Click(object sender, EventArgs e) { try { if (btnSave.Text == "Save") { // Add new user UserRemoveOrEdit newUser = new UserRemoveOrEdit(); newUser.UserId = -1; newUser.SessionKey = information.Token; newUser.PermissionLevelId = cmbAccessLevel.SelectedIndex + 1; newUser.FirstName = txtFirstName.Text; newUser.Surname = txtSurname.Text; newUser.JobTitle = txtJobTitle.Text; newUser.DepartmentId = cmbDepartments.SelectedIndex + 1; newUser.Username = txtUsername.Text; //SALT AND HASH! // Do this! /// Dont ignore it! //******************************** HashAlgorithm algo = new SHA256Managed(); var hash = algo.ComputeHash(Encoding.ASCII.GetBytes("quis" + txtPassword.Text + "quam")); string hexHash = ""; for (int i = 0; i < hash.Length; i++) { hexHash = hexHash + hash[i].ToString(); } newUser.Password = hexHash; newUser.LastLoginDate = DateTime.Now.ToString("yyy-MM-dd HH:mm:ss.fff"); newUser.Note = txtNotes.Text; // Send off to the API var json = JsonConvert.SerializeObject(newUser); json = "=" + json; var path = information.URL + "/api/users"; var response = ApiConnector.SendToApi(path, json); if (response.Contains("Passed!")) { MessageBox.Show("User added!"); var temp = response.Substring(1, 2); newUser.UserId = Int32.Parse(temp); } GetAccessLevel sendlvl = new GetAccessLevel(); sendlvl.SessionKey = information.Token; sendlvl.Id = 1; json = JsonConvert.SerializeObject(sendlvl); json = "=" + json; path = ""; path = information.URL + "/api/protectedAccount/getAll"; response = ApiConnector.SendToApi(path, json); var serverList = JsonConvert.DeserializeObject <List <ServerAccessLevel> >(response); ServerAccessLogedIn accessToSend = new ServerAccessLogedIn(); // Add the user permissions bassed on access Level Selected if (cmbAccessLevel.SelectedIndex < 4) { // For all servers foreach (ServerAccessLevel access in serverList) { // Call API for server info GetAccessLevel currServer = new GetAccessLevel(); currServer.SessionKey = information.Token; currServer.Id = access.ServerId; json = JsonConvert.SerializeObject(currServer); json = "=" + json; path = information.URL + "/api/servers/get"; // Add to server list response = ApiConnector.SendToApi(path, json); var objec = JsonConvert.DeserializeObject <Server>(response); if (objec.ServerId != 5) { accessToSend.SessionKey = information.Token; accessToSend.ServerAccessId = -1; accessToSend.UserId = newUser.UserId; accessToSend.DepartmentId = cmbDepartments.SelectedIndex + 1; accessToSend.ServerId = objec.ServerId; accessToSend.StartTime = null; accessToSend.FinishTime = null; accessToSend.StandardAccountId = access.StandardAccountId; accessToSend.Allowed = true; } json = JsonConvert.SerializeObject(accessToSend); json = "=" + json; path = information.URL + "/api/serverAccessLevel"; response = ApiConnector.SendToApi(path, json); } } else if (cmbAccessLevel.SelectedIndex < 5) { // For only linux servers foreach (ServerAccessLevel access in serverList) { // Call API for server info GetAccessLevel currServer = new GetAccessLevel(); currServer.SessionKey = information.Token; currServer.Id = access.ServerId; json = JsonConvert.SerializeObject(currServer); json = "=" + json; path = information.URL + "/api/servers/get"; // Add to server list response = ApiConnector.SendToApi(path, json); var objec = JsonConvert.DeserializeObject <Server>(response); if (objec.ServerId != 5 && objec.ServerOsId != 1 && objec.ServerOsId != 2) { //Create the access level accessToSend.UserId = newUser.UserId; accessToSend.DepartmentId = current.DepartmentId; accessToSend.ServerId = objec.ServerId; accessToSend.StartTime = null; accessToSend.FinishTime = null; accessToSend.StandardAccountId = access.StandardAccountId; accessToSend.Allowed = true; json = JsonConvert.SerializeObject(accessToSend); json = "=" + json; path = information.URL + "/api/serverAccessLevel"; response = ApiConnector.SendToApi(path, json); } } } else { // Add permissions for scripts only! foreach (ServerAccessLevel access in serverList) { // Call API for server info GetAccessLevel currServer = new GetAccessLevel(); currServer.SessionKey = information.Token; currServer.Id = access.ServerId; json = JsonConvert.SerializeObject(currServer); json = "=" + json; path = information.URL + "/api/servers/get"; // Add to server list response = ApiConnector.SendToApi(path, json); var objec = JsonConvert.DeserializeObject <Server>(response); if (objec.ServerId == 5) { //Create the access level accessToSend.UserId = newUser.UserId; accessToSend.DepartmentId = current.DepartmentId; accessToSend.ServerId = objec.ServerId; accessToSend.StartTime = null; accessToSend.FinishTime = null; accessToSend.StandardAccountId = access.StandardAccountId; accessToSend.Allowed = true; json = JsonConvert.SerializeObject(accessToSend); json = "=" + json; path = information.URL + "/api/serverAccessLevel"; response = ApiConnector.SendToApi(path, json); } } } } else { // Update User UserRemoveOrEdit newUser = new UserRemoveOrEdit(); newUser.UserId = Int32.Parse(txtUserId.Text); newUser.SessionKey = information.Token; newUser.PermissionLevelId = cmbAccessLevel.SelectedIndex + 1; newUser.FirstName = txtFirstName.Text; newUser.Surname = txtSurname.Text; newUser.JobTitle = txtJobTitle.Text; newUser.DepartmentId = cmbDepartments.SelectedIndex + 1; newUser.Password = current.Password; newUser.Username = current.Username; newUser.LastLoginDate = DateTime.Now.ToString("yyy-MM-dd HH:mm:ss.fff"); newUser.Note = txtNotes.Text; // Send off to the API var json = JsonConvert.SerializeObject(newUser); json = "=" + json; var path = information.URL + "/api/users"; var response = ApiConnector.SendToApi(path, json); if (response == "\"Passed!\"") { MessageBox.Show("User Updated!"); } if (response == "\"Username Clash!\"") { MessageBox.Show("Duplicated username!, Please try again"); } } this.Close(); } catch (Exception ex) { } }