private void cmdOK_Click(object sender, EventArgs e) { if (txtName.Text.Trim() == "") { MessageBox.Show(this, "Enter a name.", Program.Title, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (lstPolicies.SelectedIndex == -1) { MessageBox.Show(this, "Select the policy item you want to create.", Program.Title, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } PolicyListElement ele = (PolicyListElement)lstPolicies.SelectedItem; NewPolicyReq req = new NewPolicyReq(); req.Data = ""; req.Grouping = GroupID; req.MachineID = MachineID; req.Name = txtName.Text.Trim(); req.Type = ele.TypeID; Int64?newID = Program.net.CreatePolicy(req); if (newID == null) { MessageBox.Show(this, "Creating new policy failed: " + Program.net.GetLastError(), Program.Title, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } NEWID = newID.Value; this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); }
public RESTStatus CreatePolicy(SQLLib sql, NewPolicyReq request, NetworkConnectionInfo ni) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } if (request.Name == null || request.Name.Trim() == "") { ni.Error = "Invalid name"; ni.ErrorID = ErrorFlags.InvalidData; return(RESTStatus.Fail); } request.Name = request.Name.Trim(); if (request.Grouping != null && request.MachineID != null) { ni.Error = "Either Grouping OR MachineID should be set"; ni.ErrorID = ErrorFlags.InvalidData; return(RESTStatus.Fail); } if (request.Grouping != null) { lock (ni.sqllock) { if (Groups.GroupExsits(sql, request.Grouping.Value) == false) { ni.Error = "Group does not exists"; ni.ErrorID = ErrorFlags.InvalidData; return(RESTStatus.Fail); } } } if (request.MachineID != null) { lock (ni.sqllock) { if (Computers.MachineExists(sql, request.MachineID) == false) { ni.Error = "MachineID does not exists"; ni.ErrorID = ErrorFlags.InvalidData; return(RESTStatus.Fail); } } } try { JsonConvert.DeserializeObject(request.Data); } catch { ni.Error = "JSON error"; ni.ErrorID = ErrorFlags.InvalidData; return(RESTStatus.Fail); } NewPolicyID = new NetInt64(); Int64?res; lock (ni.sqllock) { res = sql.InsertMultiDataID("Policies", new SQLData("Type", request.Type), new SQLData("Name", request.Name), new SQLData("Grouping", request.Grouping), new SQLData("MachineID", request.MachineID), new SQLData("DataBlob", request.Data), new SQLData("DT", DateTime.Now), new SQLData("Version", 1), new SQLData("Enabled", 0)); } if (res == null) { ni.Error = "SQL Error"; ni.ErrorID = ErrorFlags.SQLError; return(RESTStatus.ServerError); } NewPolicyID.Data = res.Value; return(RESTStatus.Created); }