metamaps--metamaps/app/models/user.rb

46 lines
1.4 KiB
Ruby

require 'open-uri'
class User < ActiveRecord::Base
has_many :topics
has_many :synapses
has_many :maps
has_many :mappings
acts_as_authentic do |configuration|
configuration.session_class = Session
configuration.require_password_confirmation = false
configuration.merge_validates_format_of_email_field_options unless: Proc.new { |user| user.email.blank? and user.authed? }
configuration.merge_validates_length_of_email_field_options unless: Proc.new { |user| user.email.blank? and user.authed? }
end
serialize :settings, UserPreference
validates :password, :presence => true,
:length => {
:maximum => 20,
:too_long => "is too long (maximum is %{count} characters)" },
:on => :create
validates :password, :allow_blank => true,
:length => {
:maximum => 20,
:too_long => "is too long (maximum is %{count} characters)"},
:on => :update
validates :joinedwithcode, :presence => true, :inclusion => { :in => User.all.map(&:code), :message => "%{value} is not a valid code" }, :on => :create
def settings
# make sure we always return a UserPreference instance
if read_attribute(:settings).nil?
write_attribute :settings, UserPreference.new
read_attribute :settings
else
read_attribute :settings
end
end
def settings=(val)
write_attribute :settings, val
end
end