mtdevise 5.0.0 → 5.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -20
  3. data/README.md +90 -90
  4. data/Rakefile +33 -33
  5. data/app/assets/config/mtdevise_manifest.js +2 -2
  6. data/app/assets/javascripts/mtdevise/application.js +2 -2
  7. data/app/assets/stylesheets/mtdevise/application.scss +2 -2
  8. data/app/controllers/mtdevise/account/dashboard_controller.rb +14 -14
  9. data/app/controllers/mtdevise/account/users_controller.rb +32 -32
  10. data/app/controllers/mtdevise/accounts_controller.rb +63 -63
  11. data/app/controllers/mtdevise/application_controller.rb +63 -63
  12. data/app/controllers/mtdevise/dashboard_controller.rb +14 -14
  13. data/app/controllers/mtdevise/welcome_controller.rb +11 -11
  14. data/app/extenders/controllers/application_controller_extender.rb +8 -8
  15. data/app/extenders/mtdevise/constraints/subdomain_required.rb +11 -11
  16. data/app/helpers/mtdevise/application_helper.rb +24 -24
  17. data/app/jobs/mtdevise/application_job.rb +3 -3
  18. data/app/mailers/mtdevise/application_mailer.rb +7 -7
  19. data/app/models/concerns/mtdevise/user_storage.rb +12 -12
  20. data/app/models/mtdevise/account.rb +47 -47
  21. data/app/models/mtdevise/application_record.rb +4 -4
  22. data/app/models/mtdevise/member.rb +8 -8
  23. data/app/models/mtdevise/user.rb +18 -18
  24. data/app/views/devise/confirmations/new.html.erb +23 -23
  25. data/app/views/devise/mailer/confirmation_instructions.html.erb +2 -2
  26. data/app/views/devise/mailer/reset_password_instructions.html.erb +4 -4
  27. data/app/views/devise/mailer/unlock_instructions.html.erb +3 -3
  28. data/app/views/devise/passwords/edit.html.erb +28 -28
  29. data/app/views/devise/passwords/new.html.erb +23 -23
  30. data/app/views/devise/registrations/edit.html.erb +18 -18
  31. data/app/views/devise/registrations/new.html.erb +31 -31
  32. data/app/views/devise/sessions/new.html.erb +31 -31
  33. data/app/views/devise/shared/_links.html.erb +21 -21
  34. data/app/views/devise/unlocks/new.html.erb +25 -25
  35. data/app/views/layouts/mtdevise/accounts.html.erb +15 -15
  36. data/app/views/layouts/mtdevise/accountsindex.html.erb +15 -15
  37. data/app/views/layouts/mtdevise/application.html.erb +15 -15
  38. data/app/views/layouts/mtdevise/dashboard.html.erb +16 -16
  39. data/app/views/layouts/mtdevise/signin.html.erb +15 -15
  40. data/app/views/layouts/mtdevise/signup.html.erb +15 -15
  41. data/app/views/layouts/mtdevise/useredit.html.erb +15 -15
  42. data/app/views/layouts/mtdevise/welcome.html.erb +15 -15
  43. data/app/views/mtdevise/account/dashboard/index.html.erb +1 -1
  44. data/app/views/mtdevise/account/sessions/new.html.erb +15 -15
  45. data/app/views/mtdevise/account/users/_form.html.erb +11 -11
  46. data/app/views/mtdevise/account/users/new.html.erb +5 -5
  47. data/app/views/mtdevise/accounts/index.html.erb +30 -30
  48. data/app/views/mtdevise/accounts/new.html.erb +80 -80
  49. data/app/views/mtdevise/dashboard/index.html.erb +1 -1
  50. data/app/views/mtdevise/welcome/index.html.erb +18 -18
  51. data/app/views/shared/_flash.html.erb +10 -10
  52. data/app/views/shared/_header.html.erb +19 -19
  53. data/app/views/shared/_validation.html.erb +10 -10
  54. data/config/initializers/assets.rb +2 -2
  55. data/config/initializers/devise.rb +279 -279
  56. data/config/initializers/devise/strategies/subdomain.rb +26 -26
  57. data/config/locales/devise.en.yml +60 -60
  58. data/config/routes.rb +22 -22
  59. data/db/migrate/20150426071228_create_mtdevise_accounts.rb +11 -11
  60. data/db/migrate/20150426115631_add_owner_id_to_mtdevise_accounts.rb +7 -7
  61. data/db/migrate/20150426115910_create_mtdevise_users.rb +12 -12
  62. data/db/migrate/20150426143800_add_devise_to_mtdevise_users.rb +50 -50
  63. data/db/migrate/20150427200506_add_subdomain_to_mtdevise_accounts.rb +8 -8
  64. data/db/migrate/20150428110406_create_mtdevise_members.rb +12 -12
  65. data/db/migrate/20150504181830_add_confirmed_at_to_users.rb +10 -10
  66. data/db/migrate/20150719125100_add_authentication_token_to_mtdevise_users.rb +8 -8
  67. data/db/migrate/20151231043439_add_firstname_to_mtdevise_accounts.rb +9 -9
  68. data/lib/generators/mtdevise/views_generator.rb +60 -60
  69. data/lib/mtdevise.rb +4 -4
  70. data/lib/mtdevise/active_record_extensions.rb +15 -15
  71. data/lib/mtdevise/engine.rb +51 -51
  72. data/lib/mtdevise/scoped_to.rb +9 -9
  73. data/lib/mtdevise/version.rb +3 -3
  74. data/lib/tasks/mtdevise_tasks.rake +4 -4
  75. data/lib/templates/erb/scaffold/_form.html.erb +15 -15
  76. metadata +50 -8
@@ -1,8 +1,8 @@
1
- class AddAuthenticationTokenToMtdeviseUsers < ActiveRecord::Migration[5.0]
2
- def change
3
-
4
- add_column :mtdevise_users, :authentication_token, :string
5
- add_index :mtdevise_users, :authentication_token
6
-
7
- end
8
- end
1
+ class AddAuthenticationTokenToMtdeviseUsers < ActiveRecord::Migration[5.0]
2
+ def change
3
+
4
+ add_column :mtdevise_users, :authentication_token, :string
5
+ add_index :mtdevise_users, :authentication_token
6
+
7
+ end
8
+ end
@@ -1,9 +1,9 @@
1
- class AddFirstnameToMtdeviseAccounts < ActiveRecord::Migration[5.0]
2
- def change
3
-
4
- add_column :mtdevise_accounts, :firstname, :string
5
- add_column :mtdevise_accounts, :lastname, :string
6
- add_column :mtdevise_accounts, :username, :string
7
-
8
- end
9
- end
1
+ class AddFirstnameToMtdeviseAccounts < ActiveRecord::Migration[5.0]
2
+ def change
3
+
4
+ add_column :mtdevise_accounts, :firstname, :string
5
+ add_column :mtdevise_accounts, :lastname, :string
6
+ add_column :mtdevise_accounts, :username, :string
7
+
8
+ end
9
+ end
@@ -1,60 +1,60 @@
1
- require 'rails/generators/base'
2
-
3
- module Mtdevise
4
- module Generators
5
-
6
- module ViewPathTemplates
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
- class_option :views, aliases: "-v", type: :array, desc: "Select specific view directories to generate (devise, layouts, mtdevise)"
11
- public_task :copy_views
12
- end
13
-
14
- # module ClassMethods
15
- # def hide!
16
- # Rails::Generators.hide_namespace self.namespace
17
- # end
18
- # end
19
-
20
- def copy_views
21
- if options[:views]
22
- options[:views].each do |directory|
23
- view_directory directory.to_sym
24
- end
25
- else
26
- view_directory :devise
27
- view_directory :layouts
28
- view_directory :shared
29
- view_directory :mtdevise
30
- end
31
- end
32
-
33
- protected
34
-
35
- def view_directory(name, _target_path = nil)
36
- directory name.to_s, _target_path || "#{target_path}/#{name}" do |content|
37
- content
38
- end
39
- end
40
-
41
- def target_path
42
- @target_path ||= "app/views"
43
- end
44
-
45
- end
46
-
47
- class SharedViewsGenerator < Rails::Generators::Base
48
- include ViewPathTemplates
49
- source_root File.expand_path("../../../../app/views", __FILE__)
50
- desc "Copies Mtdevise views to your application."
51
- hide!
52
- end
53
-
54
- class ViewsGenerator < Rails::Generators::Base
55
- desc "Copies Mtdevise views to your application."
56
- invoke SharedViewsGenerator
57
- end
58
-
59
- end
60
- end
1
+ require 'rails/generators/base'
2
+
3
+ module Mtdevise
4
+ module Generators
5
+
6
+ module ViewPathTemplates
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ class_option :views, aliases: "-v", type: :array, desc: "Select specific view directories to generate (devise, layouts, mtdevise)"
11
+ public_task :copy_views
12
+ end
13
+
14
+ # module ClassMethods
15
+ # def hide!
16
+ # Rails::Generators.hide_namespace self.namespace
17
+ # end
18
+ # end
19
+
20
+ def copy_views
21
+ if options[:views]
22
+ options[:views].each do |directory|
23
+ view_directory directory.to_sym
24
+ end
25
+ else
26
+ view_directory :devise
27
+ view_directory :layouts
28
+ view_directory :shared
29
+ view_directory :mtdevise
30
+ end
31
+ end
32
+
33
+ protected
34
+
35
+ def view_directory(name, _target_path = nil)
36
+ directory name.to_s, _target_path || "#{target_path}/#{name}" do |content|
37
+ content
38
+ end
39
+ end
40
+
41
+ def target_path
42
+ @target_path ||= "app/views"
43
+ end
44
+
45
+ end
46
+
47
+ class SharedViewsGenerator < Rails::Generators::Base
48
+ include ViewPathTemplates
49
+ source_root File.expand_path("../../../../app/views", __FILE__)
50
+ desc "Copies Mtdevise views to your application."
51
+ hide!
52
+ end
53
+
54
+ class ViewsGenerator < Rails::Generators::Base
55
+ desc "Copies Mtdevise views to your application."
56
+ invoke SharedViewsGenerator
57
+ end
58
+
59
+ end
60
+ end
@@ -1,4 +1,4 @@
1
- require "mtdevise/engine"
2
-
3
- module Mtdevise
4
- end
1
+ require "mtdevise/engine"
2
+
3
+ module Mtdevise
4
+ end
@@ -1,15 +1,15 @@
1
- ActiveRecord::Base.class_eval do
2
-
3
- def self.scoped_to_account
4
- belongs_to :account, :class_name => "Mtdevise::Account"
5
- association_name = self.to_s.downcase.pluralize
6
- Mtdevise::Account.has_many association_name.to_sym, :class_name => self.to_s
7
-
8
- instance_eval <<-HERE
9
- def scoped_to(account)
10
- where(:account_id => account.id)
11
- end
12
- HERE
13
- end
14
-
15
- end
1
+ ActiveRecord::Base.class_eval do
2
+
3
+ def self.scoped_to_account
4
+ belongs_to :account, :class_name => "Mtdevise::Account"
5
+ association_name = self.to_s.downcase.pluralize
6
+ Mtdevise::Account.has_many association_name.to_sym, :class_name => self.to_s
7
+
8
+ instance_eval <<-HERE
9
+ def scoped_to(account)
10
+ where(:account_id => account.id)
11
+ end
12
+ HERE
13
+ end
14
+
15
+ end
@@ -1,51 +1,51 @@
1
- # Load Required Dependencies
2
- require 'mtdevise/active_record_extensions'
3
- require 'mtdevise/scoped_to'
4
-
5
- # Data and Accounts
6
- require 'devise'
7
- require 'houser'
8
- require 'simple_token_authentication'
9
-
10
- # Frontend & UI
11
- require 'jquery-rails'
12
- require 'sass-rails'
13
- require 'bootstrap-sass'
14
- require 'font-awesome-rails'
15
- require 'gravtastic'
16
- require 'phctitleseo'
17
- require 'phcnotifi'
18
-
19
- module Mtdevise
20
- class Engine < ::Rails::Engine
21
-
22
- #Isolate Name
23
- isolate_namespace Mtdevise
24
-
25
- # Houser Gem
26
- initializer 'mtdevise.middleware.houser' do
27
- Rails.application.config.middleware.use Houser::Middleware, :class_name => 'Mtdevise::Account'
28
- end
29
-
30
- # Testing and Rspec
31
- config.generators do |g|
32
- g.test_framework :rspec, :view_specs => false
33
- end
34
-
35
- config.to_prepare do
36
- root = Mtdevise::Engine.root
37
- extenders_path = root + "app/extenders/**/*.rb"
38
- Dir.glob(extenders_path) do |file|
39
- Rails.configuration.cache_classes ? require(file) : load(file)
40
- end
41
- end
42
-
43
- # Load Helper Files
44
- config.to_prepare do
45
- ApplicationController.helper(ApplicationHelper)
46
- Phcnotifi::ApplicationController.helper(ApplicationHelper)
47
- Phctitleseo::ApplicationController.helper(ApplicationHelper)
48
- end
49
-
50
- end
51
- end
1
+ # Load Required Dependencies
2
+ require 'mtdevise/active_record_extensions'
3
+ require 'mtdevise/scoped_to'
4
+
5
+ # Data and Accounts
6
+ require 'devise'
7
+ require 'houser'
8
+ require 'simple_token_authentication'
9
+
10
+ # Frontend & UI
11
+ require 'jquery-rails'
12
+ require 'sass-rails'
13
+ require 'bootstrap-sass'
14
+ require 'font-awesome-rails'
15
+ require 'gravtastic'
16
+ require 'phctitleseo'
17
+ require 'phcnotifi'
18
+
19
+ module Mtdevise
20
+ class Engine < ::Rails::Engine
21
+
22
+ #Isolate Name
23
+ isolate_namespace Mtdevise
24
+
25
+ # Houser Gem
26
+ initializer 'mtdevise.middleware.houser' do
27
+ Rails.application.config.middleware.use Houser::Middleware, :class_name => 'Mtdevise::Account'
28
+ end
29
+
30
+ # Testing and Rspec
31
+ config.generators do |g|
32
+ g.test_framework :rspec, :view_specs => false
33
+ end
34
+
35
+ config.to_prepare do
36
+ root = Mtdevise::Engine.root
37
+ extenders_path = root + "app/extenders/**/*.rb"
38
+ Dir.glob(extenders_path) do |file|
39
+ Rails.configuration.cache_classes ? require(file) : load(file)
40
+ end
41
+ end
42
+
43
+ # Load Helper Files
44
+ config.to_prepare do
45
+ ApplicationController.helper(ApplicationHelper)
46
+ Phcnotifi::ApplicationController.helper(ApplicationHelper)
47
+ Phctitleseo::ApplicationController.helper(ApplicationHelper)
48
+ end
49
+
50
+ end
51
+ end
@@ -1,9 +1,9 @@
1
- module Mtdevise
2
- module ScopedTo
3
-
4
- def scoped_to(account)
5
- where(:account_id => account.id)
6
- end
7
-
8
- end
9
- end
1
+ module Mtdevise
2
+ module ScopedTo
3
+
4
+ def scoped_to(account)
5
+ where(:account_id => account.id)
6
+ end
7
+
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
- module Mtdevise
2
- VERSION = '5.0.0'
3
- end
1
+ module Mtdevise
2
+ VERSION = '5.0.1'
3
+ end
@@ -1,4 +1,4 @@
1
- # desc "Explaining what the task does"
2
- # task :mtdevise do
3
- # # Task goes here
4
- # end
1
+ # desc "Explaining what the task does"
2
+ # task :mtdevise do
3
+ # # Task goes here
4
+ # end
@@ -1,15 +1,15 @@
1
- <%%= form_for(@<%= singular_table_name %>) do |f| %>
2
-
3
- <%%= f.error_notification %>
4
-
5
- <div class="form-inputs">
6
- <%- attributes.each do |attribute| -%>
7
- <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
8
- <%- end -%>
9
- </div>
10
-
11
- <div class="form-actions">
12
- <%%= f.button :submit %>
13
- </div>
14
-
15
- <%% end %>
1
+ <%%= form_for(@<%= singular_table_name %>) do |f| %>
2
+
3
+ <%%= f.error_notification %>
4
+
5
+ <div class="form-inputs">
6
+ <%- attributes.each do |attribute| -%>
7
+ <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
8
+ <%- end -%>
9
+ </div>
10
+
11
+ <div class="form-actions">
12
+ <%%= f.button :submit %>
13
+ </div>
14
+
15
+ <%% end %>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtdevise
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - BradPotts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-15 00:00:00.000000000 Z
11
+ date: 2017-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -219,6 +219,9 @@ dependencies:
219
219
  - - "~>"
