Skip to content
Extraits de code Groupes Projets
Valider 555c15df rédigé par Raphael's avatar Raphael
Parcourir les fichiers

Simplify validations on user

parent 15bd24a6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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)}
......
......@@ -11,6 +11,8 @@ en:
models:
user:
attributes:
person:
invalid: "is invalid"
username:
taken: "is already taken"
email:
......
......@@ -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
......
......@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter