From b5133ce7562a0a780469b5782ea947b7d533ece2 Mon Sep 17 00:00:00 2001 From: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> Date: Mon, 6 Apr 2015 18:27:18 -0400 Subject: [PATCH] securityeval: Filter out negative checks Refs #69834 --- src/securityvalidationmodel.cpp | 22 ++++++++++++++++------ src/securityvalidationmodel.h | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/securityvalidationmodel.cpp b/src/securityvalidationmodel.cpp index 23cc52af..06e624e6 100644 --- a/src/securityvalidationmodel.cpp +++ b/src/securityvalidationmodel.cpp @@ -339,6 +339,14 @@ QVariant AccountChecksModel::data( const QModelIndex& index, int role ) const const SecurityValidationModel::AccountSecurityFlaw f = static_cast<SecurityValidationModel::AccountSecurityFlaw>(index.row()); + switch(role) { + case (int)SecurityValidationModel::Role::Severity: + return QVariant::fromValue( + m_lCachedResults[f] == Certificate::CheckValues::UNSUPPORTED ? + SecurityValidationModel::Severity::UNSUPPORTED : SecurityValidationModelPrivate::flawSeverity[f] + ); + } + switch (index.column()) { case 0: switch(role) { @@ -346,16 +354,12 @@ QVariant AccountChecksModel::data( const QModelIndex& index, int role ) const return SecurityValidationModelPrivate::messages[index.row()]; case Qt::DecorationRole: return PixmapManipulationDelegate::instance()->securityIssueIcon(index); - case (int)SecurityValidationModel::Role::Severity: - return QVariant::fromValue(SecurityValidationModelPrivate::flawSeverity[f]); }; break; case 1: switch(role) { case Qt::DisplayRole: return tr("Configuration"); - case (int)SecurityValidationModel::Role::Severity: - return QVariant::fromValue(SecurityValidationModelPrivate::flawSeverity[f]); }; break; case 2: @@ -364,8 +368,6 @@ QVariant AccountChecksModel::data( const QModelIndex& index, int role ) const if (m_lCachedResults[f] != Certificate::CheckValues::UNSUPPORTED) return m_lCachedResults[f] == Certificate::CheckValues::PASSED ? true : false; break; - case (int)SecurityValidationModel::Role::Severity: - return QVariant::fromValue(SecurityValidationModelPrivate::flawSeverity[f]); }; break; }; @@ -539,6 +541,14 @@ SecurityValidationModel::~SecurityValidationModel() } +bool SecurityValidationModel::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const +{ + const QModelIndex& idx = sourceModel()->index(source_row,0,source_parent); + const QModelIndex& idx2 = sourceModel()->index(source_row,2,source_parent); + const Severity s = qvariant_cast<Severity>(idx.data((int)SecurityValidationModel::Role::Severity)); + return s != Severity::UNSUPPORTED && idx2.data(Qt::DisplayRole).toBool() == false; +} + QHash<int,QByteArray> SecurityValidationModel::roleNames() const { static QHash<int, QByteArray> roles = QAbstractItemModel::roleNames(); diff --git a/src/securityvalidationmodel.h b/src/securityvalidationmodel.h index 6950ae96..6ba22752 100644 --- a/src/securityvalidationmodel.h +++ b/src/securityvalidationmodel.h @@ -112,6 +112,7 @@ public: //Model functions virtual QHash<int,QByteArray> roleNames() const override; + virtual bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override; //Getter QList<SecurityFlaw*> currentFlaws(); -- GitLab