finish login i18n + controller

This commit is contained in:
wvengen 2013-02-05 12:54:55 +01:00
parent 419f5ef0ad
commit b12a906a74
6 changed files with 58 additions and 34 deletions

View file

@ -18,7 +18,7 @@ class LoginController < ApplicationController
logger.debug("Sent password reset email to #{user.email}.") logger.debug("Sent password reset email to #{user.email}.")
end end
end end
redirect_to login_url, :notice => "Wenn Deine E-Mail hier registiert ist bekommst Du jetzt eine Nachricht mit einem Passwort-Zurücksetzen-Link." redirect_to login_url, :notice => I18n.t('login.reset_password.notice')
end end
# Set a new password with a token from the password reminder email. # Set a new password with a token from the password reminder email.
@ -34,7 +34,7 @@ class LoginController < ApplicationController
@user.reset_password_token = nil @user.reset_password_token = nil
@user.reset_password_expires = nil @user.reset_password_expires = nil
@user.save @user.save
redirect_to login_url, :notice => "Dein Passwort wurde aktualisiert. Du kannst Dich jetzt anmelden." redirect_to login_url, :notice => I18n.t('login.update_password.notice')
else else
render :new_password render :new_password
end end
@ -44,10 +44,10 @@ class LoginController < ApplicationController
def accept_invitation def accept_invitation
@invite = Invite.find_by_token(params[:token]) @invite = Invite.find_by_token(params[:token])
if (@invite.nil? || @invite.expires_at < Time.now) if (@invite.nil? || @invite.expires_at < Time.now)
flash[:error] = "Deine Einladung ist nicht (mehr) gültig." flash[:error] = I18n.t('login.errors.invite_invalid')
render :action => 'login' render :action => 'login'
elsif @invite.group.nil? elsif @invite.group.nil?
flash[:error] = "Die Gruppe, in die Du eingeladen wurdest, existiert leider nicht mehr." flash[:error] = I18n.t('login.errors.group_invalid')
render :action => 'login' render :action => 'login'
elsif (request.post?) elsif (request.post?)
User.transaction do User.transaction do
@ -56,14 +56,14 @@ class LoginController < ApplicationController
if @user.save if @user.save
Membership.new(:user => @user, :group => @invite.group).save! Membership.new(:user => @user, :group => @invite.group).save!
@invite.destroy @invite.destroy
redirect_to login_url, notice: "Herzlichen Glückwunsch, Dein Account wurde erstellt. Du kannst Dich nun einloggen." redirect_to login_url, notice: I18n.t('login.accept_invitation.notice')
end end
end end
else else
@user = User.new(:email => @invite.email) @user = User.new(:email => @invite.email)
end end
rescue rescue
flash[:error] = "Ein Fehler ist aufgetreten. Bitte erneut versuchen." flash[:error] = I18n.t('errors.general_again')
end end
protected protected
@ -71,7 +71,7 @@ class LoginController < ApplicationController
def validate_token def validate_token
@user = User.find_by_id_and_reset_password_token(params[:id], params[:token]) @user = User.find_by_id_and_reset_password_token(params[:id], params[:token])
if (@user.nil? || @user.reset_password_expires < Time.now) if (@user.nil? || @user.reset_password_expires < Time.now)
flash.now.error = "Ungültiger oder abgelaufener Token. Bitte versuch es erneut." flash[:error] = I18n.t('login.errors.token_invalid')
render :action => 'forgot_password' render :action => 'forgot_password'
end end
end end

View file

@ -2,22 +2,10 @@
:javascript :javascript
$('user_nick').focus(); $('user_nick').focus();
- title "Einladung in die #{FoodsoftConfig[:name]}" - title t('.title', name: FoodsoftConfig[:name])
%p = t('.body', group: h(@invite.group.name), foodcoop: h(FoodsoftConfig[:name])).html_safe
Du bist eingeladen worden als Mitglied der Gruppe
%b= @invite.group.name
in der Foodcoop
= FoodsoftConfig[:name]
mitzumachen.
%p
Wenn Du mitmachen möchtest, dann fülle bitte dieses Formular aus.
%p
Deine Daten werden selbstverständlich nicht an Dritte, aus was auch immer für
Gründen, weitergeben. Du kannst auch entscheiden, wieviel deiner persönlichen
Daten für alle einsehbar sein sollen. 'Alle' bedeutet hier alle Foodcoop-Mitglieder.
Die Administratoren haben aber jederzeit Zugriff auf deine Daten.
= simple_form_for @user, url: accept_invitation_path do |form| = simple_form_for @user, url: accept_invitation_path do |form|
= render partial: 'shared/user_form_fields', locals: {f: form} = render partial: 'shared/user_form_fields', locals: {f: form}
.form-actions .form-actions
= submit_tag "Foodsoft Account erstellen", class: 'btn' = submit_tag t('.submit'), class: 'btn'

