32 lines
851 B
Ruby
32 lines
851 B
Ruby
module Msf
|
|
class DBManager
|
|
|
|
class Host < ActiveRecord::Base
|
|
include DBSave
|
|
|
|
belongs_to :workspace
|
|
has_and_belongs_to_many :tags, :join_table => :hosts_tags
|
|
has_many :services, :dependent => :destroy
|
|
has_many :clients, :dependent => :destroy
|
|
has_many :vulns, :dependent => :destroy
|
|
has_many :notes, :dependent => :destroy
|
|
has_many :loots, :dependent => :destroy, :order => "loots.created_at desc"
|
|
|
|
has_many :service_notes, :through => :services
|
|
has_many :web_sites, :through => :services
|
|
has_many :creds, :through => :services
|
|
has_many :exploited_hosts, :dependent => :destroy
|
|
|
|
validates_exclusion_of :address, :in => ['127.0.0.1']
|
|
validates_uniqueness_of :address, :scope => :workspace_id
|
|
|
|
def attribute_locked?(attr)
|
|
n = notes.find_by_ntype("host.updated.#{attr}")
|
|
n && n.data[:locked]
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
end
|