caboose-cms 0.2.78 → 0.2.79

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWY2MmY1YzRiZTQ3ZGYxM2ZkZDBiMTI4NTVmY2Q3YjM1NzU2M2Q3YQ==
4
+ Y2UxYmI0MzAwNzhlYWY2OTE3NGFhYWNkMmNkMDI3YTdhMDkxY2ZkYQ==
5
5
  data.tar.gz: !binary |-
6
- MTQ1NTYxOGNkNjk0ZDFhZjI5NmU2ZDliMTIwZGFjNjFmNmU2ZGE2ZA==
6
+ NmUyOTQ4OWNhZGE3NTdiMDhjMDJhZTcwZTM1M2Y0ODE3MmI4MzZlYg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MzIzNGMyMjM5MGQ0YjFhZjIzNmJkYWEyNzU1N2JkYmJjODNlYmQ0NGJiZDYz
10
- YTc3M2NlNjE3NjY3YzA5MTY2ZDFmZGMzMzcwYTgyODAxZjk0YzMzYWZlMzNh
11
- ZDUwMmNlNThmYTYwZGNmYzJhZjkwZDhkODE0YmIwOTI5MDhlZDA=
9
+ Mzc0OTQzNmE2NjgxYTJlYWI5MTg3OTlhMmZhZGVmNDBmMzcxYzcyMjgwY2Yz
10
+ OTRiNzg0NDhiNTA0ZTM3MWFkYTYyYWJmNDEwZTk1NDY3MWEzOWExMjcyNzc0
11
+ N2Y5Mjc2ZTA3ZjNjNDQ2MjYwMzFlZTVlMzgzMzM5ZWVjMTcyNDA=
12
12
  data.tar.gz: !binary |-
13
- YzNkYTFjNTRmNDk5Yjk5MDZhNmQyNTVkMjZhZmFkNTk2MDFiNDA3MGZjZGRi
14
- NTE4ZGU5Y2JjNmNjMjgwNGUwNDY5NGUyYWM3YzcyODYzNTQ2MDAyNGMzMTY2
15
- NWQ0YTQ2NTlkODRjOWRiMmE1NzdmNzdhN2QwMmI1ZjRlZGMyYjg=
13
+ OTRjOGEzYjU2ODU5NzkzNzEwN2Y5MWZmODQ1ODZjOWE2NGJkN2RhNjcxZjg4
14
+ ZWJlMmM2OWFhNjM5NzczYmFkNDllZGEwZjZhN2QyMjYyZjE0NzU5Y2EzNDk1
15
+ NTgzODg4YzNiODU3M2M1ZjMyZTllMzEzMzQ2ZDRmMzk0MDhhMjc=
@@ -55,257 +55,257 @@ class Caboose::Page < ActiveRecord::Base
55
55
  return self.index_page if uri.length == 0
56
56
 
57
57
  page = false
