]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/user_controller.rb
Put back the SOTM advert on the front page, updated for SOTM2008.
[rails.git] / app / controllers / user_controller.rb
index a9b91098f0f2df58b96b03cc91240d57a2556e85..bd0c143c0ce7f5866bb35c9668e09b3485633263 100644 (file)
@@ -2,8 +2,8 @@ class UserController < ApplicationController
   layout 'site'
 
   before_filter :authorize, :only => [:api_details, :api_gpx_files]
   layout 'site'
 
   before_filter :authorize, :only => [:api_details, :api_gpx_files]
-  before_filter :authorize_web, :only => [:account, :go_public, :view, :diary, :make_friend, :remove_friend]
-  before_filter :require_user, :only => [:set_home, :account, :go_public, :make_friend, :remove_friend]
+  before_filter :authorize_web, :only => [:account, :go_public, :view, :diary, :make_friend, :remove_friend, :upload_image]
+  before_filter :require_user, :only => [:set_home, :account, :go_public, :make_friend, :remove_friend, :upload_image]
 
   filter_parameter_logging :password, :pass_crypt, :pass_crypt_confirmation
 
 
   filter_parameter_logging :password, :pass_crypt, :pass_crypt_confirmation
 
@@ -105,9 +105,9 @@ class UserController < ApplicationController
   def login
     @title = 'login'
     if params[:user]
   def login
     @title = 'login'
     if params[:user]
-      email = params[:user][:email]
+      email_or_display_name = params[:user][:email]
       pass = params[:user][:password]
       pass = params[:user][:password]
-      user = User.authenticate(:username => email, :password => pass)
+      user = User.authenticate(:username => email_or_display_name, :password => pass)
       if user
         session[:user] = user.id
         if params[:referer]
       if user
         session[:user] = user.id
         if params[:referer]
@@ -116,7 +116,7 @@ class UserController < ApplicationController
           redirect_to :controller => 'site', :action => 'index'
         end
         return
           redirect_to :controller => 'site', :action => 'index'
         end
         return
-      elsif User.authenticate(:username => email, :password => pass, :invalid => true)
+      elsif User.authenticate(:username => email_or_display_name, :password => pass, :inactive => true)
         flash[:notice] = "Sorry, your account is not active yet.<br>Please click on the link in the account confirmation email to activate your account."
       else
         flash[:notice] = "Sorry, couldn't log in with those details."
         flash[:notice] = "Sorry, your account is not active yet.<br>Please click on the link in the account confirmation email to activate your account."
       else
         flash[:notice] = "Sorry, couldn't log in with those details."
@@ -155,6 +155,12 @@ class UserController < ApplicationController
     end
   end
 
     end
   end
 
+  def upload_image
+    @user.image = params[:user][:image]
+    @user.save!
+    redirect_to :controller => 'user', :action => 'view', :display_name => @user.display_name
+  end
+
   def api_details
     render :text => @user.to_xml.to_s, :content_type => "text/xml"
   end
   def api_details
     render :text => @user.to_xml.to_s, :content_type => "text/xml"
   end