add a way to replace the user facing list of disallowed words (#4807)
This commit is contained in:
parent
5b694a55d2
commit
afb7c35cfd
3 changed files with 36 additions and 4 deletions
|
@ -476,9 +476,22 @@ QString MainWindow::extractInvalidUsernameMessage(QString &in)
|
|||
"</li>";
|
||||
|
||||
if (rules.size() == 9) {
|
||||
if (rules.at(7).size() > 0)
|
||||
out += "<li>" + tr("can not contain any of the following words: %1").arg(rules.at(7).toHtmlEscaped()) +
|
||||
"</li>";
|
||||
if (rules.at(7).size() > 0) {
|
||||
QString words = rules.at(7).toHtmlEscaped();
|
||||
if (words.startsWith("\n")) {
|
||||
out += tr("no unacceptable language as specified by these server rules:",
|
||||
"note that the following lines will not be translated");
|
||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
|
||||
for (QString &line : words.split("\n", Qt::SkipEmptyParts)) {
|
||||
#else
|
||||
for (QString &line : words.split("\n", QString::SkipEmptyParts)) {
|
||||
#endif
|
||||
out += "<li>" + line + "</li>";
|
||||
}
|
||||
} else {
|
||||
out += "<li>" + tr("can not contain any of the following words: %1").arg(words) + "</li>";
|
||||
}
|
||||
}
|
||||
|
||||
if (rules.at(8).size() > 0)
|
||||
out += "<li>" +
|
||||
|
|
|
@ -127,6 +127,16 @@ allowpunctuationprefix=false
|
|||
; "admin,user,name"
|
||||
disallowedwords="admin"
|
||||
|
||||
; Overwrite the words shown to the user when they enter a wrong username,
|
||||
; use \n to start a new line. Neither the real wordlist nor the disallowed
|
||||
; expressions will be sent to the user if this is set.
|
||||
; In the old versions of the client this list will be prefaced with
|
||||
; "can not contain any of the following words:"
|
||||
; example:
|
||||
;displaydisallowedwords="no attempts at impersonating staff\nno unparliamentary language\nno references to controversial figures\nstaff reserves the right to remove accounts deemed inappropriate"
|
||||
; Setting it to nothing will simply hide the list:
|
||||
;displaydisallowedwords=
|
||||
|
||||
; Disallow usernames matching these regular expressions. This list is comma
|
||||
; separated, e.g. "\\w+\\d+,\\d{2}user", hence you cannot use commas in your
|
||||
; expressions. Backslashes must be escaped, so `\w+\d+` becomes `\\w+\\d+`.
|
||||
|
|
|
@ -153,7 +153,16 @@ bool Servatrice_DatabaseInterface::usernameIsValid(const QString &user, QString
|
|||
QStringList disallowedWords = disallowedWordsStr.split(",", QString::SkipEmptyParts);
|
||||
#endif
|
||||
disallowedWords.removeDuplicates();
|
||||
QString disallowedRegExpStr = settingsCache->value("users/disallowedregexp", "").toString();
|
||||
QVariant displayDisallowedWords = settingsCache->value("users/displaydisallowedwords");
|
||||
QString disallowedRegExpStr;
|
||||
if (displayDisallowedWords.isValid()) {
|
||||
disallowedWordsStr = displayDisallowedWords.toString().trimmed();
|
||||
if (!disallowedWordsStr.isEmpty()) {
|
||||
disallowedWordsStr.prepend("\n");
|
||||
}
|
||||
} else {
|
||||
disallowedRegExpStr = settingsCache->value("users/disallowedregexp", "").toString();
|
||||
}
|
||||
|
||||
error = QString("%1|%2|%3|%4|%5|%6|%7|%8|%9")
|
||||
.arg(minNameLength)
|
||||
|
|
Loading…
Reference in a new issue