Add deleted_at for User
Do not remove the user from the database. Mark as deleted instead.
This commit is contained in:
parent
b30b4e46d8
commit
b05ac2ab64
15 changed files with 82 additions and 12 deletions
|
|
@ -20,7 +20,10 @@ class User < ActiveRecord::Base
|
|||
has_many :created_orders, :class_name => 'Order', :foreign_key => 'created_by_user_id', :dependent => :nullify
|
||||
|
||||
attr_accessor :password, :settings_attributes
|
||||
|
||||
|
||||
scope :deleted, -> { where.not(deleted_at: nil) }
|
||||
scope :undeleted, -> { where(deleted_at: nil) }
|
||||
|
||||
# makes the current_user (logged-in-user) available in models
|
||||
cattr_accessor :current_user
|
||||
|
||||
|
|
@ -178,6 +181,18 @@ class User < ActiveRecord::Base
|
|||
self.groups.where(type: '')
|
||||
end
|
||||
|
||||
def deleted?
|
||||
deleted_at.present?
|
||||
end
|
||||
|
||||
def mark_as_deleted
|
||||
update_column :deleted_at, Time.now
|
||||
end
|
||||
|
||||
def restore
|
||||
update_column :deleted_at, nil
|
||||
end
|
||||
|
||||
def self.authenticate(login, password)
|
||||
user = find_by_nick(login) || find_by_email(login)
|
||||
if user && user.has_password(password)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue