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 +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
|