Tidy up a few things
authorTom Hughes <tom@compton.nu>
Sat, 2 Apr 2011 15:20:29 +0000 (16:20 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 3 Apr 2011 12:46:16 +0000 (13:46 +0100)
app/controllers/application_controller.rb
app/controllers/user_controller.rb

index a22bc13..34987c9 100644 (file)
@@ -99,16 +99,18 @@ class ApplicationController < ActionController::Base
       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
index 631c910..b1fb9c5 100644 (file)
@@ -218,13 +218,14 @@ class UserController < ApplicationController
         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]