diff --git a/app/models/user.rb b/app/models/user.rb index 27dab1e54..eecd0f6dc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -5,16 +5,6 @@ require File.join(Rails.root, 'lib/diaspora/user') require File.join(Rails.root, 'lib/salmon/salmon') -class InvitedUserValidator < ActiveModel::Validator - def validate(document) - unless document.invitation_token - unless document.person - document.errors[:base] << "Unless you are being invited, you must have a person" - end - end - end -end - class User include MongoMapper::Document include Diaspora::UserModules @@ -50,11 +40,11 @@ class User validates_presence_of :username validates_uniqueness_of :username, :case_sensitive => false validates_format_of :username, :with => /\A[A-Za-z0-9_.]+\z/ - validates_with InvitedUserValidator + validates_presence_of :person, :unless => proc {|user| user.invitation_token.present?} validates_inclusion_of :language, :in => AVAILABLE_LANGUAGE_CODES one :person, :class_name => 'Person', :foreign_key => :owner_id - validate :person_is_valid + validates_associated :person def person_is_valid if person.present? && !person.valid? person.errors.full_messages.each {|m| errors.add(:base, m)} diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index 2702ff074..27749961f 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -11,6 +11,8 @@ en: models: user: attributes: + person: + invalid: "is invalid" username: taken: "is already taken" email: diff --git a/spec/controllers/registrations_controller_spec.rb b/spec/controllers/registrations_controller_spec.rb index 942e8f5c9..fd1cf4af9 100644 --- a/spec/controllers/registrations_controller_spec.rb +++ b/spec/controllers/registrations_controller_spec.rb @@ -44,7 +44,7 @@ describe RegistrationsController do lambda { get :create, @invalid_params }.should_not change(User, :count) end it "assigns @user" do - get :create, @valid_params + get :create, @invalid_params assigns(:user).should_not be_nil end it "sets the flash error" do diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 315484ab9..a1b89a1d3 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -51,7 +51,7 @@ describe User do user.should_not be_valid user.errors.full_messages.count.should == 1 - user.errors.full_messages.first.should =~ /serialized public key/i + user.errors.full_messages.first.should =~ /Person is invalid/i end end