typus 3.0.8 → 3.0.9

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.
Files changed (102) hide show
  1. data/Gemfile +8 -1
  2. data/README.md +2 -2
  3. data/Rakefile +6 -14
  4. data/app/controllers/admin/base_controller.rb +1 -1
  5. data/app/controllers/admin/dashboard_controller.rb +0 -1
  6. data/app/controllers/admin/resources_controller.rb +8 -11
  7. data/app/controllers/admin/session_controller.rb +5 -4
  8. data/app/helpers/admin/base_helper.rb +9 -2
  9. data/app/helpers/admin/dashboard_helper.rb +0 -6
  10. data/app/helpers/admin/display_helper.rb +1 -0
  11. data/app/helpers/admin/file_preview_helper.rb +0 -2
  12. data/app/helpers/admin/filters_helper.rb +6 -3
  13. data/app/helpers/admin/form_helper.rb +2 -4
  14. data/app/helpers/admin/list_helper.rb +1 -3
  15. data/app/helpers/admin/relationships_helper.rb +2 -4
  16. data/app/helpers/admin/resources_helper.rb +0 -2
  17. data/app/helpers/admin/search_helper.rb +0 -2
  18. data/app/helpers/admin/sidebar_helper.rb +0 -2
  19. data/app/helpers/admin/table_helper.rb +3 -6
  20. data/app/views/admin/account/forgot_password.html.erb +2 -2
  21. data/app/views/admin/account/new.html.erb +3 -7
  22. data/app/views/admin/{helpers/dashboard → dashboard}/_applications.html.erb +0 -0
  23. data/app/views/admin/dashboard/_sidebar.html.erb +1 -1
  24. data/app/views/admin/dashboard/show.html.erb +7 -1
  25. data/app/views/admin/helpers/base/_apps.html.erb +1 -1
  26. data/app/views/admin/helpers/base/_login_info.html.erb +2 -2
  27. data/app/views/admin/helpers/filters/_filters.html.erb +3 -1
  28. data/app/views/admin/resources/_form.html.erb +5 -2
  29. data/app/views/admin/resources/edit.html.erb +1 -1
  30. data/app/views/admin/resources/index.html.erb +1 -1
  31. data/app/views/admin/resources/show.html.erb +2 -2
  32. data/app/views/admin/session/new.html.erb +3 -7
  33. data/app/views/admin/templates/_belongs_to.html.erb +8 -1
  34. data/app/views/admin/templates/_belongs_to_with_autocomplete.html.erb +1 -1
  35. data/app/views/admin/templates/_relate_form.html.erb +1 -1
  36. data/app/views/admin/templates/_relate_form_with_autocomplete.html.erb +3 -1
  37. data/app/views/admin/templates/_string.html.erb +1 -1
  38. data/app/views/admin/templates/_text.html.erb +1 -1
  39. data/app/views/layouts/admin/base.html.erb +2 -0
  40. data/app/views/layouts/admin/headless.html.erb +2 -0
  41. data/app/views/layouts/admin/session.html.erb +6 -0
  42. data/config/routes.rb +4 -1
  43. data/lib/support/active_record.rb +0 -10
  44. data/lib/support/fake_user.rb +4 -6
  45. data/lib/support/object.rb +4 -0
  46. data/lib/support/string.rb +0 -8
  47. data/lib/typus.rb +2 -3
  48. data/lib/typus/authentication/base.rb +0 -1
  49. data/lib/typus/authentication/session.rb +22 -29
  50. data/lib/typus/orm/active_record.rb +5 -5
  51. data/lib/typus/orm/active_record/admin_user_v1.rb +93 -0
  52. data/lib/typus/orm/active_record/admin_user_v2.rb +49 -0
  53. data/lib/typus/orm/active_record/class_methods.rb +23 -143
  54. data/lib/typus/orm/active_record/user/instance_methods.rb +64 -0
  55. data/lib/typus/orm/base.rb +170 -0
  56. data/lib/typus/orm/mongo/class_methods.rb +11 -0
  57. data/lib/typus/resources.rb +2 -1
  58. data/lib/typus/version.rb +1 -1
  59. data/test/app/controllers/admin/account_controller_test.rb +4 -2
  60. data/test/app/controllers/admin/assets_controller_test.rb +12 -12
  61. data/test/app/controllers/admin/categories_controller_test.rb +5 -12
  62. data/test/app/controllers/admin/comments_controller_test.rb +1 -1
  63. data/test/app/controllers/admin/image_holders_controller_test.rb +1 -1
  64. data/test/app/controllers/admin/invoices_controller_test.rb +1 -1
  65. data/test/app/controllers/admin/posts_controller_test.rb +32 -32
  66. data/test/app/controllers/admin/projects_controller_test.rb +1 -1
  67. data/test/app/controllers/admin/typus_users_controller_test.rb +13 -17
  68. data/test/app/controllers/admin/users_controller_test.rb +9 -9
  69. data/test/app/helpers/admin/list_helper_test.rb +17 -0
  70. data/test/app/models/admin_user_test.rb +5 -0
  71. data/test/app/models/typus_user_roles_test.rb +1 -0
  72. data/test/app/models/typus_user_test.rb +45 -11
  73. data/test/factories.rb +1 -1
  74. data/test/fixtures/rails_app/app/controllers/admin/hits_controller.rb +40 -0
  75. data/test/fixtures/rails_app/app/controllers/admin_user.rb +3 -0
  76. data/test/fixtures/rails_app/app/models/asset.rb +0 -6
  77. data/test/fixtures/rails_app/app/models/hit.rb +27 -0
  78. data/test/fixtures/rails_app/app/views/admin/hits/_edit.html.erb +7 -0
  79. data/test/fixtures/rails_app/app/views/admin/hits/_index.html.erb +3 -0
  80. data/test/fixtures/rails_app/app/views/admin/hits/index.html.erb +28 -0
  81. data/test/fixtures/rails_app/config/boot.rb +3 -10
  82. data/test/fixtures/rails_app/config/deploy.rb +1 -1
  83. data/test/fixtures/rails_app/config/mongoid.yml +20 -0
  84. data/test/fixtures/rails_app/config/typus/crud_extended.yml +2 -0
  85. data/test/fixtures/rails_app/config/typus/mongo_db.yml +4 -0
  86. data/test/fixtures/rails_app/config/typus/mongo_db_roles.yml +2 -0
  87. data/test/fixtures/rails_app/db/schema.rb +11 -0
  88. data/test/lib/support/fake_user_test.rb +4 -0
  89. data/test/lib/support/string_test.rb +0 -18
  90. data/test/lib/typus/orm/active_record/class_methods_test.rb +14 -2
  91. data/test/lib/typus/orm/active_record/search_test.rb +1 -1
  92. data/test/lib/typus_test.rb +2 -1
  93. data/typus.gemspec +1 -1
  94. metadata +32 -45
  95. data/lib/typus/orm/active_record/instance_methods.rb +0 -13
  96. data/lib/typus/orm/active_record/user.rb +0 -157
  97. data/test/fixtures/rails_app/public/javascripts/application.js +0 -2
  98. data/test/fixtures/rails_app/public/javascripts/controls.js +0 -965
  99. data/test/fixtures/rails_app/public/javascripts/dragdrop.js +0 -974
  100. data/test/fixtures/rails_app/public/javascripts/effects.js +0 -1123
  101. data/test/fixtures/rails_app/public/javascripts/prototype.js +0 -6001
  102. data/test/fixtures/rails_app/public/javascripts/rails.js +0 -175
