From b263182adabe4a1fff32ed3a1ef765b5e9a68f67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20Wei=C3=9F?= Date: Wed, 29 Jun 2011 19:12:23 +0200 Subject: New database field: "is_sensitive" The new "entry.reason.is_sensitive" flag indicates whether the file contents/diffs were omitted from the database due to the "sensitive" attribute. --- src/lib/Server/Reports/importscript.py | 9 +++++++-- src/lib/Server/Reports/reports/models.py | 1 + .../reports/templates/config_items/item.html | 22 ++++++++++++++-------- src/lib/Server/Reports/updatefix.py | 1 + 4 files changed, 23 insertions(+), 10 deletions(-) (limited to 'src/lib/Server/Reports') diff --git a/src/lib/Server/Reports/importscript.py b/src/lib/Server/Reports/importscript.py index 68774cec6..7dfac6fae 100755 --- a/src/lib/Server/Reports/importscript.py +++ b/src/lib/Server/Reports/importscript.py @@ -40,7 +40,11 @@ from Bcfg2.Bcfg2Py3k import ConfigParser def build_reason_kwargs(r_ent, encoding, logger): binary_file = False - if r_ent.get('current_bfile', False): + sensitive_file = False + if r_ent.get('sensitive') in ['true', 'True']: + sensitive_file = True + rc_diff = '' + elif r_ent.get('current_bfile', False): binary_file = True rc_diff = r_ent.get('current_bfile') if len(rc_diff) > 1024 * 1024: @@ -74,7 +78,8 @@ def build_reason_kwargs(r_ent, encoding, logger): current_version=r_ent.get('current_version', default=""), current_exists=r_ent.get('current_exists', default="True").capitalize() == "True", current_diff=rc_diff, - is_binary=binary_file) + is_binary=binary_file, + is_sensitive=sensitive_file) def load_stats(cdata, sdata, encoding, vlevel, logger, quick=False, location=''): diff --git a/src/lib/Server/Reports/reports/models.py b/src/lib/Server/Reports/reports/models.py index d94b2e1ba..870239641 100644 --- a/src/lib/Server/Reports/reports/models.py +++ b/src/lib/Server/Reports/reports/models.py @@ -277,6 +277,7 @@ class Reason(models.Model): current_exists = models.BooleanField() # False means its missing. Default True current_diff = models.TextField(max_length=1280, blank=True) is_binary = models.BooleanField(default=False) + is_sensitive = models.BooleanField(default=False) def _str_(self): return "Reason" diff --git a/src/lib/Server/Reports/reports/templates/config_items/item.html b/src/lib/Server/Reports/reports/templates/config_items/item.html index 58aed1684..cc99ef503 100644 --- a/src/lib/Server/Reports/reports/templates/config_items/item.html +++ b/src/lib/Server/Reports/reports/templates/config_items/item.html @@ -74,15 +74,21 @@ div.entry_list h3 { {% endif %} - {% if item.reason.current_diff %} -
-
-

Incorrect file contents

+ {% if item.reason.current_diff or item.reason.is_sensitive %} +
+
+ {% if item.reason.is_sensitive %} +

File contents unavailable, as they might contain sensitive data.

+ {% else %} +

Incorrect file contents

+ {% endif %} +
+ {% if not item.reason.is_sensitive %} +
+ {{ item.reason.current_diff|syntaxhilight }} +
+ {% endif %}
-
- {{ item.reason.current_diff|syntaxhilight }} -
-
{% endif %} diff --git a/src/lib/Server/Reports/updatefix.py b/src/lib/Server/Reports/updatefix.py index 4d3c964f5..7cebaaca9 100644 --- a/src/lib/Server/Reports/updatefix.py +++ b/src/lib/Server/Reports/updatefix.py @@ -102,6 +102,7 @@ _fixes = [_merge_database_table_entries, _populate_interaction_entry_counts, _interactions_constraint_or_idx, 'alter table reports_reason add is_binary bool NOT NULL default False;', + 'alter table reports_reason add is_sensitive bool NOT NULL default False;', ] # this will calculate the last possible version of the database -- cgit v1.2.3-1-g7c22