camaleon_cms 2.5.3.1 → 2.6.0

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.

Potentially problematic release.


This version of camaleon_cms might be problematic. Click here for more details.

Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/app/apps/plugins/front_cache/front_cache_helper.rb +1 -1
  3. data/app/assets/images/camaleon_cms/language/md.png +0 -0
  4. data/app/models/camaleon_cms/ability.rb +94 -92
  5. data/app/models/camaleon_cms/category.rb +45 -44
  6. data/app/models/camaleon_cms/custom_field.rb +26 -25
  7. data/app/models/camaleon_cms/custom_field_group.rb +115 -114
  8. data/app/models/camaleon_cms/custom_fields_relationship.rb +21 -19
  9. data/app/models/camaleon_cms/media.rb +48 -44
  10. data/app/models/camaleon_cms/meta.rb +5 -3
  11. data/app/models/camaleon_cms/nav_menu.rb +27 -24
  12. data/app/models/camaleon_cms/nav_menu_item.rb +58 -54
  13. data/app/models/camaleon_cms/plugin.rb +62 -60
  14. data/app/models/camaleon_cms/post.rb +205 -227
  15. data/app/models/camaleon_cms/post_comment.rb +44 -42
  16. data/app/models/camaleon_cms/post_default.rb +65 -62
  17. data/app/models/camaleon_cms/post_relationship.rb +1 -2
  18. data/app/models/camaleon_cms/post_tag.rb +9 -6
  19. data/app/models/camaleon_cms/post_type.rb +170 -163
  20. data/app/models/camaleon_cms/site.rb +211 -203
  21. data/app/models/camaleon_cms/term_relationship.rb +16 -14
  22. data/app/models/camaleon_cms/term_taxonomy.rb +49 -54
  23. data/app/models/camaleon_cms/theme.rb +24 -23
  24. data/app/models/camaleon_cms/user.rb +18 -13
  25. data/app/models/camaleon_cms/user_role.rb +130 -128
  26. data/app/models/camaleon_cms/widget/assigned.rb +25 -21
  27. data/app/models/camaleon_cms/widget/main.rb +40 -36
  28. data/app/models/camaleon_cms/widget/sidebar.rb +20 -16
  29. data/app/validators/camaleon_cms/post_uniq_validator.rb +28 -0
  30. data/app/validators/camaleon_cms/uniq_validator.rb +9 -0
  31. data/config/locales/camaleon_cms/admin/ar.yml +1 -0
  32. data/config/locales/camaleon_cms/admin/de.yml +1 -0
  33. data/config/locales/camaleon_cms/admin/en.yml +82 -21
  34. data/config/locales/camaleon_cms/admin/fr.yml +1 -0
  35. data/config/locales/camaleon_cms/admin/it.yml +1 -0
  36. data/config/locales/camaleon_cms/admin/js/de.yml +51 -0
  37. data/config/locales/camaleon_cms/admin/js/en.yml +51 -0
  38. data/config/locales/camaleon_cms/admin/js/es.yml +53 -0
  39. data/config/locales/camaleon_cms/admin/js/it.yml +44 -0
  40. data/config/locales/camaleon_cms/admin/js/nl.yml +42 -0
  41. data/config/locales/camaleon_cms/admin/js/pt-BR.yml +44 -0
  42. data/config/locales/camaleon_cms/admin/js/ru.yml +51 -0
  43. data/config/locales/camaleon_cms/admin/js/uk.yml +51 -0
  44. data/config/locales/camaleon_cms/admin/js/zh-CN.yml +51 -0
  45. data/config/locales/camaleon_cms/admin/nl.yml +1 -0
  46. data/config/locales/camaleon_cms/admin/ru.yml +1 -0
  47. data/config/locales/camaleon_cms/admin/uk.yml +2 -1
  48. data/config/locales/camaleon_cms/admin/zh-CH.yml +1 -0
  49. data/config/locales/camaleon_cms/common.md +3 -0
  50. data/config/locales/camaleon_cms/common/ar.yml +66 -0
  51. data/config/locales/camaleon_cms/common/de.yml +66 -0
  52. data/config/locales/camaleon_cms/common/en.yml +63 -0
  53. data/config/locales/camaleon_cms/common/es.yml +66 -0
  54. data/config/locales/camaleon_cms/common/fr.yml +66 -0
  55. data/config/locales/camaleon_cms/common/it.yml +63 -0
  56. data/config/locales/camaleon_cms/common/md.yml +60 -0
  57. data/config/locales/camaleon_cms/common/nl.yml +64 -0
  58. data/config/locales/camaleon_cms/common/pt-BR.yml +65 -0
  59. data/config/locales/camaleon_cms/common/pt.yml +65 -0
  60. data/config/locales/camaleon_cms/common/ru.yml +66 -0
  61. data/config/locales/camaleon_cms/common/uk.yml +64 -0
  62. data/config/locales/camaleon_cms/common/zh-CN.yml +66 -0
  63. data/config/locales/camaleon_cms/languages/ar.yml +16 -0
  64. data/config/locales/camaleon_cms/languages/de.yml +16 -0
  65. data/config/locales/camaleon_cms/languages/en.yml +16 -0
  66. data/config/locales/camaleon_cms/languages/es.yml +16 -0
  67. data/config/locales/camaleon_cms/languages/it.yml +16 -0
  68. data/config/locales/camaleon_cms/languages/md.yml +15 -0
  69. data/config/locales/camaleon_cms/languages/nl.yml +16 -0
  70. data/config/locales/camaleon_cms/languages/pt-BR.yml +16 -0
  71. data/config/locales/camaleon_cms/languages/pt.yml +16 -0
  72. data/config/locales/camaleon_cms/languages/ru.yml +16 -0
  73. data/config/locales/camaleon_cms/languages/uk.yml +16 -0
  74. data/config/locales/camaleon_cms/languages/zh-CN.yml +16 -0
  75. data/config/locales/camaleon_cms/routes/de.yml +8 -0
  76. data/config/locales/camaleon_cms/routes/es.yml +8 -0
  77. data/config/locales/camaleon_cms/routes/fr.yml +8 -0
  78. data/config/locales/camaleon_cms/routes/it.yml +8 -0
  79. data/config/locales/camaleon_cms/routes/md.yml +8 -0
  80. data/config/locales/camaleon_cms/routes/pt-BR.yml +8 -0
  81. data/config/locales/camaleon_cms/routes/pt.yml +8 -0
  82. data/config/locales/camaleon_cms/routes/ru.yml +8 -0
  83. data/config/locales/camaleon_cms/routes/uk.yml +8 -0
  84. data/config/locales/camaleon_cms/routes/zh-CN.yml +8 -0
  85. data/config/locales/md.yml +207 -0
  86. data/lib/camaleon_cms/version.rb +1 -1
  87. data/spec/dummy/config/application.rb +14 -2
  88. metadata +102 -109
  89. data/config/locales/camaleon_cms/admin/js.yml +0 -435
  90. data/config/locales/camaleon_cms/common.yml +0 -786
  91. data/config/locales/camaleon_cms/languages.yml +0 -167
  92. data/config/locales/camaleon_cms/routes.yml +0 -71
  93. data/spec/dummy/db/development.sqlite3 +0 -0
  94. data/spec/dummy/db/test.sqlite3 +0 -0
  95. data/spec/dummy/log/development.log +0 -254
  96. data/spec/dummy/log/test.log +0 -46384
  97. data/spec/dummy/public/media/1/rails_tmp.png +0 -0
  98. data/spec/dummy/public/media/1/rails_tmp_1.png +0 -0
  99. data/spec/dummy/public/media/1/rails_tmp_2.png +0 -0
  100. data/spec/dummy/public/media/1/rails_tmp_3.png +0 -0
  101. data/spec/dummy/public/media/1/sample/rails_tmp.png +0 -0
  102. data/spec/dummy/public/media/1/sample/thumb/rails_tmp-png.png +0 -0
  103. data/spec/dummy/public/media/1/slide33.jpg +0 -0
  104. data/spec/dummy/public/media/1/thumb/rails_tmp-png.png +0 -0
  105. data/spec/dummy/public/media/1/thumb/rails_tmp-png_20x.png +0 -0
  106. data/spec/dummy/public/media/1/thumb/rails_tmp-png_300x300.png +0 -0
  107. data/spec/dummy/public/media/1/thumb/rails_tmp-png_505x350.png +0 -0
  108. data/spec/dummy/public/media/1/thumb/rails_tmp_1-png.png +0 -0
  109. data/spec/dummy/public/media/1/thumb/rails_tmp_2-png.png +0 -0
  110. data/spec/dummy/public/media/1/thumb/rails_tmp_3-png.png +0 -0
  111. data/spec/dummy/public/media/1/thumb/slide33-jpg.jpg +0 -0
  112. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-19-13.472.html +0 -457
  113. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-19-13.472.png +0 -0
  114. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-19-28.693.html +0 -428
  115. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-19-28.693.png +0 -0
  116. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-22-45.502.html +0 -337
  117. data/spec/dummy/tmp/capybara/screenshot_2019-09-04-09-22-45.502.png +0 -0
  118. data/spec/support/fixtures/rails_tmp.png +0 -0
