From 555c15dfef2d621c0a56d6550e74873357bf6642 Mon Sep 17 00:00:00 2001 From: Raphael <raphael@joindiaspora.com> Date: Fri, 29 Oct 2010 16:56:04 -0700 Subject: [PATCH] Simplify validations on user --- app/models/user.rb | 14 ++------------ config/locales/diaspora/en.yml | 2 ++ spec/controllers/registrations_controller_spec.rb | 2 +- spec/models/user_spec.rb | 2 +- 4 files changed, 6 insertions(+), 14 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 27dab1e54a..eecd0f6dc2 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 2702ff0747..27749961f3 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 942e8f5c93..fd1cf4af95 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 315484ab9e..a1b89a1d3a 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 -- GitLab