Merge pull request #1159 from poixen/server_usernames
Moved username formatting to INI file
This commit is contained in:
commit
816c01e6dd
2 changed files with 44 additions and 1 deletions
|
@ -54,6 +54,29 @@ password=123456
|
||||||
; Accept only registered users? default is 0 (accept unregistered users)
|
; Accept only registered users? default is 0 (accept unregistered users)
|
||||||
regonly=0
|
regonly=0
|
||||||
|
|
||||||
|
[users]
|
||||||
|
|
||||||
|
; The minimum length a username can be
|
||||||
|
minnamelength=6
|
||||||
|
|
||||||
|
; The maximum length a username can be
|
||||||
|
maxnamelength=12
|
||||||
|
|
||||||
|
; If a username should be allowed to contain lowercase chars [a-z]
|
||||||
|
allowlowercase=true
|
||||||
|
|
||||||
|
; If a username should be allowed to conatain uppercase chars [A-Z]
|
||||||
|
allowuppercase=true
|
||||||
|
|
||||||
|
; If a username should be allowed to contain numbers [0-9]
|
||||||
|
allownumerics=true
|
||||||
|
|
||||||
|
; Define punctuation allowed in usernames
|
||||||
|
allowedpunctuation=_.-
|
||||||
|
|
||||||
|
; If a username can begin with punctuation defined in allowedpunctuation
|
||||||
|
allowpunctuationprefix=false
|
||||||
|
|
||||||
[registration]
|
[registration]
|
||||||
|
|
||||||
; Servatrice can process registration requests to add new users on the fly.
|
; Servatrice can process registration requests to add new users on the fly.
|
||||||
|
|
|
@ -120,7 +120,27 @@ bool Servatrice_DatabaseInterface::execSqlQuery(QSqlQuery *query)
|
||||||
|
|
||||||
bool Servatrice_DatabaseInterface::usernameIsValid(const QString &user)
|
bool Servatrice_DatabaseInterface::usernameIsValid(const QString &user)
|
||||||
{
|
{
|
||||||
static QRegExp re = QRegExp("[a-zA-Z0-9_\\.-]+");
|
int maxNameLength = settingsCache->value("users/maxnamelength", 12).toInt();
|
||||||
|
int minNameLength = settingsCache->value("users/minnamelength", 6).toInt();
|
||||||
|
if (user.length() < minNameLength || user.length() > maxNameLength)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool allowPunctuationPrefix = settingsCache->value("users/allowpunctuationprefix", false).toBool();
|
||||||
|
QString allowedPunctuation = settingsCache->value("users/allowedpunctuation", "_").toString();
|
||||||
|
if (!allowPunctuationPrefix && allowedPunctuation.contains(user.at(0)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
QString regEx("[");
|
||||||
|
if (settingsCache->value("users/allowlowercase", true).toBool())
|
||||||
|
regEx.append("a-z");
|
||||||
|
if (settingsCache->value("users/allowuppercase", true).toBool())
|
||||||
|
regEx.append("A-Z");
|
||||||
|
if(settingsCache->value("users/allownumerics", true).toBool())
|
||||||
|
regEx.append("0-9");
|
||||||
|
regEx.append(QRegExp::escape(allowedPunctuation));
|
||||||
|
regEx.append("]+");
|
||||||
|
|
||||||
|
static QRegExp re = QRegExp(regEx);
|
||||||
return re.exactMatch(user);
|
return re.exactMatch(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue