41 lines
1.3 KiB
Ruby
41 lines
1.3 KiB
Ruby
class ForumUser < ActiveRecord::Base
|
|
#attr_accessible :bio, :email, :firstname, :name, :password, :password_confirmation, :avatar, :moderator
|
|
|
|
has_secure_password
|
|
validates_presence_of :password, :on => :create
|
|
validates :email, :presence => true, :uniqueness => true, :format => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
|
|
validates :name, :presence => true
|
|
validates :firstname, :presence => true
|
|
|
|
mount_uploader :avatar, AvatarUploader
|
|
|
|
has_many :messages, :class_name => "ForumMessage"
|
|
has_many :topics, :class_name => "ForumTopic"
|
|
|
|
has_many :images, :class_name => "ForumUserImage", :order => "created_at DESC"
|
|
belongs_to :sheet
|
|
before_validation do
|
|
if sheet_number?
|
|
@sheet = Sheet.where(:sheet_number => sheet_number).first
|
|
if !@sheet
|
|
errors.add :sheet_number, "Votre numéro adhérent n'est pas valide."
|
|
|
|
else
|
|
self.sheet_id = @sheet.id
|
|
|
|
if @sheet.last_year < Date.today.year
|
|
errors.add :sheet_number, "Votre cotisation n'est pas à jour, merci de nous contacter."
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
elsif self.id
|
|
|
|
else
|
|
errors.add :sheet_number, "Vous devez saisir votre numéro adhérent (présent en bas de chaque mails)."
|
|
end
|
|
end
|
|
end
|