From 59786d7bd74996423c58d98c1adae581c84741f1 Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Fri, 29 Sep 2017 14:10:54 -0400 Subject: [PATCH] Mask passwords in URL column in Entry View --- src/core/Entry.cpp | 9 ++++++++- src/core/Entry.h | 1 + src/gui/entry/EntryModel.cpp | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp index 267c9ad2b..7388b429e 100644 --- a/src/core/Entry.cpp +++ b/src/core/Entry.cpp @@ -727,6 +727,13 @@ const Database* Entry::database() const } } +QString Entry::maskPasswordPlaceholders(const QString &str) const +{ + QString result = str; + result.replace(QRegExp("(\\{PASSWORD\\})", Qt::CaseInsensitive, QRegExp::RegExp2), "******"); + return result; +} + QString Entry::resolveMultiplePlaceholders(const QString& str) const { QString result = str; @@ -818,4 +825,4 @@ QString Entry::resolveUrl(const QString& url) const Q_UNUSED(url); #endif return QString(""); -} \ No newline at end of file +} diff --git a/src/core/Entry.h b/src/core/Entry.h index 889a9334e..40abb4e3e 100644 --- a/src/core/Entry.h +++ b/src/core/Entry.h @@ -142,6 +142,7 @@ public: */ Entry* clone(CloneFlags flags) const; void copyDataFrom(const Entry* other); + QString maskPasswordPlaceholders(const QString& str) const; QString resolveMultiplePlaceholders(const QString& str) const; QString resolvePlaceholder(const QString& str) const; QString resolveUrl(const QString& url) const; diff --git a/src/gui/entry/EntryModel.cpp b/src/gui/entry/EntryModel.cpp index 6bc10376f..2f79f02d9 100644 --- a/src/gui/entry/EntryModel.cpp +++ b/src/gui/entry/EntryModel.cpp @@ -151,7 +151,8 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const } return result; case Url: - result = entry->resolveMultiplePlaceholders(entry->url()); + result = entry->maskPasswordPlaceholders(entry->url()); + result = entry->resolveMultiplePlaceholders(result); if (attr->isReference(EntryAttributes::URLKey)) { result.prepend(tr("Ref: ","Reference abbreviation")); }