@@ -1,242 +1,250 @@
1
- class CamaleonCms::Site < CamaleonCms::TermTaxonomy
2
- # attrs: [name, description, slug]
3
- attr_accessor :site_domain
4
- include CamaleonCms::SiteDefaultSettings
5
- default_scope { where(taxonomy: :site).reorder(term_group: :desc) }
6
- cama_define_common_relationships('Site')
7
- has_many :post_types, :class_name => "CamaleonCms::PostType", foreign_key: :parent_id, dependent: :destroy
8
- has_many :nav_menus, :class_name => "CamaleonCms::NavMenu", foreign_key: :parent_id, dependent: :destroy, inverse_of: :site
9
- has_many :nav_menu_items, :class_name => "CamaleonCms::NavMenuItem", foreign_key: :term_group
10
- has_many :widgets, :class_name => "CamaleonCms::Widget::Main", foreign_key: :parent_id, dependent: :destroy
11
- has_many :sidebars, :class_name => "CamaleonCms::Widget::Sidebar", foreign_key: :parent_id, dependent: :destroy
12
- has_many :user_roles_rel, :class_name => "CamaleonCms::UserRole", foreign_key: :parent_id, dependent: :destroy
13
- has_many :custom_field_groups, :class_name => "CamaleonCms::CustomFieldGroup", foreign_key: :parent_id, dependent: :destroy
14
- has_many :term_taxonomies, :class_name => "CamaleonCms::TermTaxonomy", foreign_key: :parent_id
15
-
16
- has_many :posts, through: :post_types, :source => :posts
17
- has_many :plugins, :class_name => "CamaleonCms::Plugin", foreign_key: :parent_id, dependent: :destroy
18
- has_many :themes, :class_name => "CamaleonCms::Theme", foreign_key: :parent_id, dependent: :destroy
19
- has_many :public_media, ->{ where(is_public: true) }, class_name: 'CamaleonCms::Media', foreign_key: :site_id, dependent: :destroy
20
- has_many :private_media, ->{ where(is_public: false) }, class_name: 'CamaleonCms::Media', foreign_key: :site_id, dependent: :destroy
21
-
22
- after_create :default_settings
23
- after_create :set_default_user_roles
24
- after_save :update_routes
25
- before_destroy :destroy_site
26
- after_destroy :reload_routes
27
- validates_uniqueness_of :slug, scope: :taxonomy
28
-
29
- # all user roles for this site
30
- def user_roles
31
- if PluginRoutes.system_info["users_share_sites"]
32
- CamaleonCms::Site.main_site.user_roles_rel
33
- else
34
- user_roles_rel
1
+ module CamaleonCms
2
+ class Site < CamaleonCms::TermTaxonomy
3
+ include CamaleonCms::SiteDefaultSettings
4
+
5
+ # attrs: [name, description, slug]
6
+ attr_accessor :site_domain
7
+
8
+ default_scope { where(taxonomy: :site).reorder(term_group: :desc) }
9
+
10
+ cama_define_common_relationships('Site')
11
+ has_many :post_types, class_name: "CamaleonCms::PostType", foreign_key: :parent_id, dependent: :destroy
12
+ has_many :nav_menus, class_name: "CamaleonCms::NavMenu", foreign_key: :parent_id, dependent: :destroy, inverse_of: :site
13
+ has_many :nav_menu_items, class_name: "CamaleonCms::NavMenuItem", foreign_key: :term_group
14
+ has_many :widgets, class_name: "CamaleonCms::Widget::Main", foreign_key: :parent_id, dependent: :destroy
15
+ has_many :sidebars, class_name: "CamaleonCms::Widget::Sidebar", foreign_key: :parent_id, dependent: :destroy
16
+ has_many :user_roles_rel, class_name: "CamaleonCms::UserRole", foreign_key: :parent_id, dependent: :destroy
17
+ has_many :custom_field_groups, class_name: "CamaleonCms::CustomFieldGroup", foreign_key: :parent_id, dependent: :destroy
18
+ has_many :term_taxonomies, class_name: "CamaleonCms::TermTaxonomy", foreign_key: :parent_id
19
+
20
+ has_many :posts, through: :post_types, source: :posts
21
+ has_many :plugins, class_name: "CamaleonCms::Plugin", foreign_key: :parent_id, dependent: :destroy
22
+ has_many :themes, class_name: "CamaleonCms::Theme", foreign_key: :parent_id, dependent: :destroy
23
+ has_many :public_media, ->{ where(is_public: true) }, class_name: 'CamaleonCms::Media', foreign_key: :site_id, dependent: :destroy
24
+ has_many :private_media, ->{ where(is_public: false) }, class_name: 'CamaleonCms::Media', foreign_key: :site_id, dependent: :destroy
25
+
26
+ after_create :default_settings
27
+ after_create :set_default_user_roles
28
+ after_save :update_routes
29
+ before_destroy :destroy_site
30
+ after_destroy :reload_routes
31
+
32
+ validates_uniqueness_of :slug, scope: :taxonomy
33
+
34
+ # all user roles for this site
35
+ def user_roles
36
+ if PluginRoutes.system_info["users_share_sites"]
37
+ CamaleonCms::Site.main_site.user_roles_rel
38
+ else
39
+ user_roles_rel
40
+ end
35
41
  end
36
- end
37
42
 
38
- #select full_categories for the site, include all children categories
39
- def full_categories
40
- CamaleonCms::Category.where({site_id: self.id})
41
- end
43
+ #select full_categories for the site, include all children categories
44
+ def full_categories
45
+ CamaleonCms::Category.where(site_id: self.id)
46
+ end
42
47
 
43
- # all post_tags for this site
44
- def post_tags
45
- CamaleonCms::PostTag.includes(:post_type).where(post_type: self.post_types.pluck(:id))
46
- end
48
+ # all post_tags for this site
49
+ def post_tags
50
+ CamaleonCms::PostTag.includes(:post_type).where(post_type: post_types.pluck(:id))
51
+ end
47
52
 
48
- # all main categories for this site
49
- def categories
50
- CamaleonCms::Category.includes(:post_type_parent).where(post_type_parent: self.post_types.pluck(:id))
51
- end
53
+ # all main categories for this site
54
+ def categories
55
+ CamaleonCms::Category.includes(:post_type_parent).where(post_type_parent: post_types.pluck(:id))
56
+ end
52
57
 
53
- # return all languages configured by the admin
54
- # if it is empty, then return default locale
55
- def get_languages
56
- return @_languages if defined?(@_languages)
57
- l = get_meta("languages_site", [I18n.default_locale])
58
- @_languages = l.map { |x| x.to_sym } rescue [I18n.default_locale.to_sym]
59
- end
58
+ # return all languages configured by the admin
59
+ # if it is empty, then return default locale
60
+ def get_languages
61
+ return @_languages if defined?(@_languages)
60
62
 
61
- # return current admin language configured for this site
62
- def get_admin_language
63
- options[:_admin_theme] || "en"
64
- end
63
+ l = get_meta("languages_site", [I18n.default_locale])
64
+ @_languages = l.map { |x| x.to_sym } rescue [I18n.default_locale.to_sym]
65
+ end
65
66
 
66
- # set current admin language for this site
67
- def set_admin_language(language)
68
- set_option("_admin_theme", language)
69
- end
67
+ # return current admin language configured for this site
68
+ def get_admin_language
69
+ options[:_admin_theme] || "en"
70
+ end
70
71
 
71
- # return current theme slug configured for this site
72
- # if theme was not configured, then return system.json defined
73
- def get_theme_slug
74
- options[:_theme] || PluginRoutes.system_info["default_template"]
75
- end
72
+ # set current admin language for this site
73
+ def set_admin_language(language)
74
+ set_option("_admin_theme", language)
75
+ end
76
76
 
77
- # return theme model with slug theme_slug for this site
78
- # theme_slug: (optional) if it is null, this will return current theme for this site
79
- def get_theme(theme_slug = nil)
80
- self.themes.where(slug: (theme_slug || get_theme_slug), status: nil).first_or_create!
81
- end
77
+ # return current theme slug configured for this site
78
+ # if theme was not configured, then return system.json defined
79
+ def get_theme_slug
80
+ options[:_theme] || PluginRoutes.system_info["default_template"]
81
+ end
82
82
 
83
- # return plugin model with slug plugin_slug
84
- def get_plugin(plugin_slug)
85
- self.plugins.where(slug: plugin_slug).first_or_create!
86
- end
83
+ # return theme model with slug theme_slug for this site
84
+ # theme_slug: (optional) if it is null, this will return current theme for this site
85
+ def get_theme(theme_slug = nil)
86
+ themes.where(slug: (theme_slug || get_theme_slug), status: nil).first_or_create!
87
+ end
87
88
 
88
- # assign user to this site
89
- def assign_user(user)
90
- user.assign_site(self)
91
- end
89
+ # return plugin model with slug plugin_slug
90
+ def get_plugin(plugin_slug)
91
+ plugins.where(slug: plugin_slug).first_or_create!
92
+ end
92
93
 
93
- # items per page to be listed on frontend
94
- def front_per_page
95
- get_option("front_per_page", 10)
96
- end
94
+ # assign user to this site
95
+ def assign_user(user)
96
+ user.assign_site(self)
97
+ end
97
98
 
98
- # items per page to be listed on admin panel
99
- def admin_per_page
100
- get_option("admin_per_page", 10)
101
- end
99
+ # items per page to be listed on frontend
100
+ def front_per_page
101
+ get_option("front_per_page", 10)
102
+ end
102
103
 
103
- # frontend comments status for new comments on frontend
104
- def front_comment_status
105
- get_option("comment_status", "pending")
106
- end
104
+ # items per page to be listed on admin panel
105
+ def admin_per_page
106
+ get_option("admin_per_page", 10)
107
+ end
107
108
 
108
- # security: user register form show captcha?
109
- def security_user_register_captcha_enabled?
110
- get_option('security_captcha_user_register', false) == true
111
- end
112
-
113
- # check if current site permit capctha for anonymous comments
114
- def is_enable_captcha_for_comments?
115
- get_option('enable_captcha_for_comments', false)
116
- end
109
+ # frontend comments status for new comments on frontend
110
+ def front_comment_status
111
+ get_option("comment_status", "pending")
112
+ end
117
113
 
118
- def need_validate_email?
119
- get_option('need_validate_email', false) == true
120
- end
114
+ # security: user register form show captcha?
115
+ def security_user_register_captcha_enabled?
116
+ get_option('security_captcha_user_register', false) == true
117
+ end
121
118
 
122
- # return main site
123
- def self.main_site
124
- @main_site ||= CamaleonCms::Site.reorder(id: :asc).first
125
- end
119
+ # check if current site permit capctha for anonymous comments
120
+ def is_enable_captcha_for_comments?
121
+ get_option('enable_captcha_for_comments', false)
122
+ end
126
123
 
127
- # check if this site is the main site
128
- # main site is a site that doesn't have slug
129
- def main_site?
130
- self.class.main_site == self
131
- end
132
- alias_method :is_default?, :main_site?
124
+ def need_validate_email?
125
+ get_option('need_validate_email', false) == true
126
+ end
133
127
 
