camaleon_cms 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c1ba5c936124f4f5012e985ffa2380addcb3b741
4
- data.tar.gz: e9aced89daa293cfaca1717564102bfd4c19b7b2
3
+ metadata.gz: 20092bd5db3f09102ba7a1c8d9b92bb53a7dbfce
4
+ data.tar.gz: 625425eccb4f637eb53c9e6902cb97baa450ab94
5
5
  SHA512:
6
- metadata.gz: 32c21dbff1283ac8e05ef6d59cc6f3f03c495684b57f302d99147bf2dd7de4339dfe3aa8164d4b3d501b453f50c4807501d7fead43c533f00ef228ca2eafa792
7
- data.tar.gz: bbe6bc4fc4ea279ec53846f18d91b67ff59930ec64ac03f41b0216f29037a1f7325cee18e2bf37ffbd2373b67e73b365503ee8f26090d36c3144de936def94ae
6
+ metadata.gz: dbdeeb331aa35d258d577b4131e4cfd420c119d8c5f9becc1ebf905d5e4079293f3844afadbcc1ea9313df18a9defe70f70cd4850a656a2f170b3a3c983f47c8
7
+ data.tar.gz: e630a1aea7f17eac32a80c1d5e2cc1e7b503c46cb407ee0fef7c412e0372db89e79a5d357e2ad1e02f8ec4171fb063b97c4211ae195b1a6ddec2c73d9a9be97d
@@ -17,8 +17,6 @@ class CamaleonCms::Admin::MediaController < CamaleonCms::AdminController
17
17
  authorize! :manager, :media
18
18
  @show_file_actions = true
19
19
  add_breadcrumb I18n.t("camaleon_cms.admin.sidebar.media")
20
- render "index"
21
- cama_draw_timer
22
20
  end
23
21
 
24
22
  # crop a image to save as a new file
@@ -15,11 +15,8 @@ module CamaleonCms::SessionHelper
15
15
  c[:domain] = :all if PluginRoutes.system_info["users_share_sites"].present? && CamaleonCms::Site.count > 1
16
16
  c[:expires] = 1.month.from_now if remember_me
17
17
 
18
- CamaleonCms::Site.main_site.set_meta("share_sessions", false) if cookies.delete(:login).present?
19
18
  user.update({last_login_at: Time.zone.now})
20
-
21
19
  cookies[:auth_token] = c
22
- cookies[:login] = true
23
20
 
24
21
  # user redirection
25
22
  flash[:notice] = t('camaleon_cms.admin.login.message.success', locale: current_site.get_admin_language)
@@ -97,8 +94,9 @@ module CamaleonCms::SessionHelper
97
94
  def cama_logout_user
98
95
  cookies.delete(:auth_token, domain: :all)
99
96
  cookies.delete(:auth_token, domain: nil)
100
- cookies[:auth_token] = {value: nil, expires: 24.hours.ago, domain: (PluginRoutes.system_info["users_share_sites"] && CamaleonCms::Site.count > 1 ? :all : nil)}
101
- cookies.delete :login
97
+ c_data = {value: nil, expires: 24.hours.ago}
98
+ c_data[:domain] = :all if PluginRoutes.system_info["users_share_sites"].present? && CamaleonCms::Site.count > 1
99
+ cookies[:auth_token] = c_data
102
100
  redirect_to params[:return_to].present? ? params[:return_to] : cama_admin_login_path, :notice => t('camaleon_cms.admin.logout.message.closed')
103
101
  end
104
102
 
@@ -117,17 +115,17 @@ module CamaleonCms::SessionHelper
117
115
 
118
116
  # return current user logged in
119
117
  def cama_current_user
120
- return @current_user if defined?(@current_user)
118
+ return @cama_current_user if defined?(@cama_current_user)
121
119
  # api current user...
122
- @current_user = cama_calc_api_current_user
123
- return @current_user unless @current_user.nil?
120
+ @cama_current_user = cama_calc_api_current_user
121
+ return @cama_current_user unless @cama_current_user.nil?
124
122
 
125
123
  return nil unless cookies[:auth_token].present?
