diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-04-30 10:46:46 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-04-30 10:46:46 +0200 | 
| commit | 4ad1a1d20e52f7aa4b1ae2b7cc84c83c584d6725 (patch) | |
| tree | 6789585c98a334938219d0c9aae0c7f947393e65 | |
| parent | 0226eba60ac14809f357240636a6a7151ef1ab1d (diff) | |
Move invalid input errors into common sub-template
| -rw-r--r-- | lib/Travelynx/Controller/Account.pm | 9 | ||||
| -rw-r--r-- | templates/_invalid_input.html.ep | 88 | ||||
| -rw-r--r-- | templates/account.html.ep | 25 | ||||
| -rw-r--r-- | templates/change_password.html.ep | 32 | ||||
| -rw-r--r-- | templates/login.html.ep | 28 | ||||
| -rw-r--r-- | templates/recover_password.html.ep | 32 | ||||
| -rw-r--r-- | templates/register.html.ep | 60 | ||||
| -rw-r--r-- | templates/set_password.html.ep | 28 | 
8 files changed, 99 insertions, 203 deletions
| diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm index 5f06f2d..259fb9e 100644 --- a/lib/Travelynx/Controller/Account.pm +++ b/lib/Travelynx/Controller/Account.pm @@ -190,7 +190,7 @@ sub delete {  			)  		  )  		{ -			$self->render( 'account', invalid => 'password' ); +			$self->render( 'account', invalid => 'deletion password' );  			return;  		}  		$self->flag_user_deletion( $self->current_user->{id} ); @@ -293,7 +293,8 @@ sub request_password_reset {  		my $uid = $self->get_uid_by_name_and_mail( $name, $email );  		if ( not $uid ) { -			$self->render( 'recover_password', invalid => 'credentials' ); +			$self->render( 'recover_password', +				invalid => 'recovery credentials' );  			return;  		} @@ -360,7 +361,7 @@ sub request_password_reset {  			return;  		}  		if ( not $self->verify_password_token( $id, $token ) ) { -			$self->render( 'recover_password', invalid => 'token' ); +			$self->render( 'recover_password', invalid => 'recovery token' );  			return;  		}  		if ( $password ne $password2 ) { @@ -428,7 +429,7 @@ sub recover_password {  		$self->render('set_password');  	}  	else { -		$self->render( 'recover_password', invalid => 'token' ); +		$self->render( 'recover_password', invalid => 'recovery token' );  	}  } diff --git a/templates/_invalid_input.html.ep b/templates/_invalid_input.html.ep new file mode 100644 index 0000000..d79ad03 --- /dev/null +++ b/templates/_invalid_input.html.ep @@ -0,0 +1,88 @@ +<div class="row"> +	<div class="col s12"> +		<div class="card red darken-4"> +			<div class="card-content white-text"> +				% if ($invalid eq 'csrf') { +					<span class="card-title">Ungültiger CSRF-Token</span> +					<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen +					Fall von <a +					href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> +					handeln.</p> +				% } +				% elsif ($invalid eq 'credentials') { +					<span class="card-title">Ungültige Logindaten</span> +					<p>Falscher Account oder falsches Passwort.</p> +				% } +				% elsif ($invalid eq 'recovery credentials') { +					<span class="card-title">Ungültige Daten</span> +					<p>Falscher Account oder falsches Mail-Adresse.</p> +				% } +				% elsif ($invalid eq 'user_empty') { +					<span class="card-title">Leerer Nutzername</span> +					<p>Bitte gib einen Nutzernamen an.</p> +				% } +				% elsif ($invalid eq 'mail_empty') { +					<span class="card-title">Leere Mail-Adresse</span> +					<p>Bitte gib eine E-Mail-Adresse an.</p> +				% } +				% elsif ($invalid eq 'user_format') { +					<span class="card-title">Ungültiger Nutzername</span> +					<p>Für den Nutzernamen erlaubte Zeichen sind +					0-9, a-z, A-Z sowie Unterstrich (_) und Bindestrich (-).</p> +				% } +				% elsif ($invalid eq 'user_collision') { +					<span class="card-title">Name bereits vergeben</span> +					<p>Es gibt bereits einen Account unter diesem Namen.</p> +				% } +				% elsif ($invalid eq 'mail_blacklisted') { +					<span class="card-title">Mailadresse nicht nutzbar</span> +					<p>Mit der angegebenen E-Mail-Adresse können derzeit keine +						travelynx-Accounts registriert werden.</p> +				% } +				% elsif ($invalid eq 'sendmail') { +					<span class="card-title">Mailversand fehlgeschlagen</span> +					<p>Der Account wurde nicht angelegt, da die Bestätigungsmail +						nicht verschickt werden konnte. +						Überprüfe bitte, ob die Adresse gültig ist.</p> +				% } +				% elsif ($invalid eq 'token') { +					<span class="card-title">Ungültiger Token</span> +					<p>Die Verifikation deiner Mail-Adresse ist fehlgeschlagen oder du hast den Token schon einmal verwendet.</p> +				% } +				% elsif ($invalid eq 'confirmation') { +					<span class="card-title">Account nicht freigeschaltet</span> +					<p>Bitte besuche zuerst den per Mail verschickten Bestätigungslink.</p> +				% } +				% elsif ($invalid eq 'password') { +					<span class="card-title">Ungültiges Passwort</span> +					<p>Das aktuelle Passwort wurde nicht korrekt eingegeben.</p> +				% } +				% elsif ($invalid eq 'password_notequal') { +					<span class="card-title">Passwort ungültig</span> +					<p>Die angegebenen Passwörter sind nicht identisch.</p> +				% } +				% elsif ($invalid eq 'password_short') { +					<span class="card-title">Passwort zu kurz</span> +					<p>Das Passwort muss mindestens acht Zeichen lang sein.</p> +				% } +				% elsif ($invalid eq 'in progress') { +					<span class="card-title">Passwort-Reset wird durchgeführt</span> +					<p>Es wurde bereits ein Reset-Link verschickt.</p> +				% } +				% elsif ($invalid eq 'recovery token') { +					<span class="card-title">Ungültiger Token</span> +					<p>Der Reset-Token ist ungültig oder abgelaufen. Neuen beantragen?</p> +				% } +				% elsif ($invalid eq 'deletion password') { +					<span class="card-title">Ungültiges Passwort</span> +					<p>Aus Sicherheitsgründen kann der Account nur nach Passworteingabe +					gelöscht werden.</p> +				% } +				% else { +					<span class="card-title">Fehler</span> +					<p><%= $invalid %></p> +				% } +			</div> +		</div> +	</div> +</div> diff --git a/templates/account.html.ep b/templates/account.html.ep index 90c64fc..ca43340 100644 --- a/templates/account.html.ep +++ b/templates/account.html.ep @@ -1,28 +1,5 @@  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'password') { -						<span class="card-title">Ungültiges Passwort</span> -						<p>Aus Sicherheitsgründen kann der Account nur nach Passworteingabe -						gelöscht werden.</p> -					% } -					% else { -						<span class="card-title">Unbekannter Fehler</span> -						<p>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  <h1>Account</h1> diff --git a/templates/change_password.html.ep b/templates/change_password.html.ep index bae28d9..fa03e28 100644 --- a/templates/change_password.html.ep +++ b/templates/change_password.html.ep @@ -1,35 +1,5 @@  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'password_notequal') { -						<span class="card-title">Passwort ungültig</span> -						<p>Die angegebenen neuen Passwörter sind nicht identisch.</p> -					% } -					% elsif ($invalid eq 'password_short') { -						<span class="card-title">Passwort zu kurz</span> -						<p>Das neue Passwort muss mindestens acht Zeichen lang sein.</p> -					% } -					% elsif ($invalid eq 'password') { -						<span class="card-title">Ungültiges Passwort</span> -						<p>Das aktuelle Passwort wurde nicht korrekt eingegeben.</p> -					% } -					% else { -						<span class="card-title">Unbekannter Fehler</span> -						<p>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  <h1>Passwort ändern</h1> diff --git a/templates/login.html.ep b/templates/login.html.ep index 283aa60..08146c8 100644 --- a/templates/login.html.ep +++ b/templates/login.html.ep @@ -21,33 +21,7 @@  	</div>  % }  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'credentials') { -						<span class="card-title">Ungültige Logindaten</span> -						<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>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  % if (my $from = stash('from')) {  	<div class="row"> diff --git a/templates/recover_password.html.ep b/templates/recover_password.html.ep index 4ebc41a..a3332c3 100644 --- a/templates/recover_password.html.ep +++ b/templates/recover_password.html.ep @@ -1,36 +1,6 @@  <h1>Passwort zurücksetzen</h1>  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'credentials') { -						<span class="card-title">Ungültige Daten</span> -						<p>Falscher Account oder falsches Mail-Adresse.</p> -					% } -					% elsif ($invalid eq 'in progress') { -						<span class="card-title">Passwort-Reset wird durchgeführt</span> -						<p>Es wurde bereits ein Reset-Link verschickt.</p> -					% } -					% elsif ($invalid eq 'token') { -						<span class="card-title">Ungültiger Token</span> -						<p>Der Reset-Token ist ungültig oder abgelaufen. Neuen beantragen?</p> -					% } -					% else { -						<span class="card-title">Unbekannter Fehler</span> -						<p>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  % if (stash('success')) {  	<div class="row"> diff --git a/templates/register.html.ep b/templates/register.html.ep index 06ecce4..599f2b3 100644 --- a/templates/register.html.ep +++ b/templates/register.html.ep @@ -1,63 +1,5 @@  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'user_empty') { -						<span class="card-title">Leerer Nutzername</span> -						<p>Bitte gib einen Nutzernamen an.</p> -					% } -					% elsif ($invalid eq 'mail_empty') { -						<span class="card-title">Leere Mail-Adresse</span> -						<p>Bitte gib eine E-Mail-Adresse an.</p> -					% } -					% elsif ($invalid eq 'user_format') { -						<span class="card-title">Ungültiger Nutzername</span> -						<p>Für den Nutzernamen erlaubte Zeichen sind -						0-9, a-z, A-Z sowie Unterstrich (_) und Bindestrich (-).</p> -					% } -					% elsif ($invalid eq 'user_collision') { -						<span class="card-title">Name bereits vergeben</span> -						<p>Es gibt bereits einen Account unter diesem Namen.</p> -					% } -					% elsif ($invalid eq 'password_notequal') { -						<span class="card-title">Passwort ungültig</span> -						<p>Die angegebenen Passwörter sind nicht identisch.</p> -					% } -					% elsif ($invalid eq 'password_short') { -						<span class="card-title">Passwort zu kurz</span> -						<p>Das Passwort muss mindestens acht Zeichen lang sein.</p> -					% } -					% elsif ($invalid eq 'mail_blacklisted') { -						<span class="card-title">Mailadresse nicht nutzbar</span> -						<p>Mit der angegebenen E-Mail-Adresse können derzeit keine -							travelynx-Accounts registriert werden.</p> -					% } -					% elsif ($invalid eq 'sendmail') { -						<span class="card-title">Mailversand fehlgeschlagen</span> -						<p>Der Account wurde nicht angelegt, da die Bestätigungsmail -							nicht verschickt werden konnte. -							Überprüfe bitte, ob die Adresse gültig ist.</p> -					% } -					% elsif ($invalid eq 'token') { -						<span class="card-title">Ungültiger Token</span> -						<p>Die Verifikation deiner Mail-Adresse ist fehlgeschlagen oder du hast den Token schon einmal verwendet.</p> -					% } -					% else { -						<span class="card-title">Unbekannter Fehler</span> -						<p>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  %= form_for '/register' => (method => 'POST') => begin  	%= csrf_field diff --git a/templates/set_password.html.ep b/templates/set_password.html.ep index 571ee0b..49eea9d 100644 --- a/templates/set_password.html.ep +++ b/templates/set_password.html.ep @@ -1,31 +1,5 @@  % if (my $invalid = stash('invalid')) { -	<div class="row"> -		<div class="col s12"> -			<div class="card red darken-4"> -				<div class="card-content white-text"> -					% if ($invalid eq 'csrf') { -						<span class="card-title">Ungültiger CSRF-Token</span> -						<p>Sind Cookies aktiviert? Ansonsten könnte es sich um einen -						Fall von <a -						href="https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery">CSRF</a> -						handeln.</p> -					% } -					% elsif ($invalid eq 'password_notequal') { -						<span class="card-title">Passwort ungültig</span> -						<p>Die angegebenen neuen Passwörter sind nicht identisch.</p> -					% } -					% elsif ($invalid eq 'password_short') { -						<span class="card-title">Passwort zu kurz</span> -						<p>Das neue Passwort muss mindestens acht Zeichen lang sein.</p> -					% } -					% else { -						<span class="card-title">Unbekannter Fehler</span> -						<p>„<%= $invalid %>“</p> -					% } -				</div> -			</div> -		</div> -	</div> +	%= include '_invalid_input', invalid => $invalid  % }  <h1>Neues Passwort eintragen</h1> | 