134
- # list all users of current site
135
- def users
136
- if PluginRoutes.system_info["users_share_sites"]
137
- CamaleonCms::User.all
138
- else
139
- CamaleonCms::User.where(site_id: self.id)
128
+ # return main site
129
+ def self.main_site
130
+ @main_site ||= CamaleonCms::Site.reorder(id: :asc).first
140
131
  end
141
- end
142
- alias_method :users_include_admins, :users
143
132
 
144
- # return upload directory for this site (deprecated for cloud support)
145
- def upload_directory(inner_directory = nil)
146
- File.join(Rails.public_path, "/media/#{PluginRoutes.static_system_info["media_slug_folder"] ? self.slug : self.id}", inner_directory.to_s)
147
- end
133
+ # check if this site is the main site
134
+ # main site is a site that doesn't have slug
135
+ def main_site?
136
+ self.class.main_site == self
137
+ end
138
+ alias_method :is_default?, :main_site?
139
+
140
+ # list all users of current site
141
+ def users
142
+ if PluginRoutes.system_info["users_share_sites"]
143
+ CamaleonCms::User.all
144
+ else
145
+ CamaleonCms::User.where(site_id: id)
146
+ end
147
+ end
148
+ alias_method :users_include_admins, :users
148
149
 
149
- # return the directory name where to upload file for this site
150
- def upload_directory_name
151
- "#{PluginRoutes.static_system_info["media_slug_folder"] ? self.slug : self.id}"
152
- end
150
+ # return upload directory for this site (deprecated for cloud support)
151
+ def upload_directory(inner_directory = nil)
152
+ File.join(Rails.public_path, "/media/#{PluginRoutes.static_system_info["media_slug_folder"] ? slug : id}", inner_directory.to_s)
153
+ end
153
154
 
154
- # return an available slug for a new post
155
- # slug: (String) possible slug value
156
- # post_id: (integer, optional) current post id
157
- # sample: ("<!--:es-->features-1<!--:--><!--:en-->caract-1<!--:-->") | ("features")
158
- # return: (String) available slugs
159
- def get_valid_post_slug(slug, post_id=nil)
160
- slugs = slug.translations
161
- if slugs.present?
162
- slugs.each do |k, v|
163
- slugs[k] = get_valid_post_slug(v)
164
- end
165
- slugs.to_translate
166
- else
167
- res = slug
168
- (1..9999).each do |i|
169
- p = self.posts.find_by_slug(res)
170
- break if !p.present? || (p.present? && p.id == post_id)
171
- res = "#{slug}-#{i}"
155
+ # return the directory name where to upload file for this site
156
+ def upload_directory_name
157
+ "#{PluginRoutes.static_system_info["media_slug_folder"] ? slug : id}"
158
+ end
159
+
160
+ # return an available slug for a new post
161
+ # slug: (String) possible slug value
162
+ # post_id: (integer, optional) current post id
163
+ # sample: ("<!--:es-->features-1<!--:--><!--:en-->caract-1<!--:-->") | ("features")
164
+ # return: (String) available slugs
165
+ def get_valid_post_slug(slug, post_id=nil)
166
+ slugs = slug.translations
167
+ if slugs.present?
168
+ slugs.each do |k, v|
169
+ slugs[k] = get_valid_post_slug(v)
170
+ end
171
+ slugs.to_translate
172
+ else
173
+ res = slug
174
+ (1..9999).each do |i|
175
+ p = self.posts.find_by_slug(res)
176
+ break if !p.present? || (p.present? && p.id == post_id)
177
+
178
+ res = "#{slug}-#{i}"
179
+ end
180
+ res
172
181
  end
173
- res
174
182
  end
175
- end
176
183
 
177
- # check if current site is active or not
178
- def is_active?
179
- !self.status.present? || self.status == 'active'
180
- end
184
+ # check if current site is active or not
185
+ def is_active?
186
+ status.blank? || status == 'active'
187
+ end
181
188
 
182
- # check if current site is active or not
183
- def is_inactive?
184
- self.status == 'inactive'
185
- end
189
+ # check if current site is active or not
190
+ def is_inactive?
191
+ status == 'inactive'
192
+ end
186
193
 
