if @user.save
flash[:notice] = t 'user.new.flash create success message', :email => @user.email
- Notifier.deliver_signup_confirm(@user, @user.tokens.create(:referer => params[:referer]))
+ Notifier.deliver_signup_confirm(@user, @user.tokens.create(:referer => session.delete(:referer)))
+ session[:token] = @user.tokens.create.token
redirect_to :action => 'login'
else
render :action => 'new'
@user.home_lat = params[:user][:home_lat]
@user.home_lon = params[:user][:home_lon]
- if @user.save
- set_locale
+ if params[:user][:preferred_editor] == "default"
+ @user.preferred_editor = nil
+ else
+ @user.preferred_editor = params[:user][:preferred_editor]
+ end
+
+ @user.openid_url = nil if params[:user][:openid_url].empty?
- if @user.new_email.nil? or @user.new_email.empty?
- flash[:notice] = t 'user.account.flash update success'
- else
- flash[:notice] = t 'user.account.flash update success confirm needed'
-
- begin
- Notifier.deliver_email_confirm(@user, @user.tokens.create)
- rescue
- # Ignore errors sending email
- end
- end
-
- redirect_to :action => "account", :display_name => @user.display_name
+ if params[:user][:openid_url].length > 0 and
+ params[:user][:openid_url] != @user.openid_url
+ # If the OpenID has changed, we want to check that it is a
+ # valid OpenID and one the user has control over before saving
+ # it as a password equivalent for the user.
+ session[:new_user] = @user
+ openid_verify(params[:user][:openid_url], @user)
+ else
+ update_user(@user)
+ end
+ elsif using_open_id?
+ # The redirect from the OpenID provider reenters here
+ # again and we need to pass the parameters through to
+ # the open_id_authentication function
+ @user = session.delete(:new_user)
+ openid_verify(nil, @user) do |user|
+ update_user(user)
end
else
if flash[:errors]
- <h1><%= t 'user.login.heading' %></h1>
+ <div id="login_wrapper">
+
- <p><%= t 'user.login.please login', :create_user_link => link_to(t('user.login.create_account'), :controller => 'user', :action => 'new', :referer => params[:referer]) %></p>
+ <div id="login_login">
+ <h1><%= t 'user.login.heading' %></h1>
- <% form_tag({ :action => "login" }, { :id => "login_form" }) do %>
- <%= hidden_field_tag('referer', h(params[:referer])) %>
- <p><%= t 'user.login.already have' %></p>
-
- <% form_tag :action => 'login' do %>
++ <% form_tag({ :action => "login" }, { :id => "login_form" }) do %>
+ <%= hidden_field_tag('referer', h(params[:referer])) %>
+
- <div style="position: relative;">
- <div class="loginBox">
- <h3><%= t 'user.login.username_heading' %></h3>
- <table>
- <tr>
- <td class="fieldName"><label for="user_email"><%= t 'user.login.email or username' %></label></td>
- <td><%= text_field_tag("username", "", { :size => 28, :maxlength => 255, :tabindex => 1 }) %></td>
- </tr>
- <tr>
- <td class="fieldName"><label for="user_password"><%= t 'user.login.password' %></label></td>
- <td><%= password_field_tag("password", "", { :size => 28, :maxlength => 255, :tabindex => 2 }) %></td>
- </tr>
++ <p><%= t 'user.login.with username' %></p>
++
+ <table id="loginForm">
+ <tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field('user', 'email',{:value => "", :size => 28, :maxlength => 255, :tabindex => 1}) %></td></tr>
+ <tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field('user', 'password',{:value => "", :size => 28, :maxlength => 255, :tabindex => 2}) %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
+ <tr><td class="fieldName"><label for="remember_me"><%= t 'user.login.remember' %></label></td><td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %></td></tr>
+ </table>
+ <%= submit_tag t('user.login.login_button'), :tabindex => 3 %>
++
++ <p><%= t 'user.login.with openid' %></p>
++
++ <table id="login_openid_buttons">
+ <tr>
- <td></td>
- <td><span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td>
++ <td>
++ <%=
++ link_to_function(image_tag("openid_large.png", :alt => t("user.login.openid_providers.openid.title")), nil, :title => t("user.login.openid_providers.openid.title")) do |page|
++ page[:login_form][:openid_url].value = "http://"
++ page[:login_openid_buttons].hide
++ page[:login_openid_url].show
++ page[:login_openid_submit].show
++ end
++ %>
++ </td>
++ <td><%= openid_button "yahoo", "me.yahoo.com" %></td>
++ <td><%= openid_button "google", "gmail.com" %></td>
+ </tr>
+ <tr>
- <td class="fieldName"><label for="remember_me"><%= t 'user.login.remember' %></label></td>
- <td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %></td>
++ <td><%= openid_button "myopenid", "myopenid.com" %></td>
++ <td><%= openid_button "wordpress", "wordpress.com" %></td>
++ <td><%= openid_button "myspace", "myspace.com" %></td>
+ </tr>
+ </table>
+
- <%= submit_tag t('user.login.login_button'), :tabindex => 4 %>
- </div>
-
- <div style="float:left; width: 20px; padding: 10px;">
- </div>
-
- <div class="loginBox">
- <h3><%= t 'user.login.openid_heading' %></h3>
- <div id="openid_buttons">
- <%=
- link_to_function(image_tag("openid_large.png", :alt => t("user.login.openid_providers.openid.title")), nil, :title => t("user.login.openid_providers.openid.title")) do |page|
- page[:login_form][:openid_url].value = "http://"
- page[:openid_buttons].hide
- page[:openid_url].show
- page[:openid_url_hint].show
- page[:openid_submit].show
- end
- %>
- <%= openid_button "yahoo", "me.yahoo.com" %>
- <%= openid_button "google", "gmail.com" %>
- <%= openid_button "myopenid", "myopenid.com" %>
- <%= openid_button "wordpress", "wordpress.com" %>
- <%= openid_button "myspace", "myspace.com" %>
- </div>
-
+ <table>
- <tr id="openid_url">
++ <tr id="login_openid_url">
+ <td class="fieldName nowrap">
+ <%= t 'user.login.openid', :logo => openid_logo %>
+ </td>
- <td><%= text_field_tag("openid_url", "", { :size => 28, :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %></td>
- </tr>
- <tr id="openid_url_hint">
- <td></td>
+ <td>
++ <%= text_field_tag("openid_url", "", { :size => 28, :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %>
+ <span class="minorNote">(<a href="<%= t 'user.account.openid.link' %>" target="_new"><%= t 'user.account.openid.link text' %></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="fieldName nowrap" id="remember_me_label"><label for="remember_me"><%= t 'user.login.remember' %></label></td>
+ <td width="100%"><%= check_box_tag "remember_me", "yes", false, :tabindex => 5 %></td>
+ </tr>
+ </table>
+
- <%= submit_tag t('user.login.login_button'), :tabindex => 6, :id => "openid_submit" %>
- </div>
++ <%= submit_tag t('user.login.login_button'), :tabindex => 6, :id => "login_openid_submit" %>
+ <% end %>
++
+ <br clear="both">
</div>
- <% end %>
++
+ <div id="login_signup">
+ <h2><%= t 'user.login.new to osm' %></h2>
+ <p><%= t 'user.login.to make changes' %></p>
+ <p><%= t 'user.login.create account minute' %></p></p>
+ <p><%= button_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
++
+ <br clear="both">
+ </div>
++
+ </div>
+
+<%=
+ update_page_tag do |page|
- page[:openid_url].hide
- page[:openid_url_hint].hide
- page[:openid_submit].hide
++ page[:login_openid_url].hide
++ page[:login_openid_submit].hide
+ end
+%>