@@ -97,7 +97,7 @@ class ClassMethodsTest < ActiveSupport::TestCase
97
97
  ["password_confirmation", :password],
98
98
  ["locale", :selector]]
99
99
 
100
- assert_equal expected.map { |i| i.first }, TypusUser.typus_fields_for(:form).keys
100
+ assert_equal expected.map { |i| i.first }, TypusUser.typus_fields_for(:new).keys
101
101
  assert_equal expected.map { |i| i.last }, TypusUser.typus_fields_for(:form).values
102
102
  end
103
103
 
@@ -127,6 +127,16 @@ class ClassMethodsTest < ActiveSupport::TestCase
127
127
  assert_equal expected, TypusUser.typus_fields_for(:undefined).keys
128
128
  end
129
129
 
130
+ should "return fields for new Asset" do
131
+ expected = %w(dragonfly_required)
132
+ assert_equal expected, Asset.typus_fields_for(:new).keys
133
+ end
134
+
135
+ should "return fields for edit Asset" do
136
+ expected = %w(caption dragonfly dragonfly_required original_file_name)
137
+ assert_equal expected, Asset.typus_fields_for(:edit).keys
138
+ end
139
+
130
140
  should "work for transversal fields" do
131
141
  expected = [["email", :string],
132
142
  ["post", :belongs_to],
@@ -363,7 +373,9 @@ class ClassMethodsTest < ActiveSupport::TestCase
363
373
  should "return data for existing model" do
364
374
  expected = {"application"=>"CRUD Extended",
365
375
  "fields"=>{"default"=>"caption, dragonfly, dragonfly_required",
366
- "special"=>"caption, dragonfly, dragonfly_required, original_file_name"}}
376
+ "special"=>"caption, dragonfly, dragonfly_required, original_file_name",
377
+ "form"=>"caption, dragonfly, dragonfly_required, original_file_name",
378
+ "new"=>"dragonfly_required"}}
367
379
  assert_equal expected, Asset.read_model_config
368
380
  end
369
381
 
@@ -34,7 +34,7 @@ class ActiveRecordTest < ActiveSupport::TestCase
34
34
  end
35
35
 
36
36
  should "generate conditions for id" do
37
- Post.stubs(:typus_defaults_for).with(:search).returns(["id"])
37
+ Post.expects(:typus_defaults_for).with(:search).returns(["id"])
38
38
 
39
39
  expected = case ENV["DB"]
40
40
  when "postgresql"
@@ -71,7 +71,7 @@ class TypusTest < ActiveSupport::TestCase
71
71
  end
72
72
 
73
73
  should "return applications sorted" do
74
- expected = ["Admin", "CRUD", "CRUD Extended", "HasManyThrough", "HasOne", "Polymorphic", "STI"]
74
+ expected = ["Admin", "CRUD", "CRUD Extended", "HasManyThrough", "HasOne", "MongoDB", "Polymorphic", "STI"]
75
75
  assert_equal expected, Typus.applications
76
76
  end
77
77
 
@@ -89,6 +89,7 @@ class TypusTest < ActiveSupport::TestCase
89
89
  "Comment",
90
90
  "Dog",
91
91
  "Entry",
92
+ "Hit",
92
93
  "ImageHolder",
93
94
  "Invoice",
94
95
  "Order",
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
19
  s.require_paths = ["lib"]
21
20
 
21
+ s.add_dependency "bcrypt-ruby"
22
22
  s.add_dependency "fastercsv", "~> 1.5" if RUBY_VERSION < '1.9'
23
23
  s.add_dependency "render_inheritable"
24
24
  s.add_dependency "will_paginate", "~> 3.0.pre2"
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: typus
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease:
6
- segments:
7
- - 3
8
- - 0
9
- - 8
10
- version: 3.0.8
5
+ version: 3.0.9
11
6
  platform: ruby
12
7
  authors:
13
8
  - Francesc Esplugas
@@ -15,22 +10,18 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2011-02-15 00:00:00 +01:00
13
+ date: 2011-03-12 00:00:00 +01:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
22
- name: fastercsv
17
+ name: bcrypt-ruby
23
18
  prerelease: false
24
19
  requirement: &id001 !ruby/object:Gem::Requirement
25
20
  none: false
26
21
  requirements:
27
- - - ~>
22
+ - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 5
30
- segments:
31
- - 1
32
- - 5
33
- version: "1.5"
24
+ version: "0"
34
25
  type: :runtime
35
26
  version_requirements: *id001
36
27
  - !ruby/object:Gem::Dependency
@@ -41,9 +32,6 @@ dependencies:
41
32
  requirements:
42
33
  - - ">="
43
34
  - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
35
  version: "0"
48
36
  type: :runtime
49
37
  version_requirements: *id002
@@ -55,12 +43,6 @@ dependencies:
55
43
  requirements:
56
44
  - - ~>
57
45
  - !ruby/object:Gem::Version
58
- hash: 1923831917
59
- segments:
60
- - 3
61
- - 0
62
- - pre
63
- - 2
64
46
  version: 3.0.pre2
65
47
  type: :runtime
66
48
  version_requirements: *id003
@@ -102,6 +84,7 @@ files:
102
84
  - app/views/admin/account/forgot_password.html.erb
103
85
  - app/views/admin/account/new.html.erb
104
86
  - app/views/admin/base/user_guide.html.erb
87
+ - app/views/admin/dashboard/_applications.html.erb
105
88
  - app/views/admin/dashboard/_sidebar.html.erb
106
89
  - app/views/admin/dashboard/show.html.erb
107
90
  - app/views/admin/dashboard/styles.html.erb
@@ -110,7 +93,6 @@ files:
110
93
  - app/views/admin/helpers/base/_flash_message.html.erb
111
94
  - app/views/admin/helpers/base/_header.html.erb
112
95
  - app/views/admin/helpers/base/_login_info.html.erb
113
- - app/views/admin/helpers/dashboard/_applications.html.erb
114
96
  - app/views/admin/helpers/dashboard/_resources.html.erb
115
97
  - app/views/admin/helpers/filters/_filters.html.erb
116
98
  - app/views/admin/helpers/resources/_display_link_to_previous.html.erb
@@ -261,10 +243,13 @@ files:
261
243
  - lib/typus/engine.rb
262
244
  - lib/typus/i18n.rb
263
245
  - lib/typus/orm/active_record.rb
246
+ - lib/typus/orm/active_record/admin_user_v1.rb
247
+ - lib/typus/orm/active_record/admin_user_v2.rb
264
248
  - lib/typus/orm/active_record/class_methods.rb
265
- - lib/typus/orm/active_record/instance_methods.rb
266
249
  - lib/typus/orm/active_record/search.rb
267
- - lib/typus/orm/active_record/user.rb
250
+ - lib/typus/orm/active_record/user/instance_methods.rb
251
+ - lib/typus/orm/base.rb
252
+ - lib/typus/orm/mongo/class_methods.rb
268
253
  - lib/typus/regex.rb
269
254
  - lib/typus/resources.rb
270
255
  - lib/typus/version.rb
@@ -298,6 +283,7 @@ files:
298
283
  - test/app/helpers/admin/sidebar_helper_test.rb
299
284
  - test/app/helpers/admin/table_helper_test.rb
300
285
  - test/app/mailers/admin/mailer_test.rb
286
+ - test/app/models/admin_user_test.rb
301
287
  - test/app/models/typus_user_roles_test.rb
302
288
  - test/app/models/typus_user_test.rb
303
289
  - test/config/routes_test.rb
@@ -334,6 +320,7 @@ files:
334
320
  - test/fixtures/rails_app/app/controllers/admin/comments_controller.rb
335
321
  - test/fixtures/rails_app/app/controllers/admin/dogs_controller.rb
336
322
  - test/fixtures/rails_app/app/controllers/admin/entries_controller.rb
323
+ - test/fixtures/rails_app/app/controllers/admin/hits_controller.rb
337
324
  - test/fixtures/rails_app/app/controllers/admin/image_holders_controller.rb
338
325
  - test/fixtures/rails_app/app/controllers/admin/invoices_controller.rb
339
326
  - test/fixtures/rails_app/app/controllers/admin/orders_controller.rb
@@ -346,6 +333,7 @@ files:
346
333
  - test/fixtures/rails_app/app/controllers/admin/users_controller.rb
347
334
  - test/fixtures/rails_app/app/controllers/admin/views_controller.rb
348
335
  - test/fixtures/rails_app/app/controllers/admin/watch_dog_controller.rb
336
+ - test/fixtures/rails_app/app/controllers/admin_user.rb
349
337
  - test/fixtures/rails_app/app/controllers/application_controller.rb
350
338
  - test/fixtures/rails_app/app/helpers/application_helper.rb
351
339
  - test/fixtures/rails_app/app/helpers/form_helper.rb
@@ -359,6 +347,7 @@ files:
359
347
  - test/fixtures/rails_app/app/models/delayed/task.rb
360
348
  - test/fixtures/rails_app/app/models/dog.rb
361
349
  - test/fixtures/rails_app/app/models/entry.rb
350
+ - test/fixtures/rails_app/app/models/hit.rb
362
351
  - test/fixtures/rails_app/app/models/image_holder.rb
363
352
  - test/fixtures/rails_app/app/models/invoice.rb
364
353
  - test/fixtures/rails_app/app/models/order.rb
@@ -374,6 +363,9 @@ files:
374
363
  - test/fixtures/rails_app/app/views/admin/categories/_index.html.erb
375
364
  - test/fixtures/rails_app/app/views/admin/dashboard/_sidebar.html.erb
376
365
  - test/fixtures/rails_app/app/views/admin/entries/_index.html.erb
366
+ - test/fixtures/rails_app/app/views/admin/hits/_edit.html.erb
367
+ - test/fixtures/rails_app/app/views/admin/hits/_index.html.erb
368
+ - test/fixtures/rails_app/app/views/admin/hits/index.html.erb
377
369
  - test/fixtures/rails_app/app/views/admin/pages/_index.html.erb
378
370
  - test/fixtures/rails_app/app/views/admin/posts/_edit.html.erb
379
371
  - test/fixtures/rails_app/app/views/admin/posts/_index.html.erb
@@ -402,6 +394,7 @@ files:
402
394
  - test/fixtures/rails_app/config/initializers/typus.rb
403
395
  - test/fixtures/rails_app/config/initializers/typus_resources.rb
404
396
  - test/fixtures/rails_app/config/locales/en.yml
397
+ - test/fixtures/rails_app/config/mongoid.yml
405
398
  - test/fixtures/rails_app/config/routes.rb
406
399
  - test/fixtures/rails_app/config/typus/README
407
400
  - test/fixtures/rails_app/config/typus/crud_basic.yml
@@ -414,6 +407,8 @@ files:
414
407
  - test/fixtures/rails_app/config/typus/has_many_through_roles.yml
415
408
  - test/fixtures/rails_app/config/typus/has_one.yml
416
409
  - test/fixtures/rails_app/config/typus/has_one_roles.yml
410
+ - test/fixtures/rails_app/config/typus/mongo_db.yml
411
+ - test/fixtures/rails_app/config/typus/mongo_db_roles.yml
417
412
  - test/fixtures/rails_app/config/typus/polymorphic.yml
418
413
  - test/fixtures/rails_app/config/typus/polymorphic_roles.yml
419
414
  - test/fixtures/rails_app/config/typus/resource_roles.yml
@@ -436,12 +431,6 @@ files:
436
431
  - test/fixtures/rails_app/public/500.html
437
432
  - test/fixtures/rails_app/public/favicon.ico
