diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp index 267c9ad2..7388b429 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 889a9334..40abb4e3 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 6bc10376..2f79f02d 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")); }