erp_tech_svcs 3.1.8 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +6 -14
  2. data/README.md +15 -9
  3. data/app/controllers/erp_tech_svcs/session_controller.rb +21 -8
  4. data/app/controllers/erp_tech_svcs/user_controller.rb +15 -10
  5. data/app/mailers/user_mailer.rb +3 -0
  6. data/app/models/audit_log.rb +0 -2
  7. data/app/models/extensions/note.rb +1 -2
  8. data/app/models/extensions/party.rb +6 -1
  9. data/app/models/file_asset.rb +80 -38
  10. data/app/models/group.rb +1 -1
  11. data/app/models/notification.rb +49 -0
  12. data/app/models/notification_type.rb +5 -0
  13. data/app/models/user.rb +2 -2
  14. data/app/models/user_defined_data.rb +6 -0
  15. data/app/models/user_defined_field.rb +8 -0
  16. data/app/views/user_mailer/activation_needed_email.html.erb +17 -7
  17. data/config/initializers/file_support.rb +2 -2
  18. data/config/routes.rb +2 -1
  19. data/db/migrate/20130610163240_create_notifications.rb +37 -0
  20. data/db/migrate/20131113213843_add_audit_log_item_old_value.rb +13 -0
  21. data/db/migrate/20131113213844_add_erp_tech_svcs_missing_indexes.rb +31 -0
  22. data/db/migrate/20131129203603_add_user_defined_fields.rb +43 -0
  23. data/db/migrate/20141013060204_add_custom_fields_to_notifications.rb +12 -0
  24. data/db/migrate/20141108182427_add_scoped_by_to_file_assets.rb +14 -0
  25. data/lib/erp_tech_svcs.rb +4 -1
  26. data/lib/erp_tech_svcs/config.rb +5 -2
  27. data/lib/erp_tech_svcs/engine.rb +3 -1
  28. data/lib/erp_tech_svcs/extensions.rb +3 -1
  29. data/lib/erp_tech_svcs/extensions/active_record/has_user_defined_data.rb +147 -0
  30. data/lib/erp_tech_svcs/extensions/active_record/is_json.rb +55 -0
  31. data/lib/erp_tech_svcs/extensions/active_record/scoped_by.rb +64 -0
  32. data/lib/erp_tech_svcs/file_support/file_system_manager.rb +7 -0
  33. data/lib/erp_tech_svcs/file_support/manager.rb +1 -1
  34. data/lib/erp_tech_svcs/file_support/s3_manager.rb +13 -6
  35. data/lib/erp_tech_svcs/utils/default_nested_set_methods.rb +3 -5
  36. data/lib/erp_tech_svcs/version.rb +7 -3
  37. data/lib/tasks/erp_tech_svcs_tasks.rake +23 -4
  38. data/spec/lib/erp_tech_svcs/extensions/active_record/is_json_spec.rb +13 -0
  39. metadata +109 -78
  40. data/app/assets/javascripts/erp_tech_svcs/application.js +0 -9
  41. data/app/assets/stylesheets/erp_tech_svcs/application.css +0 -7
  42. data/app/helpers/erp_tech_svcs/application_helper.rb +0 -4
  43. data/app/views/layouts/application.html.erb +0 -14
  44. data/app/views/layouts/erp_tech_svcs/application.html.erb +0 -14
  45. data/config/initializers/erp_tech_svcs.rb +0 -16
  46. data/db/migrate/20111117183144_create_has_attribute_tables.rb +0 -38
  47. data/lib/erp_tech_svcs/extensions/active_record/has_relational_dynamic_attributes.rb +0 -128
  48. data/spec/dummy/db/data_migrations/20130220143304_add_usd_currency.erp_base_erp_svcs.rb +0 -12
  49. data/spec/dummy/db/data_migrations/20130220143305_add_iso_codes.erp_base_erp_svcs.rb +0 -19
  50. data/spec/dummy/db/data_migrations/20130220143306_setup_compass_ae_instance.erp_base_erp_svcs.rb +0 -21
  51. data/spec/dummy/db/data_migrations/20130220143307_upgrade_compass_ae_instances_data.erp_base_erp_svcs.rb +0 -19
  52. data/spec/dummy/db/data_migrations/20130220143308_create_capability_scope_types.erp_tech_svcs.rb +0 -15
  53. data/spec/dummy/db/data_migrations/20130220143309_schedule_delete_expired_sessions_job.erp_tech_svcs.rb +0 -16
  54. data/spec/dummy/db/data_migrations/20130220143310_setup_audit_log_types.erp_tech_svcs.rb +0 -22
  55. data/spec/dummy/db/data_migrations/20130220143311_create_group_relationship_and_role_types.erp_tech_svcs.rb +0 -20
  56. data/spec/dummy/db/data_migrations/20130220143312_note_capabilities.erp_tech_svcs.rb +0 -24
  57. data/spec/dummy/db/data_migrations/20130422151256_add_guid_to_instances.erp_base_erp_svcs.rb +0 -10
  58. data/spec/dummy/db/migrate/20130220143259_base_erp_services.erp_base_erp_svcs.rb +0 -486
  59. data/spec/dummy/db/migrate/20130220143260_add_txn_status.erp_base_erp_svcs.rb +0 -37
  60. data/spec/dummy/db/migrate/20130220143261_upgrade_compass_ae_instances.erp_base_erp_svcs.rb +0 -34
  61. data/spec/dummy/db/migrate/20130220143262_base_tech_services.erp_tech_svcs.rb +0 -271
  62. data/spec/dummy/db/migrate/20130220143263_create_has_attribute_tables.erp_tech_svcs.rb +0 -39
  63. data/spec/dummy/db/migrate/20130220143264_create_groups.erp_tech_svcs.rb +0 -19
  64. data/spec/dummy/db/migrate/20130220143265_upgrade_security.erp_tech_svcs.rb +0 -54
  65. data/spec/dummy/db/migrate/20130220143266_upgrade_security2.erp_tech_svcs.rb +0 -275
  66. data/spec/dummy/db/migrate/20130422151250_add_uuid_compass_ae_instance.erp_base_erp_svcs.rb +0 -17
  67. data/spec/dummy/db/migrate/20130422151251_add_long_lat_to_address.erp_base_erp_svcs.rb +0 -16
  68. data/spec/dummy/db/migrate/20130422151252_add_queue_to_delayed_jobs.erp_tech_svcs.rb +0 -14
  69. data/spec/dummy/db/schema.rb +0 -665
  70. data/spec/dummy/db/spec.sqlite3 +0 -0
@@ -1,37 +0,0 @@
1
- # This migration comes from erp_base_erp_svcs (originally 20120606183856)
2
- class AddTxnStatus < ActiveRecord::Migration
3
- def up
4
- unless table_exists?(:status_applications)
5
- create_table :status_applications do |t|
6
- t.references :tracked_status_type
7
- t.references :status_application_record, :polymorphic => true
8
- t.datetime :from_date
9
- t.datetime :thru_date
10
-
11
- t.timestamps
12
- end
13
-
14
- add_index :status_applications, [:status_application_record_id, :status_application_record_type], :name => 'status_applications_record_idx'
15
- add_index :status_applications, :tracked_status_type_id, :name => 'tracked_status_type_id_idx'
16
- add_index :status_applications, :from_date, :name => 'from_date_idx'
17
- add_index :status_applications, :thru_date, :name => 'thru_date_idx'
18
- end
19
-
20
- unless table_exists?(:tracked_status_types)
21
- create_table :tracked_status_types do |t|
22
- t.string :description
23
- t.string :internal_identifier
24
- t.string :external_identifier
25
-
26
- t.timestamps
27
- end
28
-
29
- add_index :tracked_status_types, :internal_identifier, :name => 'tracked_status_types_iid_idx'
30
- end
31
- end
32
-
33
- def down
34
- drop_table :status_applications if table_exists?(:status_applications)
35
- drop_table :tracked_status_types if table_exists?(:tracked_status_types)
36
- end
37
- end
@@ -1,34 +0,0 @@
1
- # This migration comes from erp_base_erp_svcs (originally 20130211444444)
2
- # This migration comes from erp_base_erp_svcs (originally 20130211444444)
3
- class UpgradeCompassAeInstances < ActiveRecord::Migration
4
- def self.up
5
- unless columns(:compass_ae_instances).collect {|c| c.name}.include?('type')
6
- add_column :compass_ae_instances, :description, :string
7
- add_column :compass_ae_instances, :internal_identifier, :string
8
- add_column :compass_ae_instances, :type, :string
9
- add_column :compass_ae_instances, :schema, :string, :default => 'public'
10
- add_column :compass_ae_instances, :parent_id, :integer
11
-
12
- add_index :compass_ae_instances, :internal_identifier, :name => "iid_idx"
13
- add_index :compass_ae_instances, :schema, :name => "schema_idx"
14
- add_index :compass_ae_instances, :type, :name => "type_idx"
15
- add_index :compass_ae_instances, :parent_id, :name => "parent_id_idx"
16
- end
17
- end
18
-
19
- unless table_exists?(:compass_ae_instance_party_roles)
20
- create_table :compass_ae_instance_party_roles do |t|
21
- t.string :description
22
- t.integer :compass_ae_instance_id
23
- t.integer :party_id
24
- t.integer :role_type_id
25
-
26
- t.timestamps
27
- end
28
-
29
- add_index :compass_ae_instance_party_roles, :compass_ae_instance_id, :name => "compass_ae_instance_id_idx"
30
- add_index :compass_ae_instance_party_roles, :party_id, :name => "party_id_idx"
31
- add_index :compass_ae_instance_party_roles, :role_type_id, :name => "role_type_id_idx"
32
- end
33
-
34
- end
@@ -1,271 +0,0 @@
1
- # This migration comes from erp_tech_svcs (originally 20080805000010)
2
- class BaseTechServices < ActiveRecord::Migration
3
- def self.up
4
- unless table_exists?(:users)
5
- # Create the users table
6
- create_table :users do |t|
7
- t.string :username
8
- t.string :email
9
- t.references :party
10
- t.string :type
11
- t.string :salt, :default => nil
12
- t.string :crypted_password, :default => nil
13
-
14
- #activity logging
15
- t.datetime :last_login_at, :default => nil
16
- t.datetime :last_logout_at, :default => nil
17
- t.datetime :last_activity_at, :default => nil
18
-
19
- #brute force protection
20
- t.integer :failed_logins_count, :default => 0
21
- t.datetime :lock_expires_at, :default => nil
22
-
23
- #remember me
24
- t.string :remember_me_token, :default => nil
25
- t.datetime :remember_me_token_expires_at, :default => nil
26
-
27
- #reset password
28
- t.string :reset_password_token, :default => nil
29
- t.datetime :reset_password_token_expires_at, :default => nil
30
- t.datetime :reset_password_email_sent_at, :default => nil
31
-
32
- #user activation
33
- t.string :activation_state, :default => nil
34
- t.string :activation_token, :default => nil
35
- t.datetime :activation_token_expires_at, :default => nil
36
-
37
- t.string :security_question_1
38
- t.string :security_answer_1
39
- t.string :security_question_2
40
- t.string :security_answer_2
41
-
42
- t.timestamps
43
- end
44
- add_index :users, :email, :unique => true
45
- add_index :users, :username, :unique => true
46
- add_index :users, [:last_logout_at, :last_activity_at], :name => 'activity_idx'
47
- add_index :users, :remember_me_token
48
- add_index :users, :reset_password_token
49
- add_index :users, :activation_token
50
-
51
- end
52
-
53
- unless table_exists?(:groups)
54
- create_table :groups do |t|
55
- t.column :description, :string
56
- t.timestamps
57
- end
58
- end
59
-
60
- unless table_exists?(:security_roles)
61
- # create the roles table
62
- create_table :security_roles do |t|
63
- t.column :description, :string
64
- t.column :internal_identifier, :string
65
- t.column :external_identifier, :string
66
- t.column :external_id_source, :string
67
-
68
- t.timestamps
69
- end
70
- end
71
-
72
- unless table_exists?(:sessions)
73
- # Create sessions table
74
- create_table :sessions do |t|
75
- t.string :session_id, :null => false
76
- t.text :data
77
- t.timestamps
78
- end
79
- add_index :sessions, :session_id
80
- add_index :sessions, :updated_at
81
- end
82
-
83
- unless table_exists?(:audit_logs)
84
- # Create audit_logs
85
- create_table :audit_logs do |t|
86
- t.string :application
87
- t.string :description
88
- t.integer :party_id
89
- t.text :additional_info
90
- t.references :audit_log_type
91
-
92
- #polymorphic columns
93
- t.references :event_record, :polymorphic => true
94
-
95
- t.timestamps
96
- end
97
- add_index :audit_logs, :party_id
98
- add_index :audit_logs, [:event_record_id, :event_record_type], :name => 'event_record_index'
99
- end
100
-
101
- unless table_exists?(:audit_log_types)
102
- # Create audit_logs
103
- create_table :audit_log_types do |t|
104
- t.string :description
105
- t.string :error_code
106
- t.string :comments
107
- t.string :internal_identifier
108
- t.string :external_identifier
109
- t.string :external_id_source
110
-
111
- #better nested set columns
112
- t.integer :parent_id
113
- t.integer :lft
114
- t.integer :rgt
115
-
116
- t.timestamps
117
- end
118
- end
119
-
120
- unless table_exists?(:audit_log_items)
121
- # Create audit_log_items
122
- create_table :audit_log_items do |t|
123
- t.references :audit_log
124
- t.references :audit_log_item_type
125
- t.string :audit_log_item_value
126
- t.string :description
127
-
128
- t.timestamps
129
- end
130
- end
131
-
132
- unless table_exists?(:audit_log_item_types)
133
- # Create audit_log_item_types
134
- create_table :audit_log_item_types do |t|
135
- t.string :internal_identifier
136
- t.string :external_identifier
137
- t.string :external_id_source
138
- t.string :description
139
- t.string :comments
140
-
141
- #better nested set columns
142
- t.integer :parent_id
143
- t.integer :lft
144
- t.integer :rgt
145
-
146
- t.timestamps
147
- end
148
- end
149
-
150
- unless table_exists?(:file_assets)
151
- create_table :file_assets do |t|
152
- t.references :file_asset_holder, :polymorphic => true
153
- t.string :type
154
- t.string :name
155
- t.string :directory
156
- t.string :data_file_name
157
- t.string :data_content_type
158
- t.integer :data_file_size
159
- t.datetime :data_updated_at
160
- t.string :width
161
- t.string :height
162
-
163
- t.timestamps
164
- end
165
- add_index :file_assets, :type
166
- add_index :file_assets, [:file_asset_holder_id, :file_asset_holder_type], :name => 'file_asset_holder_idx'
167
- add_index :file_assets, :name
168
- add_index :file_assets, :directory
169
- end
170
-
171
- unless table_exists?(:delayed_jobs)
172
- create_table :delayed_jobs, :force => true do |table|
173
- table.integer :priority, :default => 0 # Allows some jobs to jump to the front of the queue
174
- table.integer :attempts, :default => 0 # Provides for retries, but still fail eventually.
175
- table.text :handler # YAML-encoded string of the object that will do work
176
- table.text :last_error # reason for last failure (See Note below)
177
- table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future.
178
- table.datetime :locked_at # Set when a client is working on this object
179
- table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
180
- table.string :locked_by # Who is working on this object (if locked)
181
- table.string :queue
182
- table.timestamps
183
- end
184
- add_index :delayed_jobs, [:priority, :run_at], :name => 'delayed_jobs_priority'
185
- end
186
-
187
- unless table_exists?(:capable_models)
188
- # create the roles table
189
- create_table :capable_models do |t|
190
- t.references :capable_model_record, :polymorphic => true
191
-
192
- t.timestamps
193
- end
194
-
195
- add_index :capable_models, [:capable_model_record_id, :capable_model_record_type], :name => 'capable_model_record_idx'
196
- end
197
-
198
- unless table_exists?(:capability_types)
199
- # create the roles table
200
- create_table :capability_types do |t|
201
- t.string :internal_identifier
202
- t.string :description
203
- t.timestamps
204
- end
205
- end
206
-
207
- unless table_exists?(:capabilities)
208
- # create the roles table
209
- create_table :capabilities do |t|
210
- t.string :description
211
- t.references :capability_type
212
- t.string :capability_resource_type
213
- t.integer :capability_resource_id
214
- t.integer :scope_type_id
215
- t.text :scope_query
216
- t.timestamps
217
- end
218
-
219
- add_index :capabilities, :capability_type_id
220
- add_index :capabilities, :scope_type_id
221
- add_index :capabilities, [:capability_resource_id, :capability_resource_type], :name => 'capability_resource_index'
222
- end
223
-
224
- unless table_exists?(:capability_accessors)
225
- create_table :capability_accessors do |t|
226
- t.string :capability_accessor_record_type
227
- t.integer :capability_accessor_record_id
228
- t.integer :capability_id
229
- t.timestamps
230
- end
231
-
232
- add_index :capability_accessors, :capability_id
233
- add_index :capability_accessors, [:capability_accessor_record_id, :capability_accessor_record_type], :name => 'capability_accessor_record_index'
234
- end
235
-
236
- unless table_exists?(:scope_types)
237
- create_table :scope_types do |t|
238
- t.string :description
239
- t.string :internal_identifier
240
- t.timestamps
241
- end
242
-
243
- add_index :scope_types, :internal_identifier
244
- end
245
-
246
- unless table_exists?(:parties_security_roles)
247
- create_table :parties_security_roles, :id => false do |t|
248
- t.integer :party_id
249
- t.integer :security_role_id
250
- end
251
-
252
- add_index :parties_security_roles, :party_id
253
- add_index :parties_security_roles, :security_role_id
254
- end
255
-
256
- end
257
-
258
- def self.down
259
- # check that each table exists before trying to delete it.
260
- [ :groups,
261
- :audit_logs, :sessions, :simple_captcha_data,
262
- :capability_accessors, :capability_types, :capabilities,:scope_types,
263
- :parties_security_roles, :roles, :audit_log_items, :audit_log_item_types,
264
- :users, :file_assets, :delayed_jobs
265
- ].each do |tbl|
266
- if table_exists?(tbl)
267
- drop_table tbl
268
- end
269
- end
270
- end
271
- end
@@ -1,39 +0,0 @@
1
- # This migration comes from erp_tech_svcs (originally 20111117183144)
2
- class CreateHasAttributeTables < ActiveRecord::Migration
3
- def up
4
- unless table_exists?(:attribute_types)
5
- create_table :attribute_types do |t|
6
- t.string :internal_identifier
7
- t.string :description
8
- t.string :data_type
9
-
10
- t.timestamps
11
- end
12
-
13
- add_index :attribute_types, :internal_identifier, :name => ':attribute_types_iid_idx'
14
- end
15
- unless table_exists?(:attribute_values)
16
- create_table :attribute_values do |t|
17
- t.integer :attributed_record_id
18
- t.string :attributed_record_type
19
- t.references :attribute_type
20
- t.string :value
21
-
22
- t.timestamps
23
- end
24
-
25
- add_index :attribute_values, [:attributed_record_id, :attributed_record_type], :name => 'attribute_values_attributed_record_idx'
26
- add_index :attribute_values, :attribute_type_id, :name => 'attribute_values_attributed_type_idx'
27
- add_index :attribute_values, :value, :name => 'attribute_values_value_idx'
28
- end
29
- end
30
-
31
- def down
32
- if table_exists?(:attribute_types)
33
- drop_table :attribute_types
34
- end
35
- if table_exists?(:attribute_values)
36
- drop_table :attribute_values
37
- end
38
- end
39
- end
@@ -1,19 +0,0 @@
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
@@ -1,54 +0,0 @@
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