438
433
  - test/fixtures/rails_app/public/images/rails.png
439
- - test/fixtures/rails_app/public/javascripts/application.js
440
- - test/fixtures/rails_app/public/javascripts/controls.js
441
- - test/fixtures/rails_app/public/javascripts/dragdrop.js
442
- - test/fixtures/rails_app/public/javascripts/effects.js
443
- - test/fixtures/rails_app/public/javascripts/prototype.js
444
- - test/fixtures/rails_app/public/javascripts/rails.js
445
434
  - test/fixtures/rails_app/public/robots.txt
446
435
  - test/fixtures/rails_app/public/stylesheets/.gitkeep
447
436
  - test/fixtures/rails_app/public/vendor/jquery-ui-1.8.9.custom/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
@@ -529,23 +518,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
529
518
  requirements:
530
519
  - - ">="
531
520
  - !ruby/object:Gem::Version
532
- hash: 3
533
- segments:
534
- - 0
535
521
  version: "0"
536
522
  required_rubygems_version: !ruby/object:Gem::Requirement
537
523
  none: false
538
524
  requirements:
539
525
  - - ">="
540
526
  - !ruby/object:Gem::Version
541
- hash: 3
542
- segments:
543
- - 0
544
527
  version: "0"
545
528
  requirements: []
546
529
 
547
530
  rubyforge_project: typus
548
- rubygems_version: 1.5.2
531
+ rubygems_version: 1.6.1
549
532
  signing_key:
550
533
  specification_version: 3
551
534
  summary: Effortless backend interface for Ruby on Rails applications. (Admin scaffold generator)
@@ -580,6 +563,7 @@ test_files:
580
563
  - test/app/helpers/admin/sidebar_helper_test.rb
581
564
  - test/app/helpers/admin/table_helper_test.rb
582
565
  - test/app/mailers/admin/mailer_test.rb
566
+ - test/app/models/admin_user_test.rb
583
567
  - test/app/models/typus_user_roles_test.rb
584
568
  - test/app/models/typus_user_test.rb
585
569
  - test/config/routes_test.rb
@@ -616,6 +600,7 @@ test_files:
616
600
  - test/fixtures/rails_app/app/controllers/admin/comments_controller.rb
617
601
  - test/fixtures/rails_app/app/controllers/admin/dogs_controller.rb
618
602
  - test/fixtures/rails_app/app/controllers/admin/entries_controller.rb
603
+ - test/fixtures/rails_app/app/controllers/admin/hits_controller.rb
619
604
  - test/fixtures/rails_app/app/controllers/admin/image_holders_controller.rb
620
605
  - test/fixtures/rails_app/app/controllers/admin/invoices_controller.rb
621
606
  - test/fixtures/rails_app/app/controllers/admin/orders_controller.rb
@@ -628,6 +613,7 @@ test_files:
628
613
  - test/fixtures/rails_app/app/controllers/admin/users_controller.rb
629
614
  - test/fixtures/rails_app/app/controllers/admin/views_controller.rb
630
615
  - test/fixtures/rails_app/app/controllers/admin/watch_dog_controller.rb
616
+ - test/fixtures/rails_app/app/controllers/admin_user.rb
631
617
  - test/fixtures/rails_app/app/controllers/application_controller.rb
632
618
  - test/fixtures/rails_app/app/helpers/application_helper.rb
633
619
  - test/fixtures/rails_app/app/helpers/form_helper.rb
@@ -641,6 +627,7 @@ test_files:
641
627
  - test/fixtures/rails_app/app/models/delayed/task.rb
642
628
  - test/fixtures/rails_app/app/models/dog.rb
643
629
  - test/fixtures/rails_app/app/models/entry.rb
630
+ - test/fixtures/rails_app/app/models/hit.rb
644
631
  - test/fixtures/rails_app/app/models/image_holder.rb
