21
1
Fork 0
mirror of https://github.com/Evolix/chexpire.git synced 2024-05-01 16:30:49 +02:00
chexpire/app/models/user.rb
2018-08-02 00:29:53 +02:00

53 lines
2 KiB
Ruby

# Copyright (C) 2018 Colin Darie <colin@darie.eu>, 2018 Jeremy Lecour <jlecour@evolix.fr>, 2018 Evolix <info@evolix.fr>
# License: GNU AGPL-3+ (see full text in LICENSE file)
# == Schema Information
#
# Table name: users
#
# id :bigint(8) not null, primary key
# confirmation_sent_at :datetime
# confirmation_token :string(255)
# confirmed_at :datetime
# current_sign_in_at :datetime
# current_sign_in_ip :string(255)
# email :string(255) default(""), not null
# encrypted_password :string(255) default(""), not null
# last_sign_in_at :datetime
# last_sign_in_ip :string(255)
# locale :string(5) default("en"), not null
# notifications_enabled :boolean default(TRUE), not null
# remember_created_at :datetime
# reset_password_sent_at :datetime
# reset_password_token :string(255)
# sign_in_count :integer default(0), not null
# tos_accepted :boolean default(FALSE), not null
# unconfirmed_email :string(255)
# created_at :datetime not null
# updated_at :datetime not null
#
# Indexes
#
# index_users_on_confirmation_token (confirmation_token) UNIQUE
# index_users_on_email (email) UNIQUE
# index_users_on_reset_password_token (reset_password_token) UNIQUE
#
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable, :confirmable
has_many :checks
validates :tos_accepted, acceptance: true
validates :locale, inclusion: { in: I18n.available_locales.map(&:to_s) }
scope :notifications_disabled, -> { where(notifications_enabled: false) }
# Devise ActiveJob integration
def send_devise_notification(notification, *args)
devise_mailer.send(notification, self, *args).deliver_later
end
end