Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add: Allow the update of setting variables for time and date formats (backport #179) #183

Merged
merged 3 commits into from
Oct 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions src/gsad_gmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -11984,6 +11984,7 @@
{
const char *lang, *text, *old_passwd, *passwd, *max;
const char *details_fname, *list_fname, *report_fname;
const char *time_format, *date_format;
gchar *lang_64, *text_64, *max_64, *fname_64;
GString *xml;
entity_t entity;
Expand All @@ -12004,6 +12005,8 @@
details_fname = params_value (params, "details_fname");
list_fname = params_value (params, "list_fname");
report_fname = params_value (params, "report_fname");
time_format = params_value (params, "time_format");
date_format = params_value (params, "date_format");

Check warning on line 12009 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12008-L12009

Added lines #L12008 - L12009 were not covered by tests

CHECK_VARIABLE_INVALID (text, "Save Settings")
CHECK_VARIABLE_INVALID (text, "Save Settings")
Expand All @@ -12013,6 +12016,8 @@
CHECK_VARIABLE_INVALID (details_fname, "Save Settings")
CHECK_VARIABLE_INVALID (list_fname, "Save Settings")
CHECK_VARIABLE_INVALID (report_fname, "Save Settings")
CHECK_VARIABLE_INVALID (time_format, "Save Settings")
CHECK_VARIABLE_INVALID (date_format, "Save Settings")

Check warning on line 12020 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12019-L12020

Added lines #L12019 - L12020 were not covered by tests

xml = g_string_new ("");

Expand Down Expand Up @@ -12638,6 +12643,110 @@
}
}

/* Send User Interface Time Format. */
changed_value = params_value (changed, "time_format");

Check warning on line 12647 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12647

Added line #L12647 was not covered by tests
if (changed_value == NULL
|| (strcmp (changed_value, "") && strcmp (changed_value, "0")))

Check warning on line 12649 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12649

Added line #L12649 was not covered by tests
{
gchar *time_format_64 =
g_base64_encode ((guchar *) time_format, strlen (time_format));

Check warning on line 12652 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12652

Added line #L12652 was not covered by tests

if (gvm_connection_sendf (connection,
"<modify_setting"
" setting_id"
"=\"11deb7ff-550b-4950-aacf-06faeb7c61b9\">"
"<value>%s</value>"
"</modify_setting>",
time_format_64 ? time_format_64 : "")
== -1)
{
g_free (time_format_64);
cmd_response_data_set_status_code (response_data,

Check warning on line 12664 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12663-L12664

Added lines #L12663 - L12664 were not covered by tests
MHD_HTTP_INTERNAL_SERVER_ERROR);
return gsad_message (

Check warning on line 12666 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12666

Added line #L12666 was not covered by tests
credentials, "Internal error", __func__, __LINE__,
"An internal error occurred while saving settings. "
"It is unclear whether all the settings were saved. "
"Diagnostics: Failure to send command to manager daemon.",
response_data);
}
g_free (time_format_64);

Check warning on line 12673 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12673

Added line #L12673 was not covered by tests

entity = NULL;
xml_string_append (xml, "<save_setting id=\"%s\">",

Check warning on line 12676 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12675-L12676

Added lines #L12675 - L12676 were not covered by tests
"11deb7ff-550b-4950-aacf-06faeb7c61b9");
if (read_entity_and_string_c (connection, &entity, &xml))
{
g_string_free (xml, TRUE);
cmd_response_data_set_status_code (response_data,

Check warning on line 12681 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12680-L12681

Added lines #L12680 - L12681 were not covered by tests
MHD_HTTP_INTERNAL_SERVER_ERROR);
return gsad_message (

Check warning on line 12683 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12683

Added line #L12683 was not covered by tests
credentials, "Internal error", __func__, __LINE__,
"An internal error occurred while saving settings. "
"It is unclear whether all the settings were saved. "
"Diagnostics: Failure to receive response from manager daemon.",
response_data);
}
xml_string_append (xml, "</save_setting>");

Check warning on line 12690 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12690

Added line #L12690 was not covered by tests
if (gmp_success (entity) != 1)
{
set_http_status_from_entity (entity, response_data);
modify_failed = 1;

Check warning on line 12694 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12693-L12694

Added lines #L12693 - L12694 were not covered by tests
}
}

