metasploit_data_models 0.16.0-java → 0.16.1-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/models/mdm/session.rb +12 -0
- data/app/models/mdm/task.rb +16 -3
- data/app/models/mdm/task_session.rb +9 -0
- data/db/migrate/20130604145732_create_task_sessions.rb +9 -0
- data/lib/metasploit_data_models/version.rb +1 -1
- data/spec/app/models/mdm/session_spec.rb +3 -1
- data/spec/app/models/mdm/task_sessions_spec.rb +47 -0
- data/spec/app/models/mdm/task_spec.rb +3 -0
- data/spec/dummy/db/schema.rb +8 -1
- data/spec/factories/mdm/task_sessions.rb +8 -0
- metadata +7 -1
data/app/models/mdm/session.rb
CHANGED
@@ -33,6 +33,18 @@ class Mdm::Session < ActiveRecord::Base
|
|
33
33
|
# @return [Mdm::Workspace]
|
34
34
|
has_one :workspace, :through => :host, :class_name => 'Mdm::Workspace'
|
35
35
|
|
36
|
+
# @!attribute [rw] task_sessions
|
37
|
+
# Details about sessions this task touched
|
38
|
+
#
|
39
|
+
# @return [Array<Mdm::TaskSession>]
|
40
|
+
has_many :task_sessions, :dependent => :destroy, :class_name => 'Mdm::TaskSession'
|
41
|
+
|
42
|
+
# @!attribute [rw] task
|
43
|
+
# Session this task touched
|
44
|
+
#
|
45
|
+
# @return [Mdm::Session]
|
46
|
+
has_many :tasks, :through => :task_sessions, :class_name => 'Mdm::Task'
|
47
|
+
|
36
48
|
#
|
37
49
|
# Attributes
|
38
50
|
#
|
data/app/models/mdm/task.rb
CHANGED
@@ -24,7 +24,7 @@ class Mdm::Task < ActiveRecord::Base
|
|
24
24
|
# @!attribute [rw] creds
|
25
25
|
# Creds this task touched
|
26
26
|
#
|
27
|
-
# @return [Array<Mdm::
|
27
|
+
# @return [Array<Mdm::Cred>]
|
28
28
|
has_many :creds, :through => :task_creds, :class_name => 'Mdm::Cred'
|
29
29
|
|
30
30
|
# @!attribute [rw] task_hosts
|
@@ -36,7 +36,7 @@ class Mdm::Task < ActiveRecord::Base
|
|
36
36
|
# @!attribute [rw] hosts
|
37
37
|
# Hosts this task touched
|
38
38
|
#
|
39
|
-
# @return [Array<Mdm::
|
39
|
+
# @return [Array<Mdm::Host>
|
40
40
|
has_many :hosts, :through => :task_hosts, :class_name => 'Mdm::Host'
|
41
41
|
|
42
42
|
# @!attribute [rw] task_services
|
@@ -48,9 +48,22 @@ class Mdm::Task < ActiveRecord::Base
|
|
48
48
|
# @!attribute [rw] services
|
49
49
|
# Services this task touched
|
50
50
|
#
|
51
|
-
# @return [Array<Mdm::
|
51
|
+
# @return [Array<Mdm::Service>
|
52
52
|
has_many :services, :through => :task_services, :class_name => 'Mdm::Service'
|
53
53
|
|
54
|
+
# @!attribute [rw] task_sessions
|
55
|
+
# Details about sessions this task touched
|
56
|
+
#
|
57
|
+
# @return [Array<Mdm::TaskSession>]
|
58
|
+
has_many :task_sessions, :dependent => :destroy, :class_name => 'Mdm::TaskSession'
|
59
|
+
|
60
|
+
# @!attribute [rw] sessions
|
61
|
+
# Session this task touched
|
62
|
+
#
|
63
|
+
# @return [Array<Mdm::Session>
|
64
|
+
has_many :sessions, :through => :task_sessions, :class_name => 'Mdm::Session'
|
65
|
+
|
66
|
+
|
54
67
|
has_many :reports, :class_name => 'Mdm::Report'
|
55
68
|
|
56
69
|
#
|
@@ -4,5 +4,5 @@ module MetasploitDataModels
|
|
4
4
|
# metasploit-framework/data/sql/migrate to db/migrate in this project, not all models have specs that verify the
|
5
5
|
# migrations (with have_db_column and have_db_index) and certain models may not be shared between metasploit-framework
|
6
6
|
# and pro, so models may be removed in the future. Because of the unstable API the version should remain below 1.0.0
|
7
|
-
VERSION = '0.16.
|
7
|
+
VERSION = '0.16.1'
|
8
8
|
end
|
@@ -42,11 +42,13 @@ describe Mdm::Session do
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
context '
|
45
|
+
context 'associations' do
|
46
46
|
it { should belong_to(:host).class_name('Mdm::Host') }
|
47
47
|
it { should have_many(:events).class_name('Mdm::SessionEvent').dependent(:delete_all) }
|
48
48
|
it { should have_many(:routes).class_name('Mdm::Route').dependent(:delete_all) }
|
49
49
|
it { should have_one(:workspace).class_name('Mdm::Workspace').through(:host) }
|
50
|
+
it { should have_many(:task_sessions).class_name('Mdm::TaskSession').dependent(:destroy)}
|
51
|
+
it { should have_many(:tasks).class_name('Mdm::Task').through(:task_sessions)}
|
50
52
|
end
|
51
53
|
|
52
54
|
context 'scopes' do
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mdm::TaskSession do
|
4
|
+
|
5
|
+
context 'factory' do
|
6
|
+
it 'should be valid' do
|
7
|
+
task_session = FactoryGirl.build(:mdm_task_session)
|
8
|
+
task_session.should be_valid
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'database' do
|
13
|
+
|
14
|
+
context 'timestamps'do
|
15
|
+
it { should have_db_column(:created_at).of_type(:datetime).with_options(:null => false) }
|
16
|
+
it { should have_db_column(:updated_at).of_type(:datetime).with_options(:null => false) }
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'columns' do
|
20
|
+
it { should have_db_column(:task_id).of_type(:integer).with_options(:null => false) }
|
21
|
+
it { should have_db_column(:session_id).of_type(:integer).with_options(:null => false) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
context '#destroy' do
|
26
|
+
it 'should successfully destroy the object' do
|
27
|
+
task_session = FactoryGirl.create(:mdm_task_session)
|
28
|
+
expect {
|
29
|
+
task_session.destroy
|
30
|
+
}.to_not raise_error
|
31
|
+
expect {
|
32
|
+
task_session.reload
|
33
|
+
}.to raise_error(ActiveRecord::RecordNotFound)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "validations" do
|
38
|
+
it "should not allow duplicate associations" do
|
39
|
+
task = FactoryGirl.build(:mdm_task)
|
40
|
+
session = FactoryGirl.build(:mdm_session)
|
41
|
+
FactoryGirl.create(:mdm_task_session, :task => task, :session => session)
|
42
|
+
task_session2 = FactoryGirl.build(:mdm_task_session, :task => task, :session => session)
|
43
|
+
task_session2.should_not be_valid
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
@@ -48,12 +48,15 @@ describe Mdm::Task do
|
|
48
48
|
context "Associations" do
|
49
49
|
it { should have_many(:task_creds).class_name('Mdm::TaskCred').dependent(:destroy) }
|
50
50
|
it { should have_many(:creds).class_name('Mdm::Cred').through(:task_creds) }
|
51
|
+
it { should have_many(:task_sessions).class_name('Mdm::TaskSession').dependent(:destroy) }
|
52
|
+
it { should have_many(:sessions).class_name('Mdm::Session').through(:task_sessions) }
|
51
53
|
it { should have_many(:task_hosts).class_name('Mdm::TaskHost').dependent(:destroy) }
|
52
54
|
it { should have_many(:hosts).class_name('Mdm::Host').through(:task_hosts) }
|
53
55
|
it { should have_many(:task_services).class_name('Mdm::TaskService').dependent(:destroy) }
|
54
56
|
it { should have_many(:services).class_name('Mdm::Service').through(:task_services) }
|
55
57
|
it { should belong_to(:workspace).class_name('Mdm::Workspace') }
|
56
58
|
it { should have_many(:reports).class_name('Mdm::Report')}
|
59
|
+
|
57
60
|
end
|
58
61
|
|
59
62
|
context 'scopes' do
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended to check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(:version =>
|
14
|
+
ActiveRecord::Schema.define(:version => 20130604145732) do
|
15
15
|
|
16
16
|
create_table "api_keys", :force => true do |t|
|
17
17
|
t.text "token"
|
@@ -440,6 +440,13 @@ ActiveRecord::Schema.define(:version => 20130531144949) do
|
|
440
440
|
t.datetime "updated_at", :null => false
|
441
441
|
end
|
442
442
|
|
443
|
+
create_table "task_sessions", :force => true do |t|
|
444
|
+
t.integer "task_id", :null => false
|
445
|
+
t.integer "session_id", :null => false
|
446
|
+
t.datetime "created_at", :null => false
|
447
|
+
t.datetime "updated_at", :null => false
|
448
|
+
end
|
449
|
+
|
443
450
|
create_table "tasks", :force => true do |t|
|
444
451
|
t.integer "workspace_id", :default => 1, :null => false
|
445
452
|
t.string "created_by"
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: metasploit_data_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.16.
|
5
|
+
version: 0.16.1
|
6
6
|
platform: java
|
7
7
|
authors:
|
8
8
|
- Samuel Huckins
|
@@ -212,6 +212,7 @@ files:
|
|
212
212
|
- app/models/mdm/task_cred.rb
|
213
213
|
- app/models/mdm/task_host.rb
|
214
214
|
- app/models/mdm/task_service.rb
|
215
|
+
- app/models/mdm/task_session.rb
|
215
216
|
- app/models/mdm/user.rb
|
216
217
|
- app/models/mdm/vuln.rb
|
217
218
|
- app/models/mdm/vuln_attempt.rb
|
@@ -333,6 +334,7 @@ files:
|
|
333
334
|
- db/migrate/20130525015035_remove_campaign_id_from_clients.rb
|
334
335
|
- db/migrate/20130525212420_drop_table_imported_creds.rb
|
335
336
|
- db/migrate/20130531144949_making_host_tags_a_real_ar_model.rb
|
337
|
+
- db/migrate/20130604145732_create_task_sessions.rb
|
336
338
|
- lib/mdm.rb
|
337
339
|
- lib/mdm/host/operating_system_normalization.rb
|
338
340
|
- lib/mdm/module.rb
|
@@ -378,6 +380,7 @@ files:
|
|
378
380
|
- spec/app/models/mdm/task_creds_spec.rb
|
379
381
|
- spec/app/models/mdm/task_host_spec.rb
|
380
382
|
- spec/app/models/mdm/task_service_spec.rb
|
383
|
+
- spec/app/models/mdm/task_sessions_spec.rb
|
381
384
|
- spec/app/models/mdm/task_spec.rb
|
382
385
|
- spec/app/models/mdm/user_spec.rb
|
383
386
|
- spec/app/models/mdm/vuln_attempt_spec.rb
|
@@ -460,6 +463,7 @@ files:
|
|
460
463
|
- spec/factories/mdm/task_creds.rb
|
461
464
|
- spec/factories/mdm/task_hosts.rb
|
462
465
|
- spec/factories/mdm/task_services.rb
|
466
|
+
- spec/factories/mdm/task_sessions.rb
|
463
467
|
- spec/factories/mdm/users.rb
|
464
468
|
- spec/factories/mdm/vuln_attempts.rb
|
465
469
|
- spec/factories/mdm/vuln_details.rb
|
@@ -538,6 +542,7 @@ test_files:
|
|
538
542
|
- spec/app/models/mdm/task_creds_spec.rb
|
539
543
|
- spec/app/models/mdm/task_host_spec.rb
|
540
544
|
- spec/app/models/mdm/task_service_spec.rb
|
545
|
+
- spec/app/models/mdm/task_sessions_spec.rb
|
541
546
|
- spec/app/models/mdm/task_spec.rb
|
542
547
|
- spec/app/models/mdm/user_spec.rb
|
543
548
|
- spec/app/models/mdm/vuln_attempt_spec.rb
|
@@ -620,6 +625,7 @@ test_files:
|
|
620
625
|
- spec/factories/mdm/task_creds.rb
|
621
626
|
- spec/factories/mdm/task_hosts.rb
|
622
627
|
- spec/factories/mdm/task_services.rb
|
628
|
+
- spec/factories/mdm/task_sessions.rb
|
623
629
|
- spec/factories/mdm/users.rb
|
624
630
|
- spec/factories/mdm/vuln_attempts.rb
|
625
631
|
- spec/factories/mdm/vuln_details.rb
|