end
end
- # check if the user has been banned
- unless @user.nil? or @user.active_blocks.empty?
- # NOTE: need slightly more helpful message than this.
- render :text => t('application.setup_user_auth.blocked'), :status => :forbidden
- end
- # if the user hasn't seen the contributor terms then don't
- # allow editing - they have to go to the web site and see
- # (but can decline) the CTs to continue.
- if REQUIRE_TERMS_SEEN
- unless @user.nil? or @user.terms_seen
+ # have we identified the user?
+ if @user
+ # check if the user has been banned
+ if not @user.active_blocks.empty?
+ # NOTE: need slightly more helpful message than this.
+ render :text => t('application.setup_user_auth.blocked'), :status => :forbidden
+ end
+
+ # if the user hasn't seen the contributor terms then don't
+ # allow editing - they have to go to the web site and see
+ # (but can decline) the CTs to continue.
+ if REQUIRE_TERMS_SEEN and not @user.terms_seen
render :text => t('application.setup_user_auth.need_to_see_terms'), :status => :forbidden
end
end
session[:user] = user.id
session_expires_after 1.month if params[:remember_me]
- # if the user hasn't seen the contributor terms then redirect them
- # to that page.
+ # The user is logged in, so decide where to send them:
+ #
+ # - If they haven't seen the contributor terms, send them there.
+ # - If they have a block on them, show them that.
+ # - If they were referred to the login, send them back there.
+ # - Otherwise, send them to the home 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]