[Openvas-commits] r6733 - in trunk/gsa: . src src/html/src
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Fri Feb 12 18:57:18 CET 2010
Author: mattm
Date: 2010-02-12 18:56:58 +0100 (Fri, 12 Feb 2010)
New Revision: 6733
Modified:
trunk/gsa/ChangeLog
trunk/gsa/src/gsad.c
trunk/gsa/src/gsad_omp.c
trunk/gsa/src/gsad_omp.h
trunk/gsa/src/html/src/omp.xsl
Log:
Add removal of notes.
* src/gsad.c (init_validator): Add delete_note command. Add "note_id"
validator.
(exec_omp_get): Handle command "delete_note".
* src/gsad_omp.c (delete_note_omp): New function.
* src/gsad_omp.h: Add header accordingly.
* src/omp.xsl (delete_note_response): New templates.
(note) [detailed]: Add delete button.
Modified: trunk/gsa/ChangeLog
===================================================================
--- trunk/gsa/ChangeLog 2010-02-12 16:56:34 UTC (rev 6732)
+++ trunk/gsa/ChangeLog 2010-02-12 17:56:58 UTC (rev 6733)
@@ -1,5 +1,20 @@
2010-02-12 Matthew Mundell <matthew.mundell at intevation.de>
+ Add removal of notes.
+
+ * src/gsad.c (init_validator): Add delete_note command. Add "note_id"
+ validator.
+ (exec_omp_get): Handle command "delete_note".
+
+ * src/gsad_omp.c (delete_note_omp): New function.
+
+ * src/gsad_omp.h: Add header accordingly.
+
+ * src/omp.xsl (delete_note_response): New templates.
+ (note) [detailed]: Add delete button.
+
+2010-02-12 Matthew Mundell <matthew.mundell at intevation.de>
+
* src/html/src/omp.xsl (note) [detailed]: New template.
(result) [detailed]: Apply any notes.
Modified: trunk/gsa/src/gsad.c
===================================================================
--- trunk/gsa/src/gsad.c 2010-02-12 16:56:34 UTC (rev 6732)
+++ trunk/gsa/src/gsad.c 2010-02-12 17:56:58 UTC (rev 6733)
@@ -180,6 +180,7 @@
"|(delete_config)"
"|(delete_escalator)"
"|(delete_lsc_credential)"
+ "|(delete_note)"
"|(delete_report)"
"|(delete_target)"
"|(delete_task)"
@@ -238,6 +239,7 @@
/** @todo Because we fear injections, we're requiring weaker passwords! */
openvas_validator_add (validator, "lsc_password", "^[-_[:alnum:], ;:\\./\\\\]{0,40}$");
openvas_validator_add (validator, "max_result", "^[0-9]+$");
+ openvas_validator_add (validator, "note_id", "^[a-z0-9\\-]+$");
openvas_validator_add (validator, "name", "^[-_[:alnum:], \\./]{1,80}$");
openvas_validator_add (validator, "number", "^[0-9]+$");
openvas_validator_add (validator, "oid", "^[0-9.]{1,80}$");
@@ -1878,6 +1880,7 @@
const char *agent_format = NULL;
const char *task_id = NULL;
const char *report_id = NULL;
+ const char *note_id = NULL;
const char *format = NULL;
const char *package_format = NULL;
const char *name = NULL;
@@ -1927,6 +1930,12 @@
if (openvas_validate (validator, "report_id", report_id))
report_id = NULL;
+ note_id = MHD_lookup_connection_value (connection,
+ MHD_GET_ARGUMENT_KIND,
+ "note_id");
+ if (openvas_validate (validator, "note_id", note_id))
+ note_id = NULL;
+
oid = MHD_lookup_connection_value (connection,
MHD_GET_ARGUMENT_KIND,
"oid");
@@ -2093,6 +2102,11 @@
else if ((!strcmp (cmd, "delete_lsc_credential")) && (name != NULL))
return delete_lsc_credential_omp (credentials, name);
+ else if ((!strcmp (cmd, "delete_note"))
+ && (note_id != NULL) && (strlen (note_id) < VAL_MAX_SIZE)
+ && (report_id != NULL) && (strlen (report_id) < VAL_MAX_SIZE))
+ return delete_note_omp (credentials, note_id, report_id);
+
else if ((!strcmp (cmd, "delete_report")) && (report_id != NULL)
&& (strlen (report_id) < VAL_MAX_SIZE))
return delete_report_omp (credentials, report_id, task_id);
Modified: trunk/gsa/src/gsad_omp.c
===================================================================
--- trunk/gsa/src/gsad_omp.c 2010-02-12 16:56:34 UTC (rev 6732)
+++ trunk/gsa/src/gsad_omp.c 2010-02-12 17:56:58 UTC (rev 6733)
@@ -3797,6 +3797,67 @@
}
/**
+ * @brief Delete note, get report, XSL transform the result.
+ *
+ * @param[in] credentials Username and password for authentication.
+ * @param[in] note_id ID of note.
+ * @param[in] report_id ID of current report.
+ * @param[in] result_id ID of result in report.
+ *
+ * @return Result of XSL transformation.
+ */
+char *
+delete_note_omp (credentials_t * credentials, const char *note_id,
+ const char *report_id)
+{
+ entity_t entity;
+ char *text = NULL;
+ gnutls_session_t session;
+ int socket;
+
+ if (manager_connect (credentials, &socket, &session))
+ return gsad_message ("Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while deleting a note. "
+ "The note was not deleted. "
+ "Diagnostics: Failure to connect to manager daemon.",
+ "/omp?cmd=get_status");
+
+ if (openvas_server_sendf (&session,
+ "<commands>"
+ "<delete_note note_id=\"%s\" />"
+ "<get_report"
+ " notes=\"1\""
+ " notes_details=\"1\""
+ " report_id=\"%s\" />"
+ "</commands>",
+ note_id,
+ report_id) == -1)
+ {
+ openvas_server_close (socket, session);
+ return gsad_message ("Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while deleting a note. "
+ "The note was not deleted. "
+ "Diagnostics: Failure to send command to manager daemon.",
+ "/omp?cmd=get_status");
+ }
+
+ entity = NULL;
+ if (read_entity_and_text (&session, &entity, &text))
+ {
+ openvas_server_close (socket, session);
+ return gsad_message ("Internal error", __FUNCTION__, __LINE__,
+ "An internal error occurred while deleting a report. "
+ "It is unclear whether the report has been deleted or not. "
+ "Diagnostics: Failure to receive response from manager daemon.",
+ "/omp?cmd=get_status");
+ }
+ free_entity (entity);
+
+ openvas_server_close (socket, session);
+ return xsl_transform_omp (credentials, text);
+}
+
+/**
* @brief Get all system reports, XSL transform the result.
*
* @param[in] credentials Username and password for authentication.
Modified: trunk/gsa/src/gsad_omp.h
===================================================================
--- trunk/gsa/src/gsad_omp.h 2010-02-12 16:56:34 UTC (rev 6732)
+++ trunk/gsa/src/gsad_omp.h 2010-02-12 17:56:58 UTC (rev 6733)
@@ -109,6 +109,8 @@
char * export_config_omp (credentials_t *, const char *, enum content_type*,
char **, gsize *);
+char * delete_note_omp (credentials_t *, const char *, const char *);
+
char * get_system_reports_omp (credentials_t *, const char *);
char * get_system_report_omp (credentials_t *, const char *, const char *,
enum content_type*, char **, gsize *);
Modified: trunk/gsa/src/html/src/omp.xsl
===================================================================
--- trunk/gsa/src/html/src/omp.xsl 2010-02-12 16:56:34 UTC (rev 6732)
+++ trunk/gsa/src/html/src/omp.xsl 2010-02-12 17:56:58 UTC (rev 6733)
@@ -3888,6 +3888,22 @@
<xsl:call-template name="html-report-details"/>
</xsl:template>
+<!-- DELETE_NOTE_RESPONSE -->
+
+<xsl:template match="delete_note_response">
+ <xsl:call-template name="command_result_dialog">
+ <xsl:with-param name="operation">
+ Delete Note
+ </xsl:with-param>
+ <xsl:with-param name="status">
+ <xsl:value-of select="@status"/>
+ </xsl:with-param>
+ <xsl:with-param name="msg">
+ <xsl:value-of select="@status_text"/>
+ </xsl:with-param>
+ </xsl:call-template>
+</xsl:template>
+
<!-- NOTE -->
<xsl:template match="note" mode="detailed">
@@ -3895,6 +3911,12 @@
<b>Note</b><br/>
<pre><xsl:value-of select="text"/></pre>
Last modified: <xsl:value-of select="modification_time"/>.
+ <div style="float:right; text-align:right">
+ <a href="/omp?cmd=delete_note&note_id={@id}&report_id={../../../../@id}"
+ title="Delete Note" style="margin-left:3px;">
+ <img src="/img/delete.png" border="0" alt="Delete"/>
+ </a>
+ </div>
</div>
</xsl:template>
More information about the Openvas-commits
mailing list