187
- # check if current site is in maintenance or not
188
- def is_maintenance?
189
- self.status == 'maintenance'
190
- end
194
+ # check if current site is in maintenance or not
195
+ def is_maintenance?
196
+ status == 'maintenance'
197
+ end
191
198
 
192
- # return the anonymous user
193
- # if the anonymous user not exist, will create one
194
- def get_anonymous_user
195
- user = self.users.where(username: 'anonymous').first
196
- unless user.present?
197
- pass = "anonymous#{rand(9999)}"
198
- user = self.users.create({email: 'anonymous_user@local.com', username: 'anonymous', password: pass, password_confirmation: pass, first_name: 'Anonymous'})
199
+ # return the anonymous user
200
+ # if the anonymous user not exist, will create one
201
+ def get_anonymous_user
202
+ user = users.where(username: 'anonymous').first
203
+ unless user.present?
204
+ pass = "anonymous#{rand(9999)}"
205
+ user = users.create({email: 'anonymous_user@local.com', username: 'anonymous', password: pass, password_confirmation: pass, first_name: 'Anonymous'})
206
+ end
207
+ user
199
208
  end
200
- user
201
- end
202
209
 
203
- # return the domain for current site
204
- # sample: mysite.com | sample.mysite.com
205
- # also, you can define custom domain for this site by: my_site.site_domain = 'my_site.com' # used for sites with different domains to call from console or task
206
- def get_domain
207
- @site_domain || (main_site? ? slug : (slug.include?(".") ? slug : "#{slug}.#{Cama::Site.main_site.slug}"))
208
- end
210
+ # return the domain for current site
211
+ # sample: mysite.com | sample.mysite.com
212
+ # also, you can define custom domain for this site by: my_site.site_domain = 'my_site.com' # used for sites with different domains to call from console or task
213
+ def get_domain
214
+ @site_domain || (main_site? ? slug : (slug.include?(".") ? slug : "#{slug}.#{Cama::Site.main_site.slug}"))
215
+ end
209
216
 
210
- private
211
- # destroy all things before site destroy
212
- def destroy_site
213
- unless PluginRoutes.system_info["users_share_sites"]
214
- CamaleonCms::User.where(site_id: self.id).destroy_all
217
+ private
218
+ # destroy all things before site destroy
219
+ def destroy_site
220
+ unless PluginRoutes.system_info["users_share_sites"]
221
+ CamaleonCms::User.where(site_id: id).destroy_all
222
+ end
223
+ FileUtils.rm_rf(File.join(Rails.public_path, "/media/#{upload_directory_name}").to_s) # destroy current media directory
224
+ users.destroy_all unless PluginRoutes.system_info["users_share_sites"] # destroy all users assigned fot this site
215
225
  end
216
- FileUtils.rm_rf(File.join(Rails.public_path, "/media/#{upload_directory_name}").to_s) # destroy current media directory
217
- users.destroy_all unless PluginRoutes.system_info["users_share_sites"] # destroy all users assigned fot this site
218
- end
219
226
 
220
- # assign all users to this new site
221
- # DEPRECATED
222
- def set_all_users
223
- return
224
- end
227
+ # assign all users to this new site
228
+ # DEPRECATED
229
+ def set_all_users
230
+ return
231
+ end
225
232
 
226
- # update all routes of the system
227
- # reload system routes for this site
228
- def update_routes
229
- PluginRoutes.reload if cama_attr_changed?(:slug)
230
- end
233
+ # update all routes of the system
234
+ # reload system routes for this site
235
+ def update_routes
236
+ PluginRoutes.reload if cama_attr_changed?(:slug)
237
+ end
231
238
 
232
- def reload_routes
233
- PluginRoutes.reload
234
- end
239
+ def reload_routes
240
+ PluginRoutes.reload
241
+ end
235
242
 
236
- def before_validating
237
- slug = self.slug
238
- slug = self.name if slug.blank?
239
- self.name = slug unless self.name.present?
240
- self.slug = slug.to_s.try(:downcase)
243
+ def before_validating
244
+ slug = self.slug
245
+ slug = name if slug.blank?
246
+ self.name = slug if name.blank?
247
+ self.slug = slug.to_s.try(:downcase)
248
+ end
241
249
  end
242
250
  end