From: Tom Hughes Date: Sun, 19 Aug 2007 12:27:23 +0000 (+0000) Subject: Add additional validation to the user model and tidy up a few things on X-Git-Tag: live~8181 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/755a2c596c405772212e60bccf9c356da3853812 Add additional validation to the user model and tidy up a few things on the account options page. --- diff --git a/app/controllers/user_controller.rb b/app/controllers/user_controller.rb index 5c95de0c9..e69ce3137 100644 --- a/app/controllers/user_controller.rb +++ b/app/controllers/user_controller.rb @@ -33,8 +33,8 @@ class UserController < ApplicationController @user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation] end @user.description = params[:user][:description] - @user.home_lat = home_lat.to_f - @user.home_lon = home_lon.to_f + @user.home_lat = home_lat + @user.home_lon = home_lon if @user.save flash[:notice] = "User information updated successfully." else diff --git a/app/models/user.rb b/app/models/user.rb index ef8e8bbf7..83a8194dd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -9,6 +9,7 @@ class User < ActiveRecord::Base has_many :tokens, :class_name => "UserToken" has_many :preferences, :class_name => "UserPreference" + validates_presence_of :email, :display_name validates_confirmation_of :pass_crypt, :message => 'Password must match the confirmation password' validates_uniqueness_of :display_name, :allow_nil => true validates_uniqueness_of :email @@ -16,6 +17,9 @@ class User < ActiveRecord::Base validates_length_of :display_name, :minimum => 3, :allow_nil => true validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i validates_format_of :display_name, :with => /^[^\/;.,?]*$/ + validates_numericality_of :home_lat, :allow_nil => true + validates_numericality_of :home_lon, :allow_nil => true + validates_numericality_of :home_zoom, :only_integer => true, :allow_nil => true before_save :encrypt_password diff --git a/app/views/user/account.rhtml b/app/views/user/account.rhtml index 54702ace9..99253471d 100644 --- a/app/views/user/account.rhtml +++ b/app/views/user/account.rhtml @@ -1,16 +1,16 @@

User details

<%= error_messages_for 'user' %> -<% form_tag :controller => 'user', :action => 'account', :display_name => @user.display_name do %> +<% form_for :user, @user do |f| %> - - - + + + - + - class="nohome" <%end%> > + class="nohome" <%end%> >
Email<%= @user.email %>
Mapper since<%= @user.creation_time %> (<%= time_ago_in_words(@user.creation_time) %> ago)
Display Name<%= text_field :user, :display_name, :value => @user.display_name %>
Password<%= password_field('user', 'pass_crypt',{:value => '', :size => 50, :maxlength => 255}) %>
Confirm Password<%= password_field('user', 'pass_crypt_confirmation',{:value => '', :size => 50, :maxlength => 255}) %>
Display Name<%= f.text_field :display_name %>
Password<%= f.password_field :pass_crypt, {:value => '', :size => 50, :maxlength => 255} %>
Confirm Password<%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 50, :maxlength => 255} %>
Description<%= text_area :user, :description, :value => @user.description, :class => "editDescription" %>
Description<%= f.text_area :description, :class => "editDescription" %>
Your homeYou have not entered your home location.Latitude: <%= text_field :user, :home_lat, :value => @user.home_lat, :size => 20, :id => "home_lat" %> Longitude <%= text_field :user, :home_lon, :value => @user.home_lon, :size => 20, :id => "home_lon" %>
Your homeYou have not entered your home location.Latitude: <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %> Longitude <%= f.text_field :home_lon, :size => 20, :id => "home_lon" %>

Update home location when I click on the map? checked="checked" <% end %> id="updatehome" />

@@ -112,7 +112,5 @@ <% else %> Currently your edits are anonymous and people can't find out where you are located. To show what you edited and allow people to contact you through the website, click the button below. This action cannot be reversed.

- <% form_tag :controller => 'user', :action => 'go_public' do %> - <%= submit_tag 'Make all my edits public, forever' %> - <% end %> + <%= button_to "Make all my edits public, forever", :action => :go_public %> <% end %>