browsercms-artirix 4.0.0.rc1.art4 → 4.0.1.1

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/cms/attachments_controller.rb +1 -1
  3. data/app/controllers/cms/cas_sessions_controller.rb +13 -0
  4. data/app/controllers/cms/sections_controller.rb +1 -1
  5. data/app/controllers/cms/users_controller.rb +1 -1
  6. data/app/helpers/cms/sites/authentication_helper.rb +1 -0
  7. data/app/helpers/cms/sites/devise_shim_helper.rb +1 -1
  8. data/app/models/cms/default_user.rb +6 -0
  9. data/app/models/cms/external_user.rb +1 -1
  10. data/app/models/cms/group.rb +7 -3
  11. data/app/models/cms/guest_user.rb +2 -41
  12. data/app/models/cms/permission.rb +4 -0
  13. data/app/models/cms/persistent_user.rb +17 -110
  14. data/app/models/cms/section.rb +10 -6
  15. data/app/models/cms/user.rb +2 -2
  16. data/app/models/cms/user_group_membership.rb +2 -2
  17. data/app/portlets/login_portlet.rb +2 -2
  18. data/config/routes.rb +33 -34
  19. data/db/browsercms.seeds.rb +7 -4
  20. data/doc/release_notes.md +3 -3
  21. data/lib/browsercms.rb +2 -0
  22. data/lib/cms/authentication/controller.rb +8 -5
  23. data/lib/cms/authentication/test_password_strategy.rb +1 -1
  24. data/lib/cms/behaviors.rb +15 -0
  25. data/lib/cms/behaviors/attaching.rb +1 -1
  26. data/lib/cms/behaviors/userstamping.rb +1 -1
  27. data/lib/cms/behaviors/versioning.rb +3 -4
  28. data/lib/cms/configuration.rb +108 -10
  29. data/lib/cms/configuration/devise.rb +75 -4
  30. data/lib/cms/engine.rb +55 -2
  31. data/lib/cms/users_service.rb +26 -190
  32. data/lib/cms/users_service/cms_login_user_controller_concern.rb +19 -0
  33. data/lib/cms/users_service/cms_user_compatibility_module.rb +137 -0
  34. data/lib/cms/users_service/guest_user_module.rb +42 -0
  35. data/lib/cms/users_service/user_groups_by_codes_module.rb +13 -0
  36. data/lib/cms/users_service/users_factory.rb +50 -0
  37. data/lib/cms/version.rb +1 -1
  38. data/lib/generators/browser_cms/demo_site/templates/demo.seeds.rb +1 -1
  39. metadata +27 -6
@@ -0,0 +1,50 @@
1
+ module Cms
2
+ module UsersService
3
+ class UsersFactory
4
+ class << self
5
+ delegate :guest_user, :user, :extend_user, to: :factory
6
+ end
7
+
8
+ def self.factory
9
+ @factory || new
10
+ end
11
+
12
+ def guest_user
13
+ load_guest_user.tap { |u| extend_user u }
14
+ end
15
+
16
+ def user(login, group_codes: nil)
17
+ load_user(login).tap do |user|
18
+ extend_user(user, group_codes: group_codes)
19
+ end
20
+ end
21
+
22
+ def extend_user(user, group_codes: nil)
23
+ user.send :extend, CmsUserCompatibilityModule unless user.try :cms_user_compatible?
24
+ user.send :extend, UserGroupsByCodesModule unless user.respond_to? :group_codes=
25
+ add_groups_to_user(user, group_codes) if group_codes
26
+ user
27
+ end
28
+
29
+ private
30
+ def add_groups_to_user(user, group_codes)
31
+ user.group_codes = Array(group_codes)
32
+ end
33
+
34
+ def load_user(login)
35
+ Cms.user_class.where(Cms.user_key_field => login).first!
36
+ end
37
+
38
+ def load_guest_user
39
+ params = {
40
+ Cms.user_key_field => Cms::Group::GUEST_CODE,
41
+ Cms.user_name_field => GUEST_NAME
42
+ }
43
+
44
+ Cms.user_class.new(params).tap do |guest_user|
45
+ guest_user.send :extend, GuestUserModule
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
data/lib/cms/version.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # Allows the precise version of BrowserCMS to be determined programatically.
3
3
  #
4
4
  module Cms
5
- VERSION = "4.0.0.rc1.art4"
5
+ VERSION = '4.0.1.1'
6
6
 
7
7
  # Return the current version of the CMS.
8
8
  def self.version
@@ -2,7 +2,7 @@ require 'cms/data_loader'
2
2
  include Cms::DataLoader
3
3
 
4
4
  # Load up data that was created in load seed data migration
5
- Cms::User.current = Cms::User.first(:conditions => {:login => 'cmsadmin'})
5
+ Cms::UsersService.current = Cms::User.first(:conditions => {:login => 'cmsadmin'})
6
6
  root_section = Cms::Section.root.first
7
7
  home_page = Cms::Page.first(:conditions => {:name => "Home"})
8
8
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browsercms-artirix
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.rc1.art4
4
+ version: 4.0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - BrowserMedia
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-07-20 00:00:00.000000000 Z
12
+ date: 2015-07-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 4.0.13
20
+ version: 4.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: 4.0.13
27
+ version: 4.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: devise
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '3.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: devise_cas_authenticatable
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 1.4.1
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 1.4.1
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: sass-rails
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -587,6 +601,7 @@ files:
587
601
  - app/controllers/cms/attachments_controller.rb
588
602
  - app/controllers/cms/base_controller.rb
589
603
  - app/controllers/cms/cache_controller.rb
604
+ - app/controllers/cms/cas_sessions_controller.rb
590
605
  - app/controllers/cms/categories_controller.rb
591
606
  - app/controllers/cms/category_types_controller.rb
592
607
  - app/controllers/cms/connectors_controller.rb
@@ -662,6 +677,7 @@ files:
662
677
  - app/models/cms/connector.rb
663
678
  - app/models/cms/content.rb
664
679
  - app/models/cms/content_type.rb
680
+ - app/models/cms/default_user.rb
665
681
  - app/models/cms/dynamic_view.rb
666
682
  - app/models/cms/email_message.rb
667
683
  - app/models/cms/email_message_mailer.rb
@@ -981,6 +997,11 @@ files:
981
997
  - lib/cms/responders/content_responder.rb
982
998
  - lib/cms/route_extensions.rb
983
999
  - lib/cms/users_service.rb
1000
+ - lib/cms/users_service/cms_login_user_controller_concern.rb
1001
+ - lib/cms/users_service/cms_user_compatibility_module.rb
1002
+ - lib/cms/users_service/guest_user_module.rb
1003
+ - lib/cms/users_service/user_groups_by_codes_module.rb
1004
+ - lib/cms/users_service/users_factory.rb
984
1005
  - lib/cms/version.rb
985
1006
  - lib/command_line.rb
986
1007
  - lib/generators/browser_cms.rb
@@ -1035,9 +1056,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
1035
1056
  version: 1.9.2
1036
1057
  required_rubygems_version: !ruby/object:Gem::Requirement
1037
1058
  requirements:
1038
- - - ">"
1059
+ - - ">="
1039
1060
  - !ruby/object:Gem::Version
1040
- version: 1.3.1
1061
+ version: '0'
1041
1062
  requirements: []
1042
1063
  rubyforge_project:
1043
1064
  rubygems_version: 2.4.6