discourse/app/models/api_key.rb

45 lines
1.0 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2013-10-22 15:53:08 -04:00
class ApiKey < ActiveRecord::Base
belongs_to :user
belongs_to :created_by, class_name: 'User'
2013-10-22 15:53:08 -04:00
2017-07-24 08:45:05 -04:00
validates :user_id, uniqueness: true
2013-10-22 15:53:08 -04:00
validates_presence_of :key
def regenerate!(updated_by)
self.key = SecureRandom.hex(32)
self.created_by = updated_by
save!
end
def self.create_master_key
api_key = ApiKey.find_by(user_id: nil, hidden: false)
2013-10-22 15:53:08 -04:00
if api_key.blank?
api_key = ApiKey.create(key: SecureRandom.hex(32), created_by: Discourse.system_user)
end
api_key
end
end
2013-12-05 01:40:35 -05:00
# == Schema Information
#
# Table name: api_keys
#
# id :integer not null, primary key
# key :string(64) not null
# user_id :integer
# created_by_id :integer
# created_at :datetime not null
# updated_at :datetime not null
# allowed_ips :inet is an Array
# hidden :boolean default(FALSE), not null
# last_used_at :datetime
2013-12-05 01:40:35 -05:00
#
# Indexes
#
# index_api_keys_on_key (key)
# index_api_keys_on_user_id (user_id) UNIQUE
#