From 6fa8439c4acb11960f0faa6fc7f43469fac89d65 Mon Sep 17 00:00:00 2001 From: lukemelia Date: Sat, 16 Sep 2006 16:01:29 +0000 Subject: [PATCH] Add first_name, last_name, and display_name to the User and make first and last names editable via the preferences interface. The display_name attribute is used in the upper right-hand corner of the standard layout and falls back to use the login if neither first_name of last_name are set. This is the beginning of Tony Shadwick's request http://www.rousette.org.uk/projects/forums/viewthread/70/ git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@319 a4c988fc-2ded-0310-b66e-134b36920a42 --- tracks/app/controllers/user_controller.rb | 2 ++ tracks/app/models/user.rb | 19 +++++++++++---- tracks/app/views/layouts/standard.rhtml | 2 +- .../app/views/user/preference_edit_form.rhtml | 9 +++++++ tracks/app/views/user/preferences.rhtml | 2 ++ .../010_add_first_and_last_name_to_user.rb | 11 +++++++++ tracks/db/schema.rb | 4 +++- .../test/functional/user_controller_test.rb | 8 ++++--- tracks/test/unit/user_test.rb | 24 +++++++++++++++++++ 9 files changed, 72 insertions(+), 9 deletions(-) create mode 100644 tracks/db/migrate/010_add_first_and_last_name_to_user.rb diff --git a/tracks/app/controllers/user_controller.rb b/tracks/app/controllers/user_controller.rb index 338825eb..e776d31b 100644 --- a/tracks/app/controllers/user_controller.rb +++ b/tracks/app/controllers/user_controller.rb @@ -69,6 +69,8 @@ class UserController < ApplicationController "admin_email" => "#{params['prefs']['admin_email']}", "refresh" => "#{params['prefs']['refresh']}" } + @user.first_name = params['user']['first_name'] + @user.last_name = params['user']['last_name'] if @user.save redirect_to :action => 'preferences' else diff --git a/tracks/app/models/user.rb b/tracks/app/models/user.rb index b5607d0a..73d56cdb 100644 --- a/tracks/app/models/user.rb +++ b/tracks/app/models/user.rb @@ -18,7 +18,22 @@ class User < ActiveRecord::Base def self.find_admin find_first([ "is_admin = ?", true ]) end + + def self.get_salt + SALT + end + def display_name + if first_name.blank? && last_name.blank? + return login + elsif first_name.blank? + return last_name + elsif last_name.blank? + return first_name + end + "#{first_name} #{last_name}" + end + def change_password(pass,pass_confirm) self.password = pass self.password_confirmation = pass_confirm @@ -27,10 +42,6 @@ class User < ActiveRecord::Base def crypt_word write_attribute("word", self.class.sha1(login + Time.now.to_i.to_s + rand.to_s)) end - - def self.get_salt - SALT - end protected diff --git a/tracks/app/views/layouts/standard.rhtml b/tracks/app/views/layouts/standard.rhtml index d7da25ea..8711d6ce 100644 --- a/tracks/app/views/layouts/standard.rhtml +++ b/tracks/app/views/layouts/standard.rhtml @@ -38,7 +38,7 @@ <% if @user.is_admin? -%> <%= link_to "Add users", :controller => "login", :action => "signup" %> |  <% end -%> - <%= link_to "Logout (#{@user.login}) »", :controller => "login", :action=>"logout"%> + <%= link_to "Logout (#{@user.display_name}) »", :controller => "login", :action=>"logout"%>