58
- parts = uri.split('/')
59
-
60
- # See where to start looking
61
- page_ids = self.where(:alias => parts[0]).limit(1).pluck(:id)
62
- page_id = !page_ids.nil? && page_ids.count > 0 ? page_ids[0] : false
63
-
64
- # Search for the page
65
- if (page_id)
66
- page_id = self.page_with_uri_helper(parts, 1, page_id)
67
- else
68
- parent_id = self.index_page
69
- page_id = self.page_with_uri_helper(parts, 0, parent_id)
70
- end
71
-
72
- return false if page_id.nil?
73
-
74
- page = self.find(page_id)
75
-
76
- if (!get_closest_parent) # // Look for an exact match
77
- return false if page.uri != uri
78
- end
79
- return page
80
- end
81
-
82
- def self.page_with_uri_helper(parts, level, parent_id)
83
- return parent_id if level >= parts.count
84
- slug = parts[level]
85
- page_ids = self.where(:parent_id => parent_id, :slug => slug).limit(1).pluck(:id)
86
- return parent_id if page_ids.nil? || page_ids.count == 0
87
- return self.page_with_uri_helper(parts, level+1, page_ids[0])
88
- end
89
-
90
- def self.update_uri(page)
91
- #return if page.redirect_url && page.redirect_url.length > 0
92
-
93
- page.slug = self.slug(page.title) if page.slug.nil? || page.slug.strip.length == 0
94
- page.uri = page.alias && page.alias.strip.length > 0 ? page.alias : (page.parent ? "#{page.parent.uri}/#{page.slug}" : "#{page.slug}")
58
+ parts = uri.split('/')
59
+
60
+ # See where to start looking
61
+ page_ids = self.where(:alias => parts[0]).limit(1).pluck(:id)
62
+ page_id = !page_ids.nil? && page_ids.count > 0 ? page_ids[0] : false
63
+
64
+ # Search for the page
65
+ if (page_id)
66
+ page_id = self.page_with_uri_helper(parts, 1, page_id)
67
+ else
68
+ parent_id = self.index_page
69
+ page_id = self.page_with_uri_helper(parts, 0, parent_id)
70
+ end
71
+
72
+ return false if page_id.nil?
73
+
74
+ page = self.find(page_id)
75
+
76
+ if (!get_closest_parent) # // Look for an exact match
77
+ return false if page.uri != uri
78
+ end
79
+ return page
80
+ end
81
+
82
+ def self.page_with_uri_helper(parts, level, parent_id)
83
+ return parent_id if level >= parts.count
84
+ slug = parts[level]
85
+ page_ids = self.where(:parent_id => parent_id, :slug => slug).limit(1).pluck(:id)
86
+ return parent_id if page_ids.nil? || page_ids.count == 0
87
+ return self.page_with_uri_helper(parts, level+1, page_ids[0])
88
+ end
89
+
90
+ def self.update_uri(page)
91
+ #return if page.redirect_url && page.redirect_url.length > 0
92
+
93
+ page.slug = self.slug(page.title) if page.slug.nil? || page.slug.strip.length == 0
94
+ page.uri = page.alias && page.alias.strip.length > 0 ? page.alias : (page.parent ? "#{page.parent.uri}/#{page.slug}" : "#{page.slug}")
95
95
  page.uri[0] = '' if page.uri.starts_with?('/')
96
96
  page.save
97
-
98
- page.children.each { |p2| self.update_uri(p2) }
99
- end
100
-
101
- def self.update_child_perms(page_id)
102
- page = self.find(page_id)
103
-
104
- viewers_ids = Role.roles_with_page_permission(page_id, 'view').collect {|r| r.id }
105
- editors_ids = Role.roles_with_page_permission(page_id, 'edit').collect {|r| r.id }
106
- approvers_ids = Role.roles_with_page_permission(page_id, 'approve').collect {|r| r.id }
107
-
108
- self.update_child_perms_helper(page, viewer_ids, editor_ids, approver_ids)
109
- end
110
-
111
- def self.update_child_perms_helper(page, viewer_ids, editor_ids, approver_ids)
112
- self.update_authorized_for_action(page.id, 'view' , viewer_ids)
113
- self.update_authorized_for_action(page.id, 'edit' , editor_ids)
114
- self.update_authorized_for_action(page.id, 'approve' , approver_ids)
97
+
98
+ page.children.each { |p2| self.update_uri(p2) }
99
+ end
100
+
101
+ def self.update_child_perms(page_id)
102
+ page = self.find(page_id)
103
+
104
+ viewers_ids = Role.roles_with_page_permission(page_id, 'view').collect {|r| r.id }
105
+ editors_ids = Role.roles_with_page_permission(page_id, 'edit').collect {|r| r.id }
106
+ approvers_ids = Role.roles_with_page_permission(page_id, 'approve').collect {|r| r.id }
107
+
108
+ self.update_child_perms_helper(page, viewer_ids, editor_ids, approver_ids)
109
+ end
110
+
111
+ def self.update_child_perms_helper(page, viewer_ids, editor_ids, approver_ids)
112
+ self.update_authorized_for_action(page.id, 'view' , viewer_ids)
113
+ self.update_authorized_for_action(page.id, 'edit' , editor_ids)
114
+ self.update_authorized_for_action(page.id, 'approve' , approver_ids)
115
115
 