126
124
  c = cookies[:auth_token].split("&")
127
125
  return nil unless c.size == 3
128
126
 
129
127
  if c[1] == request.user_agent && request.ip == c[2]
130
- @current_user = (current_site.users_include_admins.find_by_auth_token(c[0]).decorate rescue nil)
128
+ @cama_current_user = (current_site.users_include_admins.find_by_auth_token(c[0]).decorate rescue nil)
131
129
  end
132
130
  end
133
131
 
@@ -13,7 +13,7 @@ module CamaleonCms::SiteHelper
13
13
  return $current_site if defined?($current_site)
14
14
  return @current_site if defined?(@current_site)
15
15
  if PluginRoutes.get_sites.size == 1
16
- site = PluginRoutes.get_sites.first.decorate
16
+ site = CamaleonCms::Site.first.decorate
17
17
  else
18
18
  host = request.original_url.to_s.parse_domain
19
19
  if host == PluginRoutes.system_info["base_domain"]
@@ -160,58 +160,22 @@ module CamaleonCms::UploaderHelper
160
160
  res.gsub(/(\/){2,}/, "/")
161
161
  end
162
162
 
163
- # Generate Hash structure of files from FOG
164
- def cama_uploader_browser_files(load_cache = true)
165
- if load_cache
166
- cache_res = current_site.get_meta("cache_browser_files_#{@fog_connection_hook_res}")
167
- return cache_res.with_indifferent_access if cache_res.present?
168
- end
169
-
170
- @browser_files = {folders: {}, files: [], path: ""}
171
- cama_uploader_init_connection()
172
- @fog_connection_bucket_dir.files.all.each do |file|
173
- cama_uploader_browser_files_parse_file(@browser_files, File.dirname(file.key), file)
174
- end
175
- current_site.set_meta("cache_browser_files_#{@fog_connection_hook_res}", @browser_files)
176
- end
177
-
178
- # add full file path into browser structure
179
- # sample: 1/500_3.html => {folders: { 1:{ folders:{}, files: [{name: 503.html, ..}] } } }
180
- def cama_uploader_browser_files_parse_file(folder_src, folder_dst, file)
181
- if folder_dst.present?
182
- return "" if folder_dst.start_with?(@fog_connection_hook_res[:thumb_folder_name]) # thumb folders ignored
183
- f = folder_dst.split("/").first
184
- folder_src[:folders][f] = {folders: {}, files: []} unless folder_src[:folders].keys.include?(f)
185
- cama_uploader_browser_files_parse_file(folder_src[:folders][f], folder_dst.split("/").from(1).join("/"), file)
186
- else
187
- if file.key.end_with?("/")
188
- folder_src[:folders][file.key.split("/").last] = {folders: {}, files: []}
189
- else
190
- r_file = cama_uploader_parse_file(file)
191
- folder_src[:files] << r_file if r_file["url"].present? && !file.key.include?('/_tmp.txt') # skip non public url files (protected)
192
- end
193
- end
194
- end
195
-
196
163
  # search a folder by path and return all folders and files
197
164
  # sample: cama_media_find_folder("test/exit")
198
165
  def cama_media_find_folder(path = "")
199
- res = nil
200
- cama_draw_timer
201
- folder = cama_uploader_browser_files[:folders]
202
- cama_draw_timer
203
- "#{current_site.id}/#{path}".gsub(/(\/){2,}/, "/").split("/").each do |k|
204
- if k.present?
205
- begin
206
- res = folder[k]
207
- folder = folder[k][:folders]
208
- rescue
209
- break
210
- end
166
+ cama_uploader_init_connection(true)
167
+
168
+ prefix = "#{current_site.id}/#{path}/".gsub(/(\/){2,}/, "/")
169
+ res = {folders: {}, files: []}
170
+
171
+ @fog_connection.directories.get(@fog_connection_hook_res[:bucket_name], prefix: prefix).files.each do |file|
172
+ res[:files] << cama_uploader_parse_file(file) if file.key =~ %r|#{prefix}[^/]+$| && !file.key.include?('/_tmp.txt')
173
+ if file.key =~ %r|#{prefix}([^/]+)/|
174
+ folder_name = "#{$~[1]}"
175
+ res[:folders][folder_name] = {folders: {}, files: []} unless (folder_name == @fog_connection_hook_res[:thumb_folder_name])
211
176
  end
212
177
  end
213
- cama_draw_timer
214
- res || {folders: {}, files: []}
178
+ return res
215
179
  end
216
180
 
217
181
  # parse file information of FOG file
@@ -12,7 +12,7 @@ class CamaleonCms::Ability
12
12
  def initialize(user, current_site = nil)
13
13
  # Define abilities for the passed in user here. For example:
14
14
  #
15
- user ||= User.new # guest user (not logged in)
15
+ user ||= CamaleonCms::User.new # guest user (not logged in)
16
16
  if user.admin?
17
17
  can :manage, :all
18
18
  elsif user.client?
@@ -105,4 +105,19 @@ class CamaleonCms::Ability
105
105
  # See the wiki for details:
106
106
  # https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
107
107
  end
108
+
109
+ #overwrite can method to support decorator class names
110
+ def can?(action, subject, *extra_args)
111
+ if subject.is_a?(Draper::Decorator)
112
+ super(action,subject.model,*extra_args)
113
+ else
114
+ super(action,subject,*extra_args)
115
+ end
116
+ end
117
+
118
+ #overwrite cannot method to support decorator class names
119
+ def cannot?(*args)
120
+ !can?(*args)
121
+ end
122
+
108
123
  end
@@ -265,10 +265,6 @@ class CamaleonCms::Site < CamaleonCms::TermTaxonomy
265
265
  @nav_menu.append_menu_item({label: title, type: 'post', link: post.id})
266
266
  end
267
267
  end
268
-
269
- # default theme
270
- # self.themes.create(slug: PluginRoutes.system_info["default_template"])
271
- # self.set_option('_theme', PluginRoutes.system_info["default_template"])
272
268
  end
273
269
 
274
270
  # assign all users to this new site
@@ -99,11 +99,6 @@ class CamaleonCms::UserRole < CamaleonCms::TermTaxonomy
99
99
  label: "#{I18n.t('camaleon_cms.admin.users.roles_values.comments')}",
100
100
  description: "#{I18n.t('camaleon_cms.admin.users.tool_tip.comments')}"
101
101
  },
102
- #{
103
- # key: 'forms',
104
- # label: "#{I18n.t('camaleon_cms.admin.users.roles_values.forms')}",
105
- # description: "#{I18n.t('camaleon_cms.admin.users.tool_tip.forms')}"
106
- #},
107
102
  {
108
103
  key: 'themes',
109
104
  label: "#{I18n.t('camaleon_cms.admin.users.roles_values.themes')}",
@@ -72,12 +72,12 @@
72
72
  <select id="select_post_simple" name="custom_field_group[assign_group]" class="form-control required" style="display: none" disabled>
73
73
  <% current_site.post_types.each do |pt| pt = pt.decorate %>
74
74
  <optgroup label="<%= pt.the_title %>">
75
- <% pt.posts.visible_frontend.each do |post| value = "#{post.class.name},#{post.id}"; post = post.decorate %>
75
+ <% pt.posts.visible_frontend.each do |post| value = "#{post.class.name},#{post.id}".parseCamaClass; post = post.decorate %>
76
76
  <option value="<%= value %>" data-help="<%= "#{t('camaleon_cms.admin.settings.tooltip.add_custom_field_posts')}"+ post.the_title %>"><%= post.the_title %></option>
77
77
  <% end %>
78
78
  </optgroup>
79
79
  <% end %>
80
- </select>
80
+ </select>
81
81
  <input id="select_assign_group_caption" type="hidden" name="custom_field_group[caption]"/>
82
82
  <div id="select_assign_group_help"></div>
83
83
  </div>
@@ -1,3 +1,3 @@
1
1
  module CamaleonCms
2
- VERSION = "2.0.3"
2
+ VERSION = "2.0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camaleon_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen Peredo Diaz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-04 00:00:00.000000000 Z
11
+ date: 2015-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt