# Copyright (C) 2018 Colin Darie , 2018 Jeremy Lecour , 2018 Evolix # 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, dependent: :destroy has_many :notifications, dependent: :destroy 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