220
220
  - !ruby/object:Gem::Version
221
221
  version: '4.6'
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: 4.6.1
222
225
  type: :runtime
223
226
  prerelease: false
224
227
  version_requirements: !ruby/object:Gem::Requirement
@@ -226,6 +229,9 @@ dependencies:
226
229
  - - "~>"
227
230
  - !ruby/object:Gem::Version
228
231
  version: '4.6'
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: 4.6.1
229
235
  - !ruby/object:Gem::Dependency
230
236
  name: oj
231
237
  requirement: !ruby/object:Gem::Requirement
@@ -235,7 +241,7 @@ dependencies:
235
241
  version: '3.0'
236
242
  - - ">="
237
243
  - !ruby/object:Gem::Version
238
- version: 3.0.7
244
+ version: 3.0.9
239
245
  type: :runtime
240
246
  prerelease: false
241
247
  version_requirements: !ruby/object:Gem::Requirement
@@ -245,7 +251,7 @@ dependencies:
245
251
  version: '3.0'
246
252
  - - ">="
247
253
  - !ruby/object:Gem::Version
248
- version: 3.0.7
254
+ version: 3.0.9
249
255
  - !ruby/object:Gem::Dependency
250
256
  name: rabl
251
257
  requirement: !ruby/object:Gem::Requirement
@@ -315,6 +321,9 @@ dependencies:
315
321
  - - "~>"
316
322
  - !ruby/object:Gem::Version
317
323
  version: '1.8'
324
+ - - ">="
325
+ - !ruby/object:Gem::Version
326
+ version: 1.8.1
318
327
  type: :runtime
319
328
  prerelease: false
320
329
  version_requirements: !ruby/object:Gem::Requirement
@@ -322,6 +331,9 @@ dependencies:
322
331
  - - "~>"
323
332
  - !ruby/object:Gem::Version
324
333
  version: '1.8'
334
+ - - ">="
335
+ - !ruby/object:Gem::Version
336
+ version: 1.8.1
325
337
  - !ruby/object:Gem::Dependency
326
338
  name: friendly_id
327
339
  requirement: !ruby/object:Gem::Requirement
@@ -377,6 +389,9 @@ dependencies:
377
389
  - - "~>"
378
390
  - !ruby/object:Gem::Version
379
391
  version: '14.0'
392
+ - - ">="
393
+ - !ruby/object:Gem::Version
394
+ version: 14.0.1
380
395
  type: :runtime
381
396
  prerelease: false
382
397
  version_requirements: !ruby/object:Gem::Requirement
@@ -384,6 +399,9 @@ dependencies:
384
399
  - - "~>"
385
400
  - !ruby/object:Gem::Version
386
401
  version: '14.0'
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: 14.0.1
387
405
  - !ruby/object:Gem::Dependency
388
406
  name: phctheme2
389
407
  requirement: !ruby/object:Gem::Requirement
@@ -391,6 +409,9 @@ dependencies:
391
409
  - - "~>"
392
410
  - !ruby/object:Gem::Version
393
411
  version: '5.0'
412
+ - - ">="
413
+ - !ruby/object:Gem::Version
414
+ version: 5.0.1
394
415
  type: :runtime
395
416
  prerelease: false
396
417
  version_requirements: !ruby/object:Gem::Requirement
@@ -398,6 +419,9 @@ dependencies:
398
419
  - - "~>"
399
420
  - !ruby/object:Gem::Version
400
421
  version: '5.0'
422
+ - - ">="
423
+ - !ruby/object:Gem::Version
424
+ version: 5.0.1
401
425
  - !ruby/object:Gem::Dependency
402
426
  name: phcadmin1
403
427
  requirement: !ruby/object:Gem::Requirement
@@ -405,6 +429,9 @@ dependencies:
405
429
  - - "~>"
406
430
  - !ruby/object:Gem::Version
407
431
  version: '10.0'
432
+ - - ">="
433
+ - !ruby/object:Gem::Version
434
+ version: 10.0.1
408
435
  type: :runtime
