diff --git a/lib/jam_ruby/models/user.rb b/lib/jam_ruby/models/user.rb index cb5c128f2..99afc9041 100644 --- a/lib/jam_ruby/models/user.rb +++ b/lib/jam_ruby/models/user.rb @@ -2,7 +2,7 @@ module JamRuby class User < ActiveRecord::Base attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :city, :state, :country - attr_accessor :updating_password + attr_accessor :updating_password, :administratively_created self.primary_key = 'id' @@ -89,8 +89,8 @@ module JamRuby before_save { |user| user.email = email.downcase } before_save :create_remember_token, :if => :should_validate_password? - validates :first_name, presence: true, length: {maximum: 50} - validates :last_name, presence: true, length: {maximum: 50} + validates :first_name, presence: true, length: {maximum: 50}, :if => :end_user_created? + validates :last_name, presence: true, length: {maximum: 50}, :if => :end_user_created? VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness: {case_sensitive: false} @@ -123,7 +123,11 @@ module JamRuby end def should_validate_password? - updating_password || new_record? + !administratively_created && (updating_password || new_record?) + end + + def end_user_created? + return !administratively_created end def friends?(user) diff --git a/spec/jam_ruby/models/user_spec.rb b/spec/jam_ruby/models/user_spec.rb index aa31e26de..e2ca1683f 100644 --- a/spec/jam_ruby/models/user_spec.rb +++ b/spec/jam_ruby/models/user_spec.rb @@ -126,6 +126,11 @@ describe User do it { should be_invalid } end + describe "when password and password digest are not present, but admininstrator created it" do + before { @user.password = @user.password_confirmation = nil; @user.administratively_created = true } + it { should be_valid } + end + describe "set_password" do before do @user.confirm_email!