116
- page.children.each do |kid|
117
- self.update_child_perms_helper(kid, viewer_ids, editor_ids, approver_ids)
118
- end
119
- end
120
-
121
- def self.update_authorized_for_action(page_id, action, roles)
122
- Caboose::PagePermission.where(:page_id => page_id, :action => action).destroy_all
123
- if (!roles.nil?)
124
- roles.each do |role|
125
- role_id = role.is_a?(Integer) ? role : role.id
126
- Caboose::PagePermission.create({
127
- :page_id => page_id,
128
- :role_id => role_id,
129
- :action => action
130
- })
131
- end
132
- end
133
- return true
134
- end
135
-
136
- def self.is_allowed(user, page_id, action)
137
- user = User.logged_out_user if user.nil?
116
+ page.children.each do |kid|
117
+ self.update_child_perms_helper(kid, viewer_ids, editor_ids, approver_ids)
118
+ end
119
+ end
120
+
121
+ def self.update_authorized_for_action(page_id, action, roles)
122
+ Caboose::PagePermission.where(:page_id => page_id, :action => action).destroy_all
123
+ if (!roles.nil?)
124
+ roles.each do |role|
125
+ role_id = role.is_a?(Integer) ? role : role.id
126
+ Caboose::PagePermission.create({
127
+ :page_id => page_id,
128
+ :role_id => role_id,
129
+ :action => action
130
+ })
131
+ end
132
+ end
133
+ return true
134
+ end
135
+
136
+ def self.is_allowed(user, page_id, action)
137
+ user = User.logged_out_user if user.nil?
138
138
 
139
- # Allow a user id to be sent instead of a user object
140
- user = User.find(user) if user.is_a?(Integer)
141
- user.role_ids = [Role.logged_out_role_id] if user.role_ids.nil?
139
+ # Allow a user id to be sent instead of a user object
140
+ user = User.find(user) if user.is_a?(Integer)
141
+ user.role_ids = [Role.logged_out_role_id] if user.role_ids.nil?
142
142
 
