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>";
|
"</li>";
|
||||||
|
|
||||||
if (rules.size() == 9) {
|
if (rules.size() == 9) {
|
||||||
if (rules.at(7).size() > 0)
|
if (rules.at(7).size() > 0) {
|
||||||
out += "<li>" + tr("can not contain any of the following words: %1").arg(rules.at(7).toHtmlEscaped()) +
|
QString words = rules.at(7).toHtmlEscaped();
|
||||||
"</li>";
|
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)
|
if (rules.at(8).size() > 0)
|
||||||
out += "<li>" +
|
out += "<li>" +
|
||||||
|
|
|
@ -127,6 +127,16 @@ allowpunctuationprefix=false
|
||||||
; "admin,user,name"
|
; "admin,user,name"
|
||||||
disallowedwords="admin"
|
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
|
; 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
|
; 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+`.
|
; 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);
|
QStringList disallowedWords = disallowedWordsStr.split(",", QString::SkipEmptyParts);
|
||||||
#endif
|
#endif
|
||||||
disallowedWords.removeDuplicates();
|
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")
|
error = QString("%1|%2|%3|%4|%5|%6|%7|%8|%9")
|
||||||
.arg(minNameLength)
|
.arg(minNameLength)
|
||||||
|
|
Loading…
Reference in a new issue