645
632
  - test/fixtures/rails_app/app/models/invoice.rb
646
633
  - test/fixtures/rails_app/app/models/order.rb
@@ -656,6 +643,9 @@ test_files:
656
643
  - test/fixtures/rails_app/app/views/admin/categories/_index.html.erb
657
644
  - test/fixtures/rails_app/app/views/admin/dashboard/_sidebar.html.erb
658
645
  - test/fixtures/rails_app/app/views/admin/entries/_index.html.erb
646
+ - test/fixtures/rails_app/app/views/admin/hits/_edit.html.erb
647
+ - test/fixtures/rails_app/app/views/admin/hits/_index.html.erb
648
+ - test/fixtures/rails_app/app/views/admin/hits/index.html.erb
659
649
  - test/fixtures/rails_app/app/views/admin/pages/_index.html.erb
660
650
  - test/fixtures/rails_app/app/views/admin/posts/_edit.html.erb
661
651
  - test/fixtures/rails_app/app/views/admin/posts/_index.html.erb
@@ -684,6 +674,7 @@ test_files:
684
674
  - test/fixtures/rails_app/config/initializers/typus.rb
685
675
  - test/fixtures/rails_app/config/initializers/typus_resources.rb
686
676
  - test/fixtures/rails_app/config/locales/en.yml
677
+ - test/fixtures/rails_app/config/mongoid.yml
687
678
  - test/fixtures/rails_app/config/routes.rb
688
679
  - test/fixtures/rails_app/config/typus/README
689
680
  - test/fixtures/rails_app/config/typus/crud_basic.yml
@@ -696,6 +687,8 @@ test_files:
696
687
  - test/fixtures/rails_app/config/typus/has_many_through_roles.yml
697
688
  - test/fixtures/rails_app/config/typus/has_one.yml
698
689
  - test/fixtures/rails_app/config/typus/has_one_roles.yml
690
+ - test/fixtures/rails_app/config/typus/mongo_db.yml
691
+ - test/fixtures/rails_app/config/typus/mongo_db_roles.yml
699
692
  - test/fixtures/rails_app/config/typus/polymorphic.yml
700
693
  - test/fixtures/rails_app/config/typus/polymorphic_roles.yml
701
694
  - test/fixtures/rails_app/config/typus/resource_roles.yml
@@ -718,12 +711,6 @@ test_files:
718
711
  - test/fixtures/rails_app/public/500.html
719
712
  - test/fixtures/rails_app/public/favicon.ico
720
713
  - test/fixtures/rails_app/public/images/rails.png
721
- - test/fixtures/rails_app/public/javascripts/application.js
722
- - test/fixtures/rails_app/public/javascripts/controls.js
723
- - test/fixtures/rails_app/public/javascripts/dragdrop.js
724
- - test/fixtures/rails_app/public/javascripts/effects.js
725
- - test/fixtures/rails_app/public/javascripts/prototype.js
726
- - test/fixtures/rails_app/public/javascripts/rails.js
727
714
  - test/fixtures/rails_app/public/robots.txt
728
715
  - test/fixtures/rails_app/public/stylesheets/.gitkeep
729
716
  - test/fixtures/rails_app/public/vendor/jquery-ui-1.8.9.custom/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
