Users & Auth
This commit is contained in:
40
app/models/user.rb
Normal file
40
app/models/user.rb
Normal file
@ -0,0 +1,40 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: users
|
||||
#
|
||||
# id :integer not null, primary key
|
||||
# display_name :string not null
|
||||
# email :string not null
|
||||
# password_digest :string not null
|
||||
# role :integer default("author"), not null
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_users_on_email (email)
|
||||
#
|
||||
|
||||
class User < ApplicationRecord
|
||||
has_secure_password
|
||||
|
||||
validates :display_name, presence: true
|
||||
validates :email, presence: true, email_format: true, uniqueness: true
|
||||
validates :password_confirmation, presence: true, if: ->(m) { m.password.present? }
|
||||
validates :role, presence: true
|
||||
|
||||
enum role: {
|
||||
author: 0,
|
||||
admin: 2
|
||||
}
|
||||
|
||||
def acts_as_admin?
|
||||
admin?
|
||||
end
|
||||
|
||||
def acts_as_author?
|
||||
admin? || author?
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user