Skip to content
Permalink
Browse files

Improve login page

Try to make the login page easier to use: some users are confused by the old
version.
  • Loading branch information...
Andreas Gruenbacher
Andreas Gruenbacher committed Jun 25, 2019
1 parent d250ce7 commit 5b2387e668ffc23fd5e441e59f05103fae26856e
Showing with 65 additions and 40 deletions.
  1. +28 −29 backend/index.js
  2. +18 −3 backend/views/change-password.marko
  3. +1 −1 backend/views/confirmation-sent.marko
  4. +18 −7 backend/views/login.marko
@@ -592,17 +592,16 @@ async function validate_user(connection, user) {

if (rows.length != 1) {
console.error('User ' + JSON.stringify(user.email) + ' does not exist');
throw 'E-Mail-Adresse ' + JSON.stringify(user.email) + ' ist nicht registriert. ' +
'Bitte fahren Sie mit <em>Neu registrieren</em> fort.';
throw 'Die E-Mail-Adresse ' + JSON.stringify(user.email) + ' ist nicht registriert.';
}
if (rows[0].password == null) {
console.error('No password set for user ' + JSON.stringify(user.email));
throw 'Für die E-Mail-Adresse ' + JSON.stringify(user.email) +
' ist noch kein Kennwort gesetzt.<br>' +
'Bitte fahren Sie mit der an diese Adresse geschickten ' +
'Bestätigungs-E-Mail fort, oder schicken Sie über ' +
'<em>Kennwort zurücksetzen</em> erneut eine ' +
'Bestätigungs-E-Mail an diese Adresse.';
'Bestätigungs-E-Mail fort, oder setzen Sie das Kennwort ' +
'erneut zurück, um eine weitere Bestätigungs-E-Mail zu ' +
'erhalten.';
}
var password_hash = rows[0].password;
delete rows[0].password;
@@ -4273,12 +4272,9 @@ async function signup_or_reset(req, res, mode) {
html_escape(email) +
'</em>';
if (mode == 'signup') {
error += ' ist bereits registriert.<br>Wenn das Ihre E-Mail-Adresse' +
' ist und Sie das Kennwort vergessen haben, können Sie' +
' hier das <em>Kennwort zurücksetzen</em>.';
error += ' ist bereits registriert.';
} else {
error += ' ist nicht registriert. Bitte setzen Sie mit <em>Neu ' +
' registrieren</em> fort.';
error += ' ist nicht registriert.';
}

params.mode = mode;
@@ -4293,7 +4289,7 @@ async function show_change_password(req, res, next) {
var email = req.query.email;
var params = {email: email};
var result = await req.conn.queryAsync(`
SELECT secret
SELECT password, secret
FROM users
WHERE email = ?`, [email]);
if (result.length == 0) {
@@ -4305,24 +4301,27 @@ async function show_change_password(req, res, next) {
if (req.query)
params.query = query_string(req.query);
res.marko(views['login'], params);
} else if (result.length == 1 && result[0].secret != req.query.secret) {
params.mode = 'login';
params.error =
'Der Bestätigungscode für die E-Mail-Adresse <em>' +
html_escape(email) +
'</em> ist nicht mehr gültig. Bitte versuchen Sie es erneut.';
if (req.query)
params.query = query_string(req.query);
res.marko(views['login'], params);
} else {
var query = {
email: email,
secret: req.query.secret
};
if (req.query.redirect)
query.redirect = req.query.redirect;
params.query = query_string(query);
res.marko(views['change-password'], params);
} else if (result.length == 1) {
params.reset_password = (result[0].password != null);
if (result[0].secret != req.query.secret) {
params.mode = 'login';
params.error =
'Der Bestätigungscode für die E-Mail-Adresse <em>' +
html_escape(email) +
'</em> ist nicht mehr gültig. Bitte versuchen Sie es erneut.';
if (req.query)
params.query = query_string(req.query);
res.marko(views['login'], params);
} else {
var query = {
email: email,
secret: req.query.secret
};
if (req.query.redirect)
query.redirect = req.query.redirect;
params.query = query_string(query);
res.marko(views['change-password'], params);
}
}
}

@@ -11,7 +11,12 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="../app.css" />
<title>Neues Kennwort</title>
<if(data.reset_password)>
<title>Kennwort zurücksetzen</title>
</if>
<else>
<title>Neues Kennwort vergeben</title>
</else>
<style>
table th {
text-align:right;
@@ -20,7 +25,12 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
</head>
<body>
<span>
<h1>Neues Kennwort</h1>
<if(data.reset_password)>
<h1>Kennwort zurücksetzen</h1>
</if>
<else>
<h1>Neues Kennwort vergeben</h1>
</else>
</span>
<if(data.error)>
<p style="color:red">${data.error}</p>
@@ -45,7 +55,12 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
<tr>
<th></th>
<td>
<button type="submit">Kennwort ändern</button>
<if(data.reset_password)>
<button type="submit">Kennwort zurücksetzen</button>
</if>
<else>
<button type="submit">Neues Kennwort vergeben</button>
</else>
</td>
</tr>
</table>
@@ -16,7 +16,7 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
<body>
<h1>Bestätigung gesendet</h1>
<p>Um die Adresse <em>${data.email}</em> zu überprüfen, haben wir Ihnen eine
automatische E-Mail gesendet.</p>
E-Mail gesendet.</p>

<p>Bitte überprüfen Sie den Empfang, und setzen Sie die Registrierung über
diese E-Mail fort.</p>
@@ -11,7 +11,7 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="../app.css" />
<title>TrialInfo - Anmeldung</title>
<title>TrialInfo Anmeldung</title>
<script>
function mode(mode, event) {
if (event)
@@ -63,13 +63,18 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
</div>
<div id="js" style="display:none">
<span class="login">
<h1>TrialInfo – Anmeldung</h1>
<h1>Anmeldung</h1>
<p>Anmeldung für registrierte Benutzer.</p>
</span>
<span class="signup">
<h1>TrialInfo – Neu registrieren</h1>
<h1>Neu registrieren</h1>
<p>Bitte geben Sie ihre E-Mail-Adresse ein.<br>
Wir senden Ihnen daraufhin eine E-Mail zur Bestätigung Ihrer Anmeldung und zur Vergabe eines Kennworts.</p>
</span>
<span class="reset">
<h1>TrialInfo – Kennwort zurücksetzen</h1>
<h1>Kennwort zurücksetzen</h1>
<p>Bitte geben Sie ihre E-Mail-Adresse ein.<br>
Wir senden Ihnen daraufhin eine E-Mail zur Bestätigung und Vergabe eines neuen Kennworts.</p>
</span>
<if(data.error)>
<p style="color:red">$!{data.error}</p>
@@ -98,9 +103,15 @@ Lizenz: AGPLv3, http://www.gnu.org/licenses/agpl-3.0.html
<tr>
<th></th>
<td marko-preserve-whitespace>
<a class="signup reset" href="#" onclick="mode('login',event)">Anmelden</a>
<a class="login reset" href="#" onclick="mode('signup',event)">Neu registrieren</a>
<a class="login signup" href="#" onclick="mode('reset',event)">Kennwort zurücksetzen</a>
<span class="signup reset">
<a href="#" onclick="mode('login',event)" style="display:block">Sie sind bereits registriert?</a>
</span>
<span class="login reset">
<a href="#" onclick="mode('signup',event)" style="display:block">Sie sind noch nicht registriert?</a>
</span>
<span>
<a class="login signup" href="#" onclick="mode('reset',event)" style="display:block">Sie haben Ihr Kennwort vergessen?</a>
</span>
</td>
</tr>
</table>

0 comments on commit 5b2387e

Please sign in to comment.
You can’t perform that action at this time.