Review comments

This commit is contained in:
Tazio Ceri
2020-06-28 23:49:39 +02:00
parent f8fb64b5e4
commit 1ce6aa781e
3 changed files with 43 additions and 43 deletions
-11
View File
@@ -38,17 +38,6 @@
${password-info class="help-block"}
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-3" for="${id:external_auth}">
${tr:Lms.external_auth}
</label>
<div class="checkbox col-lg-9">
<span class="hack">
${external-auth}
${external-auth-info class="help-block"}
</span>
</div>
</div>
${<if-demo>}
<div class="form-group">
<div class="col-lg-offset-3 col-lg-3" for="${id:demo}">
+9
View File
@@ -0,0 +1,9 @@
account required pam_unix.so try_first_pass
account sufficient pam_localuser.so
auth required pam_unix.so try_first_pass
password required pam_deny.so
session required pam_unix.so try_first_pass
+34 -32
View File
@@ -111,6 +111,39 @@ class UserModel : public Wt::WFormModel
}
private:
Wt::WString validatePassword() const
{
Wt::WString error;
if (Wt::asNumber(value(ExternalAuthField)))
{
if (!valueText(PasswordField).empty())
{
error = Wt::WString::tr("Lms.password_must_be_empty_for_ext");
}
}
else if (!valueText(PasswordField).empty())
{
if (Wt::asNumber(value(DemoField)))
{
// Demo account: password must be the same as the login name
if (valueText(PasswordField) != getLoginName())
error = Wt::WString::tr("Lms.Admin.User.demo-password-invalid");
}
else
{
// Evaluate the strength of the password for non demo accounts
if (!ServiceProvider<::Auth::IPasswordService>::get()->evaluatePasswordStrength(getLoginName(), valueText(PasswordField).toUTF8()))
error = Wt::WString::tr("Lms.password-too-weak");
}
}
else
{
error = Wt::WString::tr("Lms.password-must-not-be-empty");
}
return error;
}
void loadData()
{
@@ -166,33 +199,7 @@ class UserModel : public Wt::WFormModel
}
else if (field == PasswordField)
{
if (Wt::asNumber(value(ExternalAuthField)))
{
if (!valueText(PasswordField).empty())
{
error = Wt::WString::tr("Lms.password_must_be_empty_for_ext");
}
}
else if (!valueText(PasswordField).empty())
{
if (Wt::asNumber(value(DemoField)))
{
// Demo account: password must be the same as the login name
if (valueText(PasswordField) != getLoginName())
error = Wt::WString::tr("Lms.Admin.User.demo-password-invalid");
}
else
{
// Evaluate the strength of the password for non demo accounts
if (!ServiceProvider<::Auth::IPasswordService>::get()->evaluatePasswordStrength(getLoginName(), valueText(PasswordField).toUTF8()))
error = Wt::WString::tr("Lms.password-too-weak");
}
}
else
{
error = Wt::WString::tr("Lms.password-must-not-be-empty");
}
error = validatePassword();
}
else if (field == DemoField)
{
@@ -201,11 +208,6 @@ class UserModel : public Wt::WFormModel
if (Wt::asNumber(value(DemoField)) && Database::User::getDemo(LmsApp->getDbSession()))
error = Wt::WString::tr("Lms.Admin.User.demo-account-already-exists");
}
// else if (field == ExternalAuthField)
// {
// if (!valueText(PasswordField).empty())
// error = Wt::WString::tr("Lms.password_must_be_empty_for_ext");
// }
if (error.empty())
return Wt::WFormModel::validateField(field);