typus 3.0.8 → 3.0.9

Sign up to get free protection for your applications and to get access to all the features.
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