409
436
  prerelease: false
410
437
  version_requirements: !ruby/object:Gem::Requirement
@@ -412,6 +439,9 @@ dependencies:
412
439
  - - "~>"
413
440
  - !ruby/object:Gem::Version
414
441
  version: '10.0'
442
+ - - ">="
443
+ - !ruby/object:Gem::Version
444
+ version: 10.0.1
415
445
  - !ruby/object:Gem::Dependency
416
446
  name: phcadmin2
417
447
  requirement: !ruby/object:Gem::Requirement
@@ -419,6 +449,9 @@ dependencies:
419
449
  - - "~>"
420
450
  - !ruby/object:Gem::Version
421
451
  version: '8.0'
452
+ - - ">="
453
+ - !ruby/object:Gem::Version
454
+ version: 8.0.1
422
455
  type: :runtime
423
456
  prerelease: false
424
457
  version_requirements: !ruby/object:Gem::Requirement
@@ -426,6 +459,9 @@ dependencies:
426
459
  - - "~>"
427
460
  - !ruby/object:Gem::Version
428
461
  version: '8.0'
462
+ - - ">="
463
+ - !ruby/object:Gem::Version
464
+ version: 8.0.1
429
465
  - !ruby/object:Gem::Dependency
430
466
  name: phcadmin3
431
467
  requirement: !ruby/object:Gem::Requirement
@@ -433,6 +469,9 @@ dependencies:
433
469
  - - "~>"
434
470
  - !ruby/object:Gem::Version
435
471
  version: '5.0'
472
+ - - ">="
473
+ - !ruby/object:Gem::Version
474
+ version: 5.0.1
436
475
  type: :runtime
437
476
  prerelease: false
438
477
  version_requirements: !ruby/object:Gem::Requirement
@@ -440,6 +479,9 @@ dependencies:
440
479
  - - "~>"
441
480
  - !ruby/object:Gem::Version
442
481
  version: '5.0'
482
+ - - ">="
483
+ - !ruby/object:Gem::Version
484
+ version: 5.0.1
443
485
  - !ruby/object:Gem::Dependency
444
486
  name: devise
445
487
  requirement: !ruby/object:Gem::Requirement
@@ -834,8 +876,8 @@ dependencies:
834
876
  - - "~>"
835
877
  - !ruby/object:Gem::Version
836
878
  version: 2.7.0.rc1
837
- description: mtdevise(3) adds multi-tenant basecamp style user logins (multi-tenant
838
- authetication using devise) to your ruby on rails application.
879
+ description: MTDevise(5) Rails 5.1 engine that adds multi-tenant basecamp style user
880
+ logins (multi-tenant authetication using devise) to your ruby on rails application.
839
881
  email:
840
882
  - info@phcnetworks.net
841
883
  executables: []
@@ -936,8 +978,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
936
978
  version: '0'
937
979
  requirements: []
938
980
  rubyforge_project:
939
- rubygems_version: 2.6.8
981
+ rubygems_version: 2.6.12
940
982
  signing_key:
941
983
  specification_version: 4
942
- summary: Multi-Tenant Rails Engine Using Devise
984
+ summary: Rails 5.1 Engine - MTDevise(5)
943
985
  test_files: []