143
- t = PagePermission.table
144
- reqs = nil
145
- user.role_ids.each do |role_id|
146
- if (reqs.nil?)
147
- reqs = t[:role_id].eq(role_id)
148
- else
149
- reqs.or(t[:role_id].eq(role_id))
150
- end
151
- end
152
- var params = { :page_id => page_id, :action => action }
153
- params << reqs if !reqs.nil?
154
- count = PagePermission.where(params).count
155
-
156
- return true if count > 0
157
- return false
158
- end
159
-
160
- def self.roles_with_permission(page_id, action)
161
- return Role.roles_with_page_permission(page_id, action)
162
- end
163
-
164
- def self.permissible_actions(user, page_id)
165
- if (user.is_a?(Integer))
166
- user = Caboose::User.find(user)
167
- end
168
- actions = []
169
- user.roles.each do |role|
170
- actions + Caboose::PagePermission.where({
171
- :role_id => role.id,
172
- :page_id => page_id
173
- }).pluck(:action)
174
- end
175
- return actions.uniq
176
- end
177
-
178
- def self.page_ids_with_permission(user, action)
179
- if (user.is_a?(Integer))
180
- user = Caboose::User.find(user)
181
- end
182
- ids = []
183
- user.roles.each do |role|
184
- ids + Caboose::PagePermission.where({
185
- :role_id => role.id,
186
- :action => action
187
- }).pluck(:page_id)
188
- end
189
- return ids.uniq
190
- end
191
-
192
- def self.crumb_trail(page)
193
- page_id = page.is_a?(Integer) ? page : page.id
194
-
195
- arr = []
196
- self.crumb_trail_helper(page_id, arr)
197
- arr.reverse!
198
-
199
- trail = arr.collect do |row|
200
- Caboose::StdClass.new({
201
- 'href' => !row.uri.nil? && row.uri.length > 0 ? row.uri : '/',
202
- 'text' => !row.menu_title.nil? && row.menu_title.length > 0 ? row.menu_title : row.title
203
- })
204
- end
205
- return trail
206
- end
207
-
208
- def self.crumb_trail_helper(page_id, arr)
209
- return if page_id.nil? || page_id <= 0
210
- p = self.find_with_fields(page_id, [:parent_id, :title, :menu_title, :uri])
211
- return if p.nil?
212
- arr << p
213
- self.crumb_trail_helper(p.parent_id, arr)
214
- end
215
-
216
- def self.subnav(page, use_redirect_urls = true, user = false)
217
-
218
- # Be nice and allow page ids to be sent
219
- if (page.is_a?(Integer))
220
- page = self.find_with_fields(page, [:title, :menu_title, :custom_sort_children])
221
- end
222
-
223
- block = Caboose::MenuBlock.new
224
- block.title = !page.menu_title.nil? && page.menu_title.length > 0 ? page.menu_title : page.title
225
- block.title_id = page.id
226
-
227
- pages = self.select([:id, :title, :menu_title, :alias, :slug, :uri, :redirect_url, :sort_order]).where(:parent_id => page.id, :hide => false).reorder(:sort_order).all
228
- if (page.custom_sort_children)
229
- pages.sort! {|x,y| x.sort_order <=> y.sort_order }
230
- else
231
- pages.sort! {|x,y| x.order_title <=> y.order_title }
232
- end
233
-
234
- if (pages.nil? || pages.count == 0) # No children, go up a level
235
- parent = self.find_with_fields(page.parent_id, [:title, :menu_title, :custom_sort_children])
236
- return block if parent.nil? # If we happen to be at the top page
237
-
238
- block.title = !parent.menu_title.nil? && parent.menu_title.length > 0 ? parent.menu_title : parent.title
239
- block.title_id = parent.id
240
-
241
- pages = self.select([
242
- :id, :title, :menu_title, :alias, :slug, :uri, :redirect_url, :sort_order
243
- ]).where(:parent_id => page.parent_id, :hide => false)
244
- if (parent.custom_sort_children)
245
- pages.sort! {|x,y| x.sort_order <=> y.sort_order }
246
- else
247
- pages.sort! {|x,y| x.order_title <=> y.order_title }
248
- end
249
- end
250
-
251
- block.links = []
252
- pages.each do |p|
253
- link = Caboose::StdClass.new({
254
- 'href' => !p.redirect_url.nil? && p.redirect_url.length > 0 ? p.redirect_url : p.uri,
255
- 'text' => !p.menu_title.nil? && p.menu_title.length > 0 ? p.menu_title : p.title,
256
- 'is_current' => p.id == page.id
257
- })
258
- if (!use_redirect_urls && self.is_allowed(user, p.id, 'edit'))
259
- link.href = row.uri
260
- end
261
- block.links << link
262
- end
263
- return block
264
- end
265
-
266
- def self.url(page_id)
267
- arr = []
268
- self.url_helper(page_id, arr)
269
- arr.reverse!
270
-
271
- path = []
272
- arr.each do |row|
273
- if (row.alias.length > 0)
274
- path = [row.alias]
275
- elsif (row.slug.length > 0)
276
- path << row.slug
277
- end
278
- end
279
- return path.join('/')
280
- end
281
-
282
- def self.url_helper(page_id, arr)
283
- return if page_id <= 0
284
-
285
- p = self.find_with_fields(page_id, [:id, :parent_id, :title, :menu_title, :alias, :slug])
286
- return if p.nil?
143
+ t = PagePermission.table
144
+ reqs = nil
145
+ user.role_ids.each do |role_id|
146
+ if (reqs.nil?)
147
+ reqs = t[:role_id].eq(role_id)
148
+ else
149
+ reqs.or(t[:role_id].eq(role_id))
150
+ end
151
+ end
152
+ var params = { :page_id => page_id, :action => action }
153
+ params << reqs if !reqs.nil?
154
+ count = PagePermission.where(params).count
155
+
156
+ return true if count > 0
157
+ return false
158
+ end
159
+
160
+ def self.roles_with_permission(page_id, action)
161
+ return Role.roles_with_page_permission(page_id, action)
162
+ end
163
+
164
+ def self.permissible_actions(user, page_id)
165
+ if (user.is_a?(Integer))
166
+ user = Caboose::User.find(user)
167
+ end
168
+ actions = []
169
+ user.roles.each do |role|
170
+ actions + Caboose::PagePermission.where({
171
+ :role_id => role.id,
172
+ :page_id => page_id
173
+ }).pluck(:action)
174
+ end
175
+ return actions.uniq
176
+ end
177
+
178
+ def self.page_ids_with_permission(user, action)
179
+ if (user.is_a?(Integer))
180
+ user = Caboose::User.find(user)
181
+ end
182
+ ids = []
183
+ user.roles.each do |role|
184
+ ids + Caboose::PagePermission.where({
185
+ :role_id => role.id,
186
+ :action => action
187
+ }).pluck(:page_id)
188
+ end
189
+ return ids.uniq
190
+ end
191
+
192
+ def self.crumb_trail(page)
193
+ page_id = page.is_a?(Integer) ? page : page.id
194
+
195
+ arr = []
196
+ self.crumb_trail_helper(page_id, arr)
197
+ arr.reverse!
198
+
199
+ trail = arr.collect do |row|
200
+ Caboose::StdClass.new({
201
+ 'href' => !row.uri.nil? && row.uri.length > 0 ? row.uri : '/',
202
+ 'text' => !row.menu_title.nil? && row.menu_title.length > 0 ? row.menu_title : row.title
203
+ })
204
+ end
205
+ return trail
206
+ end
207
+
208
+ def self.crumb_trail_helper(page_id, arr)
209
+ return if page_id.nil? || page_id <= 0
210
+ p = self.find_with_fields(page_id, [:parent_id, :title, :menu_title, :uri])
211
+ return if p.nil?
212
+ arr << p
213
+ self.crumb_trail_helper(p.parent_id, arr)
214
+ end
215
+
216
+ def self.subnav(page, use_redirect_urls = true, user = false)
217
+
218
+ # Be nice and allow page ids to be sent
219
+ if (page.is_a?(Integer))
220
+ page = self.find_with_fields(page, [:title, :menu_title, :custom_sort_children])
221
+ end
222
+
223
+ block = Caboose::MenuBlock.new
224
+ block.title = !page.menu_title.nil? && page.menu_title.length > 0 ? page.menu_title : page.title
225
+ block.title_id = page.id
226
+
227
+ pages = self.select([:id, :title, :menu_title, :alias, :slug, :uri, :redirect_url, :sort_order]).where(:parent_id => page.id, :hide => false).reorder(:sort_order).all
228
+ if (page.custom_sort_children)
229
+ pages.sort! {|x,y| x.sort_order <=> y.sort_order }
230
+ else
231
+ pages.sort! {|x,y| x.order_title <=> y.order_title }
232
+ end
233
+
234
+ if (pages.nil? || pages.count == 0) # No children, go up a level
235
+ parent = self.find_with_fields(page.parent_id, [:title, :menu_title, :custom_sort_children])
236
+ return block if parent.nil? # If we happen to be at the top page
237
+
238
+ block.title = !parent.menu_title.nil? && parent.menu_title.length > 0 ? parent.menu_title : parent.title
239
+ block.title_id = parent.id
240
+
241
+ pages = self.select([
242
+ :id, :title, :menu_title, :alias, :slug, :uri, :redirect_url, :sort_order
243
+ ]).where(:parent_id => page.parent_id, :hide => false)
244
+ if (parent.custom_sort_children)
245
+ pages.sort! {|x,y| x.sort_order <=> y.sort_order }
246
+ else
247
+ pages.sort! {|x,y| x.order_title <=> y.order_title }
248
+ end
249
+ end
250
+
251
+ block.links = []
252
+ pages.each do |p|
253
+ link = Caboose::StdClass.new({
254
+ 'href' => !p.redirect_url.nil? && p.redirect_url.length > 0 ? p.redirect_url : p.uri,
255
+ 'text' => !p.menu_title.nil? && p.menu_title.length > 0 ? p.menu_title : p.title,
256
+ 'is_current' => p.id == page.id
257
+ })
258
+ if (!use_redirect_urls && self.is_allowed(user, p.id, 'edit'))
259
+ link.href = row.uri
260
+ end
261
+ block.links << link
262
+ end
263
+ return block
264
+ end
265
+
266
+ def self.url(page_id)
267
+ arr = []
268
+ self.url_helper(page_id, arr)
269
+ arr.reverse!
270
+
271
+ path = []
272
+ arr.each do |row|
273
+ if (row.alias.length > 0)
274
+ path = [row.alias]
275
+ elsif (row.slug.length > 0)
276
+ path << row.slug
277
+ end
278
+ end
279
+ return path.join('/')
280
+ end
281
+
282
+ def self.url_helper(page_id, arr)
283
+ return if page_id <= 0
284
+
285
+ p = self.find_with_fields(page_id, [:id, :parent_id, :title, :menu_title, :alias, :slug])
286
+ return if p.nil?
287
287
 
