+ session_expires_after 1.month if params[:remember_me]
+
+ # if the user hasn't seen the contributor terms then redirect them
+ # to that page.
+ if REQUIRE_TERMS_SEEN and not user.terms_seen
+ redirect_to :controller => 'user', :action => 'terms', :referer => params[:referer]
+ # The user is logged in, if the referer param exists, redirect
+ # them to that unless they've also got a block on them, in
+ # which case redirect them to the block so they can clear it.
+ elsif user.blocked_on_view
+ redirect_to user.blocked_on_view, :referer => params[:referer]
+ elsif params[:referer]
+ redirect_to params[:referer]
+ else
+ redirect_to :controller => 'site', :action => 'index'
+ end
+ elsif user = User.authenticate(:username => email_or_display_name, :password => pass, :pending => true)
+ flash.now[:error] = t 'user.login.account not active', :reconfirm => url_for(:action => 'confirm_resend', :display_name => user.display_name)
+ elsif User.authenticate(:username => email_or_display_name, :password => pass, :suspended => true)
+ webmaster = link_to t('user.login.webmaster'), "mailto:webmaster@openstreetmap.org"
+ flash.now[:error] = t 'user.login.account suspended', :webmaster => webmaster