/* Send User Interface Date Format. */
changed_value = params_value (changed, "date_format");

Check warning on line 12699 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12699

Added line #L12699 was not covered by tests
if (changed_value == NULL
|| (strcmp (changed_value, "") && strcmp (changed_value, "0")))

Check warning on line 12701 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12701

Added line #L12701 was not covered by tests
{
gchar *date_format_64 =
g_base64_encode ((guchar *) date_format, strlen (date_format));

Check warning on line 12704 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12704

Added line #L12704 was not covered by tests

if (gvm_connection_sendf (connection,
"<modify_setting"
" setting_id"
"=\"d9857b7c-1159-4193-9bc0-18fae5473a69\">"
"<value>%s</value>"
"</modify_setting>",
date_format_64 ? date_format_64 : "")
== -1)
{
g_free (date_format_64);
cmd_response_data_set_status_code (response_data,

Check warning on line 12716 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12715-L12716

Added lines #L12715 - L12716 were not covered by tests
MHD_HTTP_INTERNAL_SERVER_ERROR);
return gsad_message (

Check warning on line 12718 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12718

Added line #L12718 was not covered by tests
credentials, "Internal error", __func__, __LINE__,
"An internal error occurred while saving settings. "
"It is unclear whether all the settings were saved. "
"Diagnostics: Failure to send command to manager daemon.",
response_data);
}
g_free (date_format_64);

Check warning on line 12725 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12725

Added line #L12725 was not covered by tests

entity = NULL;
xml_string_append (xml, "<save_setting id=\"%s\">",

Check warning on line 12728 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12727-L12728

Added lines #L12727 - L12728 were not covered by tests
"d9857b7c-1159-4193-9bc0-18fae5473a69");
if (read_entity_and_string_c (connection, &entity, &xml))
{
g_string_free (xml, TRUE);
cmd_response_data_set_status_code (response_data,

Check warning on line 12733 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12732-L12733

Added lines #L12732 - L12733 were not covered by tests
MHD_HTTP_INTERNAL_SERVER_ERROR);
return gsad_message (

Check warning on line 12735 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12735

Added line #L12735 was not covered by tests
credentials, "Internal error", __func__, __LINE__,
"An internal error occurred while saving settings. "
"It is unclear whether all the settings were saved. "
"Diagnostics: Failure to receive response from manager daemon.",
response_data);
}
xml_string_append (xml, "</save_setting>");

Check warning on line 12742 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12742

Added line #L12742 was not covered by tests
if (gmp_success (entity) != 1)
{
set_http_status_from_entity (entity, response_data);
modify_failed = 1;

Check warning on line 12746 in src/gsad_gmp.c

View check run for this annotation

Codecov / codecov/patch

src/gsad_gmp.c#L12745-L12746

Added lines #L12745 - L12746 were not covered by tests
}
}

if (user_changed)
{
session_add_user (user_get_token (user), user);
Expand Down
2 changes: 2 additions & 0 deletions src/gsad_validator.c
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,8 @@ init_validator ()
"^(second|minute|hour|day|week|month|year|decade)$");
gvm_validator_add (validator, "chart_title", "(?s)^.*$");
gvm_validator_add (validator, "icalendar", "(?s)^BEGIN:VCALENDAR.+$");
gvm_validator_add (validator, "time_format", "^(12|24|system_default)$");
gvm_validator_add (validator, "date_format", "^(wmdy|wdmy|system_default)$");

/* Binary data params that should not use no UTF-8 validation */
gvm_validator_add_binary (validator, "certificate_bin");
Expand Down
Loading