288
- arr << p
289
- self.url_helper(p.parent_id, arr)
290
- end
291
-
292
- def self.slug(str)
293
- return str.downcase.gsub(' ', '-').gsub(/[^\w-]/, '')
294
- end
295
-
296
- def self.has_children(page_id)
297
- count = self.where(:parent_id => page_id).count
298
- return count > 0
299
- end
300
-
301
- def self.is_child(parent_id, child_id)
302
- pid = self.where(:id => child_id).limit(1).pluck(:parent_id)[0]
303
- return false if pid.nil? || pid <= 0
304
- return true if pid == parent_id
305
- return self.is_child(parent_id, pid)
306
- end
288
+ arr << p
289
+ self.url_helper(p.parent_id, arr)
290
+ end
291
+
292
+ def self.slug(str)
293
+ return str.downcase.gsub(' ', '-').gsub(/[^\w-]/, '')
294
+ end
295
+
296
+ def self.has_children(page_id)
297
+ count = self.where(:parent_id => page_id).count
298
+ return count > 0
299
+ end
300
+
301
+ def self.is_child(parent_id, child_id)
302
+ pid = self.where(:id => child_id).limit(1).pluck(:parent_id)[0]
303
+ return false if pid.nil? || pid <= 0
304
+ return true if pid == parent_id
305
+ return self.is_child(parent_id, pid)
306
+ end
307
307
 
