Simplify validations on user

This commit is contained in:
Raphael 2010-10-29 16:56:04 -07:00
parent 15bd24a64f
commit 555c15dfef
4 changed files with 6 additions and 14 deletions

View file

@ -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)}

View file

@ -11,6 +11,8 @@ en:
models:
user:
attributes:
person:
invalid: "is invalid"
username:
taken: "is already taken"
email:

View file

@ -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

View file

@ -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