user.rb
1.31 KB
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable,
:omniauthable, omniauth_providers: [:RemoteUser]
validates :name, presence: true
validates :email, presence: true, uniqueness: true
validates :provider, presence: true, unless: Proc.new { |user| user.uid.nil? || user.uid.blank? }
validates :uid, presence: true, uniqueness: { scope: :provider },
unless: Proc.new { |user| user.provider.nil? || user.provider.blank? }
has_many :project_attributes, class_name: 'ProjectAttributes', dependent: :destroy
has_many :reading_group_attributes, class_name: 'ReadingGroupAttributes', dependent: :destroy
has_many :repository_attributes, class_name: 'RepositoryAttributes', dependent: :destroy
has_many :kalibro_configuration_attributes, class_name: 'KalibroConfigurationAttributes', dependent: :destroy
# Alert: when adding new parameters to this model, they should also be added to registrations_controller
def projects
project_attributes.map { |project_attr| project_attr.project }
end
protected
def password_required?
provider.nil? && super
end
end