@@ -1,13 +0,0 @@
1
- module Typus
2
- module Orm
3
- module ActiveRecord
4
- module InstanceMethods
5
-
6
- def owned_by?(user)
7
- send(Typus.user_fk) == user.id
8
- end
9
-
10
- end
11
- end
12
- end
13
- end
@@ -1,157 +0,0 @@
1
- module Typus
2
- module Orm
3
- module ActiveRecord
4
- module User
5
-
6
- def self.included(base)
7
- base.extend(ClassMethods)
8
- end
9
-
10
- module ClassMethods
11
-
12
- def enable_as_typus_user
13
-
14
- extend ClassMethodsMixin
15
-
16
- attr_accessor :password
17
- attr_protected :status
18
-
19
- validates :email,
20
- :presence => true,
21
- :uniqueness => true,
22
- :format => { :with => Typus::Regex::Email }
23
-
24
- validates :password,
25
- :confirmation => { :if => :password_required? },
26
- :presence => { :if => :password_required? }
27
-
28
- validates_length_of :password, :within => 6..40, :if => :password_required?
29
-
30
- validates :role, :presence => true
31
-
32
- before_save :initialize_salt, :encrypt_password, :initialize_token
33
-
34
- serialize :preferences
35
-
36
- include InstanceMethods
37
-
38
- end
39
-
40
- end
41
-
42
- module ClassMethodsMixin
43
-
44
- def authenticate(email, password)
45
- user = find_by_email_and_status(email, true)
46
- user && user.authenticated?(password) ? user : nil
47
- end
48
-
49
- def generate(*args)
50
- options = args.extract_options!
51
-
52
- options[:password] ||= ActiveSupport::SecureRandom.hex(4)
53
- options[:role] ||= Typus.master_role
54
-
55
- new :email => options[:email],
56
- :password => options[:password],
57
- :password_confirmation => options[:password],
58
- :role => options[:role],
59
- :preferences => { :locale => ::I18n.default_locale.to_s }
60
- end
61
-
62
- end
63
-
64
- module InstanceMethods
65
-
66
- def name
67
- full_name = [first_name, last_name].delete_if { |s| s.blank? }
68
- full_name.any? ? full_name.join(" ") : email
69
- end
70
-
71
- def authenticated?(password)
72
- crypted_password == encrypt(password)
73
- end
74
-
75
- def resources
76
- Typus::Configuration.roles[role].compact
77
- end
78
-
79
- def applications
80
- Typus.applications.delete_if { |a| application(a).empty? }
81
- end
82
-
83
- def application(name)
84
- Typus.application(name).delete_if { |r| !resources.keys.include?(r) }
85
- end
86
-
87
- def can?(action, resource, options = {})
88
- resource = resource.model_name if resource.is_a?(Class)
89
-
90
- return false if !resources.include?(resource)
91
- return true if resources[resource].include?("all")
92
-
93
- action = options[:special] ? action : action.acl_action_mapper
94
-
95
- resources[resource].extract_settings.include?(action)
96
- end
97
-
98
- def cannot?(*args)
99
- !can?(*args)
100
- end
101
-
102
- def is_root?
103
- role == Typus.master_role
104
- end
105
-
106
- def is_not_root?
107
- !is_root?
108
- end
109
-
110
- def locale
111
- (preferences && preferences[:locale]) ? preferences[:locale] : ::I18n.default_locale
112
- end
113
-
114
- def locale=(locale)
115
- options = { :locale => locale }
116
- self.preferences ||= {}
117
- self.preferences[:locale] = locale
118
- end
119
-
120
- protected
121
-
122
- # TODO: Update the hash generation by a harder one ...
123
- def generate_hash(string)
124
- Digest::SHA1.hexdigest(string)
125
- end
126
-
127
- def encrypt_password
128
- return if password.blank?
129
- self.crypted_password = encrypt(password)
130
- end
131
-
132
- def encrypt(string)
133
- generate_hash("--#{salt}--#{string}--")
134
- end
135
-
136
- def initialize_salt
137
- self.salt = generate_hash("--#{Time.zone.now.to_s(:number)}--#{email}--") if new_record?
138
- end
139
-
140
- def initialize_token
141
- generate_token if new_record?
142
- end
143
-
144
- def generate_token
145
- self.token = encrypt("--#{Time.zone.now.to_s(:number)}--#{password}--").first(12)
146
- end
147
-
148
- def password_required?
149
- crypted_password.blank? || !password.blank?
150
- end
151
-
152
- end
153
-
154
- end
155
- end
156
- end
157
- end