Fix errors when an existing user tries to agree to the new terms
authorTom Hughes <tom@compton.nu>
Fri, 24 Sep 2010 09:22:53 +0000 (10:22 +0100)
committerTom Hughes <tom@compton.nu>
Fri, 1 Oct 2010 20:07:34 +0000 (21:07 +0100)
app/controllers/user_controller.rb

index 17f52fd40e9362de99318c9343cdaf994c432ff4..2e80682a38a42a9294f8b3b3525db992a8337e54 100644 (file)
@@ -46,7 +46,7 @@ class UserController < ApplicationController
       @title = t 'user.terms.title'
       @user = User.new(params[:user]) if params[:user]
 
-      if params[:user][:openid_url] and @user.pass_crypt.empty?
+      if params[:user] and params[:user][:openid_url] and @user.pass_crypt.empty?
         # We are creating an account with OpenID and no password
         # was specified so create a random one
         @user.pass_crypt = ActiveSupport::SecureRandom.base64(16) 
@@ -60,7 +60,7 @@ class UserController < ApplicationController
         elsif @user.terms_agreed?
           # Already agreed to terms, so just show settings
           redirect_to :action => :account, :display_name => @user.display_name
-        elsif params[:user][:openid_url]
+        elsif params[:user] and params[:user][:openid_url]
           # Verify OpenID before moving on
           session[:new_user] = @user
           openid_verify(params[:user][:openid_url], @user)