View file

@ -1,12 +1,7 @@
- title "Passwort vergessen?" - title t('.title')
%p = t('.body').html_safe
Kein Problem, Du kannst dir einfach ein neues Passwort zulegen.
%p
Dazu musst hier die E-Mail-Adresse eingeben, mit der Du in der FoodSoft angemeldet bist.
Du erhälst dann eine E-Mail mit weiteren Instruktionen.
= simple_form_for User.new, url: {action: 'reset_password'} do |form| = simple_form_for User.new, url: {action: 'reset_password'} do |form|
= form.input :email = form.input :email
.form-actions .form-actions
= form.submit "Neues Passwort anfordern", class: 'btn' = form.submit t('.submit'), class: 'btn'
= link_to "oder abbrechen", :back = link_to t('.cancel'), :back

View file

@ -1,7 +1,7 @@
- title "Neues Passwort" - title t('.title')
%p=h "Bitte neues Passwort für #{@user.nick} eingeben." = t('.body', user: h(@user.nick)).html_safe
= simple_form_for @user, :url => {:action => 'update_password', :id => @user.id, :token => @user.reset_password_token} do |form| = simple_form_for @user, :url => {:action => 'update_password', :id => @user.id, :token => @user.reset_password_token} do |form|
= form.input :password = form.input :password
= form.input :password_confirmation = form.input :password_confirmation
.form-actions .form-actions
= form.submit 'Neues Passwort speichern', class: 'btn' = form.submit t('.submit'), class: 'btn'

View file

@ -120,6 +120,7 @@ de:
year: Jahr year: Jahr
errors: &errors errors: &errors
general: 'Ein Problem ist aufgetreten.' general: 'Ein Problem ist aufgetreten.'
general_again: 'Ein Fehler ist aufgetreten. Bitte erneut versuchen.'
format: ! '%{attribute} %{message}' format: ! '%{attribute} %{message}'
messages: messages:
accepted: muss akzeptiert werden accepted: muss akzeptiert werden

View file

@ -0,0 +1,40 @@
de:
login:
accept_invitation:
title: 'Einlading in die %{name}'
body:
<p>Du bist eingeladen worden als Mitglied der Gruppe <b>%{group}</b>
in der Foodcoop %{foodcoop} mitzumachen.</p>
<p>Wenn Du mitmachen möchtest, dann fülle bitte dieses Formular aus.</p>
<p>Deine Daten werden selbstverständlich nicht an Dritte, aus was auch immer für
Gründen, weitergeben. Du kannst auch entscheiden, wieviel deiner persönlichen
Daten für alle einsehbar sein sollen. 'Alle' bedeutet hier alle Foodcoop-Mitglieder.
Die Administratoren haben aber jederzeit Zugriff auf deine Daten.</p>
submit: 'Foodsoft Account erstellen'
forgot_password:
title: 'Passwort vergessen?'
body:
<p>Kein Problem, Du kannst dir einfach ein neues Passwort zulegen.</p>
<p>Dazu musst hier die E-Mail-Adresse eingeben, mit der Du in der Foodsoft angemeldet bist.
Du erhälst dann eine E-Mail mit weiteren Instruktionen.</p>
submit: 'Neues Passwort anfordern'
cancel: 'oder abbrechen'
new_password:
title: 'Neues Passwort'
body:
<p>Bitte neues Passwort für <b>%{user}</b> eingeben.</p>
submit: 'Neues passwort speichern'
# used by controller
reset_password:
notice: 'Wenn Deine E-Mail hier registiert ist bekommst Du jetzt eine Nachricht mit einem Passwort-Zurücksetzen-Link.'
update_password:
notice: 'Dein Passwort wurde aktualisiert. Du kannst Dich jetzt anmelden.'
accept_invitation:
notice: 'Herzlichen Glückwunsch, Dein Account wurde erstellt. Du kannst Dich nun einloggen.'
errors:
invite_invalid: 'Deine Einladung ist nicht (mehr) gültig.'
group_invalid: 'Die Gruppe, in die Du eingeladen wurdest, existiert leider nicht mehr."'
token_invalid: 'Ungültiger oder abgelaufener Token. Bitte versuch es erneut.'