camaleon_cms 2.0.3 → 2.0.4
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.
- checksums.yaml +4 -4
- data/app/controllers/camaleon_cms/admin/media_controller.rb +0 -2
- data/app/helpers/camaleon_cms/session_helper.rb +7 -9
- data/app/helpers/camaleon_cms/site_helper.rb +1 -1
- data/app/helpers/camaleon_cms/uploader_helper.rb +11 -47
- data/app/models/camaleon_cms/ability.rb +16 -1
- data/app/models/camaleon_cms/site.rb +0 -4
- data/app/models/camaleon_cms/user_role.rb +0 -5
- data/app/views/camaleon_cms/admin/settings/custom_fields/form.html.erb +2 -2
- data/lib/camaleon_cms/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20092bd5db3f09102ba7a1c8d9b92bb53a7dbfce
|
4
|
+
data.tar.gz: 625425eccb4f637eb53c9e6902cb97baa450ab94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
101
|
-
|
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 @
|
118
|
+
return @cama_current_user if defined?(@cama_current_user)
|
121
119
|
# api current user...
|
122
|
-
@
|
123
|
-
return @
|
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
|
-
@
|
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 =
|
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
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
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
|
-
|
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
|
-
|
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>
|
data/lib/camaleon_cms/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bcrypt
|