Skip to content
Snippets Groups Projects
user.rb 2.61 KiB
Newer Older
Arnaud Levy's avatar
Arnaud Levy committed
# == Schema Information
#
# Table name: users
#
Sébastien Gaya's avatar
Sébastien Gaya committed
#  id                            :uuid             not null, primary key
#  confirmation_sent_at          :datetime
#  confirmation_token            :string
#  confirmed_at                  :datetime
#  current_sign_in_at            :datetime
#  current_sign_in_ip            :string
#  direct_otp                    :string
#  direct_otp_sent_at            :datetime
#  email                         :string           default(""), not null
#  encrypted_otp_secret_key      :string
#  encrypted_otp_secret_key_iv   :string
#  encrypted_otp_secret_key_salt :string
#  encrypted_password            :string           default(""), not null
#  failed_attempts               :integer          default(0), not null
#  first_name                    :string
#  last_name                     :string
#  last_sign_in_at               :datetime
#  last_sign_in_ip               :string
#  locked_at                     :datetime
#  mobile_phone                  :string
#  remember_created_at           :datetime
#  reset_password_sent_at        :datetime
#  reset_password_token          :string
#  role                          :integer          default("visitor")
#  second_factor_attempts_count  :integer          default(0)
#  session_token                 :string
#  sign_in_count                 :integer          default(0), not null
#  totp_timestamp                :datetime
#  unconfirmed_email             :string
#  unlock_token                  :string
#  created_at                    :datetime         not null
#  updated_at                    :datetime         not null
#  language_id                   :uuid
#  university_id                 :uuid             not null
Arnaud Levy's avatar
Arnaud Levy committed
#
# Indexes
#
Sébastien Gaya's avatar
Sébastien Gaya committed
#  index_users_on_confirmation_token        (confirmation_token) UNIQUE
#  index_users_on_email_and_university_id   (email,university_id) UNIQUE
#  index_users_on_encrypted_otp_secret_key  (encrypted_otp_secret_key) UNIQUE
#  index_users_on_language_id               (language_id)
#  index_users_on_reset_password_token      (reset_password_token) UNIQUE
#  index_users_on_university_id             (university_id)
#  index_users_on_unlock_token              (unlock_token) UNIQUE
Arnaud Levy's avatar
Arnaud Levy committed
#  fk_rails_...  (language_id => languages.id)
#  fk_rails_...  (university_id => universities.id)
Arnaud Levy's avatar
Arnaud Levy committed
#
class User < ApplicationRecord
Sébastien Gaya's avatar
Sébastien Gaya committed
  include WithAuthentication
pabois's avatar
pabois committed
  include WithRoles
Sébastien Gaya's avatar
Sébastien Gaya committed

  belongs_to :university
Arnaud Levy's avatar
Arnaud Levy committed
  belongs_to :language
Arnaud Levy's avatar
Arnaud Levy committed
  has_one :researcher, class_name: 'Research::Researcher'
pabois's avatar
pabois committed
  has_one_attached_deletable :picture
Arnaud Levy's avatar
Arnaud Levy committed

pabois's avatar
pabois committed
  scope :ordered, -> { order(:last_name, :first_name) }


Arnaud Levy's avatar
Arnaud Levy committed
  def to_s
pabois's avatar
pabois committed
    "#{first_name} #{last_name}"
Arnaud Levy's avatar
Arnaud Levy committed
  end
end