308
- def linked_resources_map
308
+ def linked_resources_map
309
309
  resources = { js: [], css: [] }
310
310
  return resources if self.linked_resources.nil?
311
311
  self.linked_resources.each_line do |r|
@@ -318,6 +318,6 @@ class Caboose::Page < ActiveRecord::Base
318
318
  end
319
319
  end
320
320
  return resources
321
- end
321
+ end
322
322
 
323
323
  end
@@ -1,4 +1,3 @@
1
-
2
1
  class Caboose::User < ActiveRecord::Base
3
2
  self.table_name = "users"
4
3
  has_and_belongs_to_many :roles
@@ -22,18 +21,18 @@ class Caboose::User < ActiveRecord::Base
22
21
  end
23
22
 
24
23
  def self.validate_token(token)
25
- user = User.where('token' => token).first
24
+ user = self.where('token' => token).first
26
25
  return user
27
26
  end
28
27
 
29
28
  def add_to_role_with_name(role_name)
30
- r = Role.where(:name => role_name).first
29
+ r = Caboose::Role.where(:name => role_name).first
31
30
  return false if r.nil?
32
31
  return add_to_role(r.id)
33
32
  end
34
33
 
35
34
  def add_to_role(role_id)
36
- r = Role.find(role_id)
35
+ r = Caboose::Role.find(role_id)
37
36
  return false if r.nil?
38
37
 
39
38
  if (!is_member?(r.id))
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.2.78'
2
+ VERSION = '0.2.79'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.78
4
+ version: 0.2.79
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry