rails_db_admin 2.0.4 → 2.1.0
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/report.rb +3 -0
- data/lib/rails_db_admin/connection_handler.rb +11 -13
- data/lib/rails_db_admin/version.rb +2 -2
- data/lib/tasks/rails_db_admin_tasks.rake +4 -4
- data/spec/controllers/rails_db_admin/erp_app/desktop/base_controller_spec.rb +8 -8
- data/spec/controllers/rails_db_admin/erp_app/desktop/queries_controller_spec.rb +4 -3
- data/spec/dummy/config/application.rb +6 -0
- data/spec/dummy/config/environments/spec.rb +3 -0
- data/spec/dummy/db/data_migrations/20110109173616_create_capability_scope_types.erp_tech_svcs.rb +15 -0
- data/spec/dummy/db/data_migrations/20110525001935_add_usd_currency.erp_base_erp_svcs.rb +12 -0
- data/spec/dummy/db/data_migrations/20110608185830_create_default_dynamic_models_and_forms.erp_forms.rb +33 -0
- data/spec/dummy/db/data_migrations/20110609150135_add_iso_codes.erp_base_erp_svcs.rb +19 -0
- data/spec/dummy/db/data_migrations/20110728201729_erp_app_setup.erp_app.rb +252 -0
- data/spec/dummy/db/data_migrations/20110728201733_update_preferences.erp_app.rb +53 -0
- data/spec/dummy/db/data_migrations/20110802200222_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +16 -0
- data/spec/dummy/db/data_migrations/20110816005525_rails_db_admin_application.rails_db_admin.rb +32 -0
- data/spec/dummy/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.erp_app.rb +21 -0
- data/spec/dummy/db/data_migrations/20110817160743_add_file_manager_application.erp_app.rb +32 -0
- data/spec/dummy/db/data_migrations/20110828190913_create_desktop_app_dynamic_forms.erp_forms.rb +19 -0
- data/spec/dummy/db/data_migrations/20110913145838_setup_compass_ae_instance.erp_base_erp_svcs.rb +12 -0
- data/spec/dummy/db/data_migrations/20111108183739_add_default_capabilities.erp_app.rb +23 -0
- data/spec/dummy/db/data_migrations/20111108183740_add_new_contact_widgets.erp_app.rb +42 -0
- data/spec/dummy/db/data_migrations/20111111144706_setup_audit_log_types.erp_tech_svcs.rb +22 -0
- data/spec/dummy/db/data_migrations/20120109173616_create_download_capability_type.erp_tech_svcs.rb +14 -0
- data/spec/dummy/db/data_migrations/20120229160222_add_userinfo_widget.erp_app.rb +29 -0
- data/spec/dummy/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.erp_app.rb +11 -0
- data/spec/dummy/db/data_migrations/20120411180756_create_user_management_mobile_application.erp_app.rb +19 -0
- data/spec/dummy/db/data_migrations/20120418164215_create_configuration_management_desktop_application.erp_app.rb +23 -0
- data/spec/dummy/db/data_migrations/20120824013449_create_ticket_form.erp_forms.rb +67 -0
- data/spec/dummy/db/data_migrations/20121026013449_update_ticket_form.erp_forms.rb +65 -0
- data/spec/dummy/db/data_migrations/20121026191738_update_contact_form.erp_forms.rb +27 -0
- data/spec/dummy/db/data_migrations/20121116155018_create_group_relationship_and_role_types.erp_tech_svcs.rb +20 -0
- data/spec/dummy/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.erp_app.rb +16 -0
- data/spec/dummy/db/data_migrations/20121130212146_note_capabilities.erp_tech_svcs.rb +24 -0
- data/spec/dummy/db/data_migrations/20121218175028_create_security_management_desktop_application.erp_app.rb +23 -0
- data/spec/dummy/db/migrate/20121219201515_base_erp_services.erp_base_erp_svcs.rb +461 -0
- data/spec/dummy/db/migrate/20121219201516_base_tech_services.erp_tech_svcs.rb +255 -0
- data/spec/dummy/db/migrate/20121219201517_create_has_attribute_tables.erp_tech_svcs.rb +39 -0
- data/spec/dummy/db/migrate/20121219201518_base_app_framework.erp_app.rb +276 -0
- data/spec/dummy/db/migrate/20121219201519_dynamic_forms.erp_forms.rb +95 -0
- data/spec/dummy/db/migrate/20121219201520_create_tickets.erp_forms.rb +19 -0
- data/spec/dummy/db/migrate/20121219201521_upgrade_dynamic_forms_table.erp_forms.rb +32 -0
- data/spec/dummy/db/migrate/20121227215524_add_reports.rails_db_admin.rb +21 -0
- data/spec/dummy/db/migrate/20130107181642_create_groups.erp_tech_svcs.rb +19 -0
- data/spec/dummy/db/migrate/20130107181643_upgrade_security.erp_tech_svcs.rb +54 -0
- data/spec/dummy/db/migrate/20130107181644_upgrade_security2.erp_tech_svcs.rb +270 -0
- data/spec/dummy/db/schema.rb +888 -0
- data/spec/dummy/db/spec.sqlite3 +0 -0
- data/spec/dummy/log/spec.log +38042 -0
- data/spec/lib/rails_db_admin/extjs/json_column_builder_spec.rb +2 -3
- data/spec/lib/rails_db_admin/table_support_spec.rb +1 -1
- data/spec/spec_helper.rb +18 -15
- metadata +107 -9
@@ -0,0 +1,95 @@
|
|
1
|
+
# This migration comes from erp_forms (originally 20110530193446)
|
2
|
+
class DynamicForms < ActiveRecord::Migration
|
3
|
+
def self.up
|
4
|
+
unless table_exists?(:dynamic_form_models)
|
5
|
+
create_table :dynamic_form_models do |t|
|
6
|
+
t.string :model_name
|
7
|
+
t.boolean :show_in_multitask, :default => false
|
8
|
+
t.boolean :allow_comments, :default => true
|
9
|
+
t.boolean :allow_files, :default => true
|
10
|
+
t.string :file_security_default, :default => 'private'
|
11
|
+
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
unless table_exists?(:dynamic_form_documents)
|
17
|
+
create_table :dynamic_form_documents do |t|
|
18
|
+
t.integer :dynamic_form_model_id
|
19
|
+
t.string :type
|
20
|
+
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
|
24
|
+
add_index :dynamic_form_documents, :dynamic_form_model_id
|
25
|
+
add_index :dynamic_form_documents, :type
|
26
|
+
end
|
27
|
+
|
28
|
+
unless table_exists?(:dynamic_forms)
|
29
|
+
create_table :dynamic_forms do |t|
|
30
|
+
t.string :description
|
31
|
+
t.text :definition
|
32
|
+
t.integer :dynamic_form_model_id
|
33
|
+
t.string :model_name
|
34
|
+
t.string :internal_identifier
|
35
|
+
t.boolean :default
|
36
|
+
t.string :widget_action, :default => 'save'
|
37
|
+
t.string :widget_email_recipients
|
38
|
+
t.boolean :focus_first_field, :default => true
|
39
|
+
t.boolean :submit_empty_text, :default => false
|
40
|
+
t.string :msg_target, :default => 'qtip'
|
41
|
+
t.string :submit_button_label, :default => 'Submit'
|
42
|
+
t.string :cancel_button_label, :default => 'Cancel'
|
43
|
+
t.text :comment
|
44
|
+
|
45
|
+
t.integer :created_by_id
|
46
|
+
t.integer :updated_by_id
|
47
|
+
|
48
|
+
t.timestamps
|
49
|
+
end
|
50
|
+
|
51
|
+
add_index :dynamic_forms, :created_by_id
|
52
|
+
add_index :dynamic_forms, :updated_by_id
|
53
|
+
add_index :dynamic_forms, :dynamic_form_model_id
|
54
|
+
add_index :dynamic_forms, :model_name
|
55
|
+
add_index :dynamic_forms, :internal_identifier
|
56
|
+
end
|
57
|
+
|
58
|
+
unless table_exists?(:dynamic_data)
|
59
|
+
create_table :dynamic_data do |t|
|
60
|
+
t.string :reference_type
|
61
|
+
t.integer :reference_id
|
62
|
+
t.text :dynamic_attributes
|
63
|
+
|
64
|
+
t.integer :created_with_form_id
|
65
|
+
t.integer :updated_with_form_id
|
66
|
+
|
67
|
+
t.integer :created_by_id
|
68
|
+
t.integer :updated_by_id
|
69
|
+
|
70
|
+
t.timestamps
|
71
|
+
end
|
72
|
+
|
73
|
+
add_index :dynamic_data, :created_with_form_id
|
74
|
+
add_index :dynamic_data, :updated_with_form_id
|
75
|
+
add_index :dynamic_data, :created_by_id
|
76
|
+
add_index :dynamic_data, :updated_by_id
|
77
|
+
add_index :dynamic_data, :reference_type
|
78
|
+
add_index :dynamic_data, :reference_id
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
def self.down
|
84
|
+
[ :dynamic_form_models,
|
85
|
+
:dynamic_form_documents,
|
86
|
+
:dynamic_forms,
|
87
|
+
:dynamic_data
|
88
|
+
].each do |tbl|
|
89
|
+
if table_exists?(tbl)
|
90
|
+
drop_table tbl
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This migration comes from erp_forms (originally 20120824012520)
|
2
|
+
class CreateTickets < ActiveRecord::Migration
|
3
|
+
|
4
|
+
def up
|
5
|
+
unless table_exists?(:tickets)
|
6
|
+
create_table :tickets do |t|
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
def down
|
14
|
+
if table_exists?(:tickets)
|
15
|
+
drop_table :tickets
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# This migration comes from erp_forms (originally 20121007022323)
|
2
|
+
class UpgradeDynamicFormsTable < ActiveRecord::Migration
|
3
|
+
def self.up
|
4
|
+
add_column :dynamic_form_models, :show_in_multitask, :boolean, :default => false unless columns(:dynamic_form_models).collect {|c| c.name}.include?('show_in_multitask')
|
5
|
+
add_column :dynamic_form_models, :allow_comments, :boolean, :default => true unless columns(:dynamic_form_models).collect {|c| c.name}.include?('allow_comments')
|
6
|
+
add_column :dynamic_form_models, :allow_files, :boolean, :default => true unless columns(:dynamic_form_models).collect {|c| c.name}.include?('allow_files')
|
7
|
+
add_column :dynamic_form_models, :file_security_default, :string, :default => 'private' unless columns(:dynamic_form_models).collect {|c| c.name}.include?('file_security_default')
|
8
|
+
add_column :dynamic_forms, :widget_action, :string, :default => 'save' unless columns(:dynamic_forms).collect {|c| c.name}.include?('widget_action')
|
9
|
+
add_column :dynamic_forms, :widget_email_recipients, :string unless columns(:dynamic_forms).collect {|c| c.name}.include?('widget_email_recipients')
|
10
|
+
add_column :dynamic_forms, :focus_first_field, :boolean, :default => true unless columns(:dynamic_forms).collect {|c| c.name}.include?('focus_first_field')
|
11
|
+
add_column :dynamic_forms, :submit_empty_text, :boolean, :default => false unless columns(:dynamic_forms).collect {|c| c.name}.include?('submit_empty_text')
|
12
|
+
add_column :dynamic_forms, :msg_target, :string, :default => 'qtip' unless columns(:dynamic_forms).collect {|c| c.name}.include?('msg_target')
|
13
|
+
add_column :dynamic_forms, :submit_button_label, :string, :default => 'Submit' unless columns(:dynamic_forms).collect {|c| c.name}.include?('submit_button_label')
|
14
|
+
add_column :dynamic_forms, :cancel_button_label, :string, :default => 'Cancel' unless columns(:dynamic_forms).collect {|c| c.name}.include?('cancel_button_label')
|
15
|
+
add_column :dynamic_forms, :comment, :text unless columns(:dynamic_forms).collect {|c| c.name}.include?('comment')
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.down
|
19
|
+
remove_column :dynamic_form_models, :show_in_multitask if columns(:dynamic_form_models).collect {|c| c.name}.include?('show_in_multitask')
|
20
|
+
remove_column :dynamic_form_models, :file_security_default if columns(:dynamic_form_models).collect {|c| c.name}.include?('file_security_default')
|
21
|
+
remove_column :dynamic_form_models, :allow_files if columns(:dynamic_form_models).collect {|c| c.name}.include?('allow_files')
|
22
|
+
remove_column :dynamic_form_models, :allow_comments if columns(:dynamic_form_models).collect {|c| c.name}.include?('allow_comments')
|
23
|
+
remove_column :dynamic_forms, :widget_action if columns(:dynamic_forms).collect {|c| c.name}.include?('widget_action')
|
24
|
+
remove_column :dynamic_forms, :widget_email_recipients if columns(:dynamic_forms).collect {|c| c.name}.include?('widget_email_recipients')
|
25
|
+
remove_column :dynamic_forms, :focus_first_field if columns(:dynamic_forms).collect {|c| c.name}.include?('focus_first_field')
|
26
|
+
remove_column :dynamic_forms, :submit_empty_text if columns(:dynamic_forms).collect {|c| c.name}.include?('submit_empty_text')
|
27
|
+
remove_column :dynamic_forms, :msg_target if columns(:dynamic_forms).collect {|c| c.name}.include?('msg_target')
|
28
|
+
remove_column :dynamic_forms, :submit_button_label if columns(:dynamic_forms).collect {|c| c.name}.include?('submit_button_label')
|
29
|
+
remove_column :dynamic_forms, :cancel_button_label if columns(:dynamic_forms).collect {|c| c.name}.include?('cancel_button_label')
|
30
|
+
remove_column :dynamic_forms, :comment if columns(:dynamic_forms).collect {|c| c.name}.include?('comment')
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This migration comes from rails_db_admin (originally 20121210160131)
|
2
|
+
class AddReports < ActiveRecord::Migration
|
3
|
+
def up
|
4
|
+
unless table_exists? :reports
|
5
|
+
create_table :reports do |t|
|
6
|
+
t.string :name
|
7
|
+
t.string :internal_identifier
|
8
|
+
t.text :template
|
9
|
+
t.text :query
|
10
|
+
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def down
|
17
|
+
if table.exists? :reports
|
18
|
+
drop_table :reports
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# This migration comes from erp_tech_svcs (originally 20121116151510)
|
2
|
+
class CreateGroups < ActiveRecord::Migration
|
3
|
+
def self.up
|
4
|
+
unless table_exists?(:groups)
|
5
|
+
create_table :groups do |t|
|
6
|
+
t.column :description, :string
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.down
|
13
|
+
[ :groups ].each do |tbl|
|
14
|
+
if table_exists?(tbl)
|
15
|
+
drop_table tbl
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# This migration comes from erp_tech_svcs (originally 20121126171612)
|
2
|
+
class UpgradeSecurity < ActiveRecord::Migration
|
3
|
+
|
4
|
+
def self.up
|
5
|
+
unless table_exists?(:capability_accessors)
|
6
|
+
create_table :capability_accessors do |t|
|
7
|
+
t.string :capability_accessor_record_type
|
8
|
+
t.integer :capability_accessor_record_id
|
9
|
+
t.integer :capability_id
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
|
13
|
+
add_index :capability_accessors, :capability_id
|
14
|
+
add_index :capability_accessors, [:capability_accessor_record_id, :capability_accessor_record_type], :name => 'capability_accessor_record_index'
|
15
|
+
end
|
16
|
+
|
17
|
+
unless columns(:capabilities).collect {|c| c.name}.include?('scope_query')
|
18
|
+
add_column :capabilities, :description, :string
|
19
|
+
add_column :capabilities, :capability_resource_type, :string
|
20
|
+
add_column :capabilities, :capability_resource_id, :integer
|
21
|
+
add_column :capabilities, :scope_type_id, :integer
|
22
|
+
add_column :capabilities, :scope_query, :text
|
23
|
+
|
24
|
+
add_index :capabilities, :scope_type_id
|
25
|
+
add_index :capabilities, [:capability_resource_id, :capability_resource_type], :name => 'capability_resource_index'
|
26
|
+
end
|
27
|
+
|
28
|
+
unless table_exists?(:scope_types)
|
29
|
+
create_table :scope_types do |t|
|
30
|
+
t.string :description
|
31
|
+
t.string :internal_identifier
|
32
|
+
t.timestamps
|
33
|
+
end
|
34
|
+
|
35
|
+
add_index :scope_types, :internal_identifier
|
36
|
+
end
|
37
|
+
|
38
|
+
unless table_exists?(:parties_security_roles)
|
39
|
+
create_table :parties_security_roles, :id => false do |t|
|
40
|
+
t.integer :party_id
|
41
|
+
t.integer :security_role_id
|
42
|
+
end
|
43
|
+
|
44
|
+
add_index :parties_security_roles, :party_id
|
45
|
+
add_index :parties_security_roles, :security_role_id
|
46
|
+
end
|
47
|
+
|
48
|
+
rename_table :roles, :security_roles unless table_exists?(:security_roles)
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.down
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,270 @@
|
|
1
|
+
# This migration comes from erp_tech_svcs (originally 20121126173506)
|
2
|
+
class UpgradeSecurity2 < ActiveRecord::Migration
|
3
|
+
def self.up
|
4
|
+
if table_exists?(:secured_models)
|
5
|
+
Website.all.each do |w|
|
6
|
+
old_role_iid = "website_#{w.name.underscore.gsub("'","").gsub(",","")}_access"
|
7
|
+
|
8
|
+
r = SecurityRole.find_by_internal_identifier(old_role_iid)
|
9
|
+
unless r.nil?
|
10
|
+
r.internal_identifier = w.website_role_iid
|
11
|
+
r.save
|
12
|
+
end
|
13
|
+
end
|
14
|
+
instance = ScopeType.create(:description => 'Instance', :internal_identifier => 'instance')
|
15
|
+
class_scope_type = ScopeType.create(:description => 'Class', :internal_identifier => 'class')
|
16
|
+
ScopeType.create(:description => 'Query', :internal_identifier => 'query')
|
17
|
+
|
18
|
+
execute('BEGIN TRANSACTION')
|
19
|
+
puts "populating parties_security_roles"
|
20
|
+
sql =
|
21
|
+
"INSERT INTO parties_security_roles (
|
22
|
+
party_id,
|
23
|
+
security_role_id
|
24
|
+
)
|
25
|
+
SELECT
|
26
|
+
u.party_id AS party_id,
|
27
|
+
rsm.role_id AS security_role_id
|
28
|
+
FROM secured_models sm
|
29
|
+
JOIN roles_secured_models rsm ON sm.id=rsm.secured_model_id
|
30
|
+
JOIN users u ON sm.secured_record_id=u.id
|
31
|
+
WHERE sm.secured_record_type='User'"
|
32
|
+
|
33
|
+
execute(sql)
|
34
|
+
execute('COMMIT')
|
35
|
+
|
36
|
+
execute('BEGIN TRANSACTION')
|
37
|
+
puts "populating capabilities with secure File Assets"
|
38
|
+
sql =
|
39
|
+
"INSERT INTO capabilities (
|
40
|
+
capability_type_id,
|
41
|
+
capability_resource_type,
|
42
|
+
capability_resource_id,
|
43
|
+
scope_type_id
|
44
|
+
)
|
45
|
+
SELECT
|
46
|
+
c.capability_type_id AS capability_type_id,
|
47
|
+
'FileAsset' AS capability_resource_type,
|
48
|
+
cm.capable_model_record_id AS capability_resource_id,
|
49
|
+
#{instance.id} AS scope_type_id
|
50
|
+
FROM capable_models AS cm
|
51
|
+
JOIN capabilities_capable_models AS ccm ON ccm.capable_model_id = cm.id
|
52
|
+
JOIN capabilities AS c ON ccm.capability_id = c.id
|
53
|
+
JOIN secured_models AS sm ON sm.secured_record_id = c.id AND sm.secured_record_type = 'Capability'
|
54
|
+
JOIN roles_secured_models AS rsm ON rsm.secured_model_id = sm.id
|
55
|
+
JOIN security_roles AS r ON r.id = rsm.role_id
|
56
|
+
WHERE cm.capable_model_record_type = 'FileAsset'"
|
57
|
+
|
58
|
+
execute(sql)
|
59
|
+
execute('COMMIT')
|
60
|
+
|
61
|
+
view = CapabilityType.find_by_internal_identifier('view')
|
62
|
+
|
63
|
+
execute('BEGIN TRANSACTION')
|
64
|
+
puts "populating capabilities with secure Website Sections"
|
65
|
+
sql =
|
66
|
+
"INSERT INTO capabilities (
|
67
|
+
capability_type_id,
|
68
|
+
capability_resource_type,
|
69
|
+
capability_resource_id,
|
70
|
+
scope_type_id
|
71
|
+
)
|
72
|
+
SELECT
|
73
|
+
#{view.id} AS capability_type_id,
|
74
|
+
'WebsiteSection' AS capability_resource_type,
|
75
|
+
ws.id AS capability_resource_id,
|
76
|
+
#{instance.id} AS scope_type_id
|
77
|
+
FROM secured_models sm
|
78
|
+
JOIN roles_secured_models rsm ON sm.id=rsm.secured_model_id
|
79
|
+
JOIN website_sections ws ON sm.secured_record_id=ws.id
|
80
|
+
WHERE sm.secured_record_type='WebsiteSection'"
|
81
|
+
|
82
|
+
execute(sql)
|
83
|
+
execute('COMMIT')
|
84
|
+
|
85
|
+
execute('BEGIN TRANSACTION')
|
86
|
+
puts "populating capabilities with secure Website Nav Items"
|
87
|
+
sql =
|
88
|
+
"INSERT INTO capabilities (
|
89
|
+
capability_type_id,
|
90
|
+
capability_resource_type,
|
91
|
+
capability_resource_id,
|
92
|
+
scope_type_id
|
93
|
+
)
|
94
|
+
SELECT
|
95
|
+
#{view.id} AS capability_type_id,
|
96
|
+
'WebsiteNavItem' AS capability_resource_type,
|
97
|
+
ws.id AS capability_resource_id,
|
98
|
+
#{instance.id} AS scope_type_id
|
99
|
+
FROM secured_models sm
|
100
|
+
JOIN roles_secured_models rsm ON sm.id=rsm.secured_model_id
|
101
|
+
JOIN website_sections ws ON sm.secured_record_id=ws.id
|
102
|
+
WHERE sm.secured_record_type='WebsiteNavItem'"
|
103
|
+
|
104
|
+
execute(sql)
|
105
|
+
execute('COMMIT')
|
106
|
+
|
107
|
+
# delete obsolete records: Application, Widget, dupes?
|
108
|
+
Capability.where("capability_resource_type IS NULL").delete_all
|
109
|
+
|
110
|
+
admin = SecurityRole.find_by_internal_identifier('admin')
|
111
|
+
website_author = SecurityRole.find_by_internal_identifier('website_author')
|
112
|
+
layout_author = SecurityRole.find_by_internal_identifier('layout_author')
|
113
|
+
content_author = SecurityRole.find_by_internal_identifier('content_author')
|
114
|
+
designer = SecurityRole.find_by_internal_identifier('designer')
|
115
|
+
publisher = SecurityRole.find_by_internal_identifier('publisher')
|
116
|
+
|
117
|
+
# add instance capabilities to roles
|
118
|
+
instance_capabilities = Capability.where(:scope_type_id => instance.id).all
|
119
|
+
instance_capabilities.each do |c|
|
120
|
+
case c.capability_resource_type
|
121
|
+
when 'FileAsset'
|
122
|
+
admin.add_capability(c)
|
123
|
+
website_author.add_capability(c)
|
124
|
+
content_author.add_capability(c)
|
125
|
+
if c.capability_resource.file_asset_holder_type == 'Website'
|
126
|
+
website_role = c.capability_resource.file_asset_holder.role
|
127
|
+
website_role.add_capability(c)
|
128
|
+
end
|
129
|
+
when 'WebsiteSection'
|
130
|
+
admin.add_capability(c)
|
131
|
+
website_author.add_capability(c)
|
132
|
+
website_role = c.capability_resource.website.role
|
133
|
+
website_role.add_capability(c)
|
134
|
+
when 'WebsiteNavItem'
|
135
|
+
admin.add_capability(c)
|
136
|
+
website_author.add_capability(c)
|
137
|
+
website_role = c.capability_resource.website_nav.website.role
|
138
|
+
website_role.add_capability(c)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
# add knitkit class capabilities to roles
|
143
|
+
admin.add_capability('create', 'WebsiteNav')
|
144
|
+
admin.add_capability('delete', 'WebsiteNav')
|
145
|
+
admin.add_capability('edit', 'WebsiteNav')
|
146
|
+
|
147
|
+
website_author.add_capability('create', 'WebsiteNav')
|
148
|
+
website_author.add_capability('delete', 'WebsiteNav')
|
149
|
+
website_author.add_capability('edit', 'WebsiteNav')
|
150
|
+
|
151
|
+
admin.add_capability('create', 'Website')
|
152
|
+
admin.add_capability('delete', 'Website')
|
153
|
+
admin.add_capability('edit', 'Website')
|
154
|
+
admin.add_capability('import', 'Website')
|
155
|
+
admin.add_capability('publish', 'Website')
|
156
|
+
admin.add_capability('activate', 'Website')
|
157
|
+
|
158
|
+
website_author.add_capability('create', 'Website')
|
159
|
+
website_author.add_capability('delete', 'Website')
|
160
|
+
website_author.add_capability('edit', 'Website')
|
161
|
+
website_author.add_capability('import', 'Website')
|
162
|
+
publisher.add_capability('publish', 'Website')
|
163
|
+
publisher.add_capability('activate', 'Website')
|
164
|
+
|
165
|
+
admin.add_capability('create', 'WebsiteHost')
|
166
|
+
admin.add_capability('delete', 'WebsiteHost')
|
167
|
+
admin.add_capability('edit', 'WebsiteHost')
|
168
|
+
|
169
|
+
website_author.add_capability('create', 'WebsiteHost')
|
170
|
+
website_author.add_capability('delete', 'WebsiteHost')
|
171
|
+
website_author.add_capability('edit', 'WebsiteHost')
|
172
|
+
|
173
|
+
admin.add_capability('create', 'WebsiteSection')
|
174
|
+
admin.add_capability('delete', 'WebsiteSection')
|
175
|
+
admin.add_capability('edit', 'WebsiteSection')
|
176
|
+
admin.add_capability('secure', 'WebsiteSection')
|
177
|
+
admin.add_capability('unsecure', 'WebsiteSection')
|
178
|
+
|
179
|
+
website_author.add_capability('create', 'WebsiteSection')
|
180
|
+
website_author.add_capability('delete', 'WebsiteSection')
|
181
|
+
website_author.add_capability('edit', 'WebsiteSection')
|
182
|
+
website_author.add_capability('secure', 'WebsiteSection')
|
183
|
+
website_author.add_capability('unsecure', 'WebsiteSection')
|
184
|
+
|
185
|
+
admin.add_capability('create', 'WebsiteSectionLayout')
|
186
|
+
admin.add_capability('edit', 'WebsiteSectionLayout')
|
187
|
+
|
188
|
+
layout_author.add_capability('create', 'WebsiteSectionLayout')
|
189
|
+
layout_author.add_capability('edit', 'WebsiteSectionLayout')
|
190
|
+
|
191
|
+
admin.add_capability('create', 'Content')
|
192
|
+
admin.add_capability('delete', 'Content')
|
193
|
+
admin.add_capability('edit', 'Content')
|
194
|
+
admin.add_capability('publish', 'Content')
|
195
|
+
admin.add_capability('revert_version', 'Content')
|
196
|
+
admin.add_capability('add_existing', 'Content')
|
197
|
+
admin.add_capability('edit_html', 'Content')
|
198
|
+
admin.add_capability('edit_excerpt', 'Content')
|
199
|
+
|
200
|
+
content_author.add_capability('create', 'Content')
|
201
|
+
content_author.add_capability('delete', 'Content')
|
202
|
+
content_author.add_capability('edit', 'Content')
|
203
|
+
content_author.add_capability('publish', 'Content')
|
204
|
+
content_author.add_capability('revert_version', 'Content')
|
205
|
+
content_author.add_capability('add_existing', 'Content')
|
206
|
+
content_author.add_capability('edit_html', 'Content')
|
207
|
+
content_author.add_capability('edit_excerpt', 'Content')
|
208
|
+
|
209
|
+
admin.add_capability('create', 'WebsiteNavItem')
|
210
|
+
admin.add_capability('delete', 'WebsiteNavItem')
|
211
|
+
admin.add_capability('edit', 'WebsiteNavItem')
|
212
|
+
admin.add_capability('secure', 'WebsiteNavItem')
|
213
|
+
admin.add_capability('unsecure', 'WebsiteNavItem')
|
214
|
+
|
215
|
+
website_author.add_capability('create', 'WebsiteNavItem')
|
216
|
+
website_author.add_capability('delete', 'WebsiteNavItem')
|
217
|
+
website_author.add_capability('edit', 'WebsiteNavItem')
|
218
|
+
website_author.add_capability('secure', 'WebsiteNavItem')
|
219
|
+
website_author.add_capability('unsecure', 'WebsiteNavItem')
|
220
|
+
|
221
|
+
admin.add_capability('view', 'Theme')
|
222
|
+
designer.add_capability('view', 'Theme')
|
223
|
+
|
224
|
+
admin.add_capability('view', 'SiteImageAsset')
|
225
|
+
website_author.add_capability('view', 'SiteImageAsset')
|
226
|
+
content_author.add_capability('view', 'SiteImageAsset')
|
227
|
+
|
228
|
+
content_author.add_capability('view', 'GlobalImageAsset')
|
229
|
+
|
230
|
+
admin.add_capability('view', 'GlobalImageAsset')
|
231
|
+
admin.add_capability('upload', 'GlobalImageAsset')
|
232
|
+
admin.add_capability('delete', 'GlobalImageAsset')
|
233
|
+
|
234
|
+
website_author.add_capability('view', 'GlobalImageAsset')
|
235
|
+
website_author.add_capability('upload', 'GlobalImageAsset')
|
236
|
+
website_author.add_capability('delete', 'GlobalImageAsset')
|
237
|
+
|
238
|
+
admin.add_capability('view', 'SiteFileAsset')
|
239
|
+
website_author.add_capability('view', 'SiteFileAsset')
|
240
|
+
content_author.add_capability('view', 'SiteFileAsset')
|
241
|
+
|
242
|
+
content_author.add_capability('view', 'GlobalFileAsset')
|
243
|
+
|
244
|
+
admin.add_capability('view', 'GlobalFileAsset')
|
245
|
+
admin.add_capability('upload', 'GlobalFileAsset')
|
246
|
+
admin.add_capability('delete', 'GlobalFileAsset')
|
247
|
+
|
248
|
+
website_author.add_capability('view', 'GlobalFileAsset')
|
249
|
+
website_author.add_capability('upload', 'GlobalFileAsset')
|
250
|
+
website_author.add_capability('delete', 'GlobalFileAsset')
|
251
|
+
|
252
|
+
admin.add_capability('drag_item', 'WebsiteTree')
|
253
|
+
website_author.add_capability('drag_item', 'WebsiteTree')
|
254
|
+
|
255
|
+
# update capability descriptions
|
256
|
+
Capability.all.each do |c|
|
257
|
+
c.update_description
|
258
|
+
end
|
259
|
+
|
260
|
+
drop_table :capable_models
|
261
|
+
drop_table :capabilities_capable_models
|
262
|
+
drop_table :secured_models
|
263
|
+
drop_table :roles_secured_models
|
264
|
+
remove_column :capabilities, :resource
|
265
|
+
end
|
266
|
+
end
|
267
|
+
|
268
|
+
def self.down
|
269
|
+
end
|
270
|
+
end
|