demarches-normaliennes/app/models/administrateur.rb

37 lines
853 B
Ruby
Raw Normal View History

class Administrateur < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_and_belongs_to_many :gestionnaires
has_many :procedures
2015-12-14 17:28:36 +01:00
before_save :ensure_api_token
2016-12-16 14:39:17 +01:00
after_update :sync_credentials
2015-12-14 17:28:36 +01:00
def ensure_api_token
if api_token.nil?
self.api_token = generate_api_token
end
end
def renew_api_token
update_attributes(api_token: generate_api_token)
end
private
def generate_api_token
loop do
token = SecureRandom.hex(20)
break token unless Administrateur.find_by(api_token: token)
end
end
def sync_credentials
if email_changed? || encrypted_password_changed?
return SyncCredentialsService.new(Administrateur, email_was, email, encrypted_password).change_credentials!
end
true
end
end