Servatrice: Split requireemail into requireemail and requireemailactivation

This commit is contained in:
Fabio Bas 2016-03-17 16:22:42 +01:00
parent 0b8f52e084
commit 68e2fb912f
3 changed files with 15 additions and 7 deletions

View file

@ -105,11 +105,14 @@ allowpunctuationprefix=false
; Enable this feature? Default false. ; Enable this feature? Default false.
;enabled=false ;enabled=false
; Require users to provide an email address in order to register. Newly registered users will receive an ; Require users to provide an email address in order to register. Default true.
; activation token by email, and will be required to input back this token on cockatrice at the first login
; to get their account activated. Default true.
;requireemail=true ;requireemail=true
; Require email activation. Newly registered users will receive an activation token by email,
; and will be required to input back this token on cockatrice at the first login to get their
; account activated. Default true.
;requireemailactivation=true
[smtp] [smtp]
; Connectin type: currently supported method are "tcp" and "ssl"; tls is autodetected if available ; Connectin type: currently supported method are "tcp" and "ssl"; tls is autodetected if available

View file

@ -175,11 +175,15 @@ bool Servatrice::initServer()
bool registrationEnabled = settingsCache->value("registration/enabled", false).toBool(); bool registrationEnabled = settingsCache->value("registration/enabled", false).toBool();
bool requireEmailForRegistration = settingsCache->value("registration/requireemail", true).toBool(); bool requireEmailForRegistration = settingsCache->value("registration/requireemail", true).toBool();
bool requireEmailActivation = settingsCache->value("registration/requireemailactivation", true).toBool();
qDebug() << "Accept registered users only: " << regServerOnly; qDebug() << "Accept registered users only: " << regServerOnly;
qDebug() << "Registration enabled: " << registrationEnabled; qDebug() << "Registration enabled: " << registrationEnabled;
if (registrationEnabled) if (registrationEnabled)
{
qDebug() << "Require email address to register: " << requireEmailForRegistration; qDebug() << "Require email address to register: " << requireEmailForRegistration;
qDebug() << "Require email activation via token: " << requireEmailActivation;
}
FeatureSet features; FeatureSet features;
features.initalizeFeatureList(serverRequiredFeatureList); features.initalizeFeatureList(serverRequiredFeatureList);
@ -498,8 +502,8 @@ void Servatrice::statusUpdate()
// send activation emails // send activation emails
bool registrationEnabled = settingsCache->value("registration/enabled", false).toBool(); bool registrationEnabled = settingsCache->value("registration/enabled", false).toBool();
bool requireEmailForRegistration = settingsCache->value("registration/requireemail", true).toBool(); bool requireEmailActivation = settingsCache->value("registration/requireemailactivation", true).toBool();
if (registrationEnabled && requireEmailForRegistration) if (registrationEnabled && requireEmailActivation)
{ {
QSqlQuery *query = servatriceDatabaseInterface->prepareQuery("select a.name, b.email, b.token from {prefix}_activation_emails a left join {prefix}_users b on a.name = b.name"); QSqlQuery *query = servatriceDatabaseInterface->prepareQuery("select a.name, b.email, b.token from {prefix}_activation_emails a left join {prefix}_users b on a.name = b.name");
if (!servatriceDatabaseInterface->execSqlQuery(query)) if (!servatriceDatabaseInterface->execSqlQuery(query))

View file

@ -1034,12 +1034,13 @@ Response::ResponseCode ServerSocketInterface::cmdRegisterAccount(const Command_R
return Response::RespPasswordTooShort; return Response::RespPasswordTooShort;
QString token; QString token;
bool regSucceeded = sqlInterface->registerUser(userName, realName, gender, password, emailAddress, country, token, !requireEmailForRegistration); bool requireEmailActivation = settingsCache->value("registration/requireemailactivation", true).toBool();
bool regSucceeded = sqlInterface->registerUser(userName, realName, gender, password, emailAddress, country, token, !requireEmailActivation);
if(regSucceeded) if(regSucceeded)
{ {
qDebug() << "Accepted register command for user: " << userName; qDebug() << "Accepted register command for user: " << userName;
if(requireEmailForRegistration) if(requireEmailActivation)
{ {
QSqlQuery *query = sqlInterface->prepareQuery("insert into {prefix}_activation_emails (name) values(:name)"); QSqlQuery *query = sqlInterface->prepareQuery("insert into {prefix}_activation_emails (name) values(:name)");
query->bindValue(":name", userName); query->bindValue(":name", userName);