From 0f51f406618eba4f04799fc0a4e6ad7660fe5e27 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <derf@finalrewind.org>
Date: Sat, 9 Mar 2019 08:40:46 +0100
Subject: [PATCH] show separate errors for 'invalid credentials' and 'not
 confirmed yet'

---
 index.pl                | 8 +++++++-
 templates/login.html.ep | 8 ++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/index.pl b/index.pl
index dfc3358b..d0e29c62 100755
--- a/index.pl
+++ b/index.pl
@@ -923,7 +923,13 @@ post '/login' => sub {
 			$self->redirect_to('/');
 		}
 		else {
-			$self->render( 'login', invalid => 'credentials' );
+			my $data = $self->get_user_password($user);
+			if ( $data and $data->{status} == 0 ) {
+				$self->render( 'login', invalid => 'confirmation' );
+			}
+			else {
+				$self->render( 'login', invalid => 'credentials' );
+			}
 		}
 	}
 };
diff --git a/templates/login.html.ep b/templates/login.html.ep
index cf4364f6..fc8bbb80 100644
--- a/templates/login.html.ep
+++ b/templates/login.html.ep
@@ -34,11 +34,15 @@
 					% }
 					% elsif ($invalid eq 'credentials') {
 						<span class="card-title">Ungültige Logindaten</span>
-						<p>Falscher (oder noch nicht freigeschalteter) Account oder falsches Passwort.</p>
+						<p>Falscher Account oder falsches Passwort.</p>
+					% }
+					% elsif ($invalid eq 'confirmation') {
+						<span class="card-title">Account nicht freigeschaltet</span>
+						<p>Bitte besuche zuerst den per Mail verschickten Bestätigungslink.</p>
 					% }
 					% else {
 						<span class="card-title">Unbekannter Fehler</span>
-						<p>Das sollte nicht passierenâ„¢</p>
+						<p>„<%= $invalid %>“</p>
 					% }
 				</div>
 			</div>
-- 
GitLab