alchemy_cms 2.6.0 → 2.6.1

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.
@@ -435,3 +435,7 @@ div#pictures_page_list {
435
435
  line-height: 6px;
436
436
  }
437
437
  }
438
+
439
+ table.list#tag_list .tag {
440
+ padding: 0;
441
+ }
@@ -122,7 +122,8 @@ module Alchemy
122
122
  :reverse_children => false
123
123
  }.merge(options)
124
124
  page = page_or_find(options[:from_page])
125
- pages = page.children.visible.with_permissions_to(:show, :context => :alchemy_pages)
125
+ return nil if page.blank?
126
+ pages = page.children.with_permissions_to(:see, :context => :alchemy_pages)
126
127
  pages = pages.restricted if options.delete(:restricted_only)
127
128
  if depth = options[:deepness]
128
129
  pages = pages.where("#{Page.table_name}.depth <= #{depth}")
@@ -197,7 +198,7 @@ module Alchemy
197
198
  :reverse => false,
198
199
  :link_active_page => false
199
200
  }.merge(options)
200
- pages = breadcrumb(options[:page]).published.visible.with_permissions_to(:show, :context => :alchemy_pages)
201
+ pages = breadcrumb(options[:page]).with_permissions_to(:see, :context => :alchemy_pages)
201
202
  pages = pages.restricted if options.delete(:restricted_only)
202
203
  pages.to_a.reverse! if options[:reverse]
203
204
  if options[:without].present?
@@ -1,6 +1,9 @@
1
1
  authorization do
2
2
 
3
3
  role :guest do
4
+ has_permission_on :alchemy_pages, :to => [:see] do
5
+ if_attribute :visible => true, :restricted => false
6
+ end
4
7
  has_permission_on :alchemy_pages, :to => [:show] do
5
8
  if_attribute :public => true, :restricted => false
6
9
  end
@@ -17,6 +20,9 @@ authorization do
17
20
 
18
21
  role :registered do
19
22
  includes :guest
23
+ has_permission_on :alchemy_pages, :to => [:see] do
24
+ if_attribute :visible => true, :restricted => true
25
+ end
20
26
  has_permission_on :alchemy_pages, :to => [:show] do
21
27
  if_attribute :public => true, :restricted => true
22
28
  if_attribute :public => true, :restricted => false
@@ -1,6 +1,6 @@
1
1
  module Alchemy
2
2
 
3
- VERSION = "2.6.0"
3
+ VERSION = "2.6.1"
4
4
 
5
5
  def self.version
6
6
  VERSION
@@ -60,5 +60,31 @@ module Alchemy
60
60
  end
61
61
  end
62
62
 
63
+ describe '#page_or_find' do
64
+ let(:page) { FactoryGirl.create(:public_page) }
65
+
66
+ context "passing a page_layout string" do
67
+ context "of a not existing page" do
68
+ it "should return nil" do
69
+ expect(helper.page_or_find('contact')).to be_nil
70
+ end
71
+ end
72
+
73
+ context 'of an existing page' do
74
+ it "should return the page object" do
75
+ session[:language_id] = page.language_id
76
+ expect(helper.page_or_find(page.page_layout)).to eq(page)
77
+ end
78
+ end
79
+ end
80
+
81
+ context "passing a page object" do
82
+ it "should return the given page object" do
83
+ expect(helper.page_or_find(page)).to eq(page)
84
+ end
85
+ end
86
+
87
+ end
88
+
63
89
  end
64
90
  end
@@ -25,14 +25,26 @@ module Alchemy
25
25
  @root_page = language_root # We need this instance variable in the helpers
26
26
  end
27
27
 
28
- it "should render the current page layout" do
29
- @page = public_page
30
- helper.render_page_layout.should have_selector('div#content')
28
+ describe "#render_page_layout" do
29
+ it "should render the current page layout" do
30
+ @page = public_page
31
+ helper.render_page_layout.should have_selector('div#content')
32
+ end
31
33
  end
32
34
 
33
35
  describe "#render_navigation" do
34
36
  before { visible_page }
35
37
 
38
+ it "should render only visible pages" do
39
+ not_visible_page = FactoryGirl.create(:page, visible: false)
40
+ helper.render_navigation.should_not match(/#{not_visible_page.name}/)
41
+ end
42
+
43
+ it "should render visible unpublished pages" do
44
+ unpublished_visible_page = FactoryGirl.create(:page, visible: true, public: false)
45
+ helper.render_navigation.should match(/#{unpublished_visible_page.name}/)
46
+ end
47
+
36
48
  context "not in multi_language mode" do
37
49
  before { helper.stub(:multi_language?).and_return(false) }
38
50
 
@@ -54,8 +66,10 @@ module Alchemy
54
66
  Authorization.stub!(:current_user).and_return(FactoryGirl.build(:registered_user))
55
67
  end
56
68
 
57
- it "should render restricted pages" do
58
- helper.render_navigation.should have_selector("ul.navigation.level_1 li a[href=\"/#{restricted_page.urlname}\"]")
69
+ it "should render also restricted pages" do
70
+ not_restricted_page = FactoryGirl.create(:public_page, restricted: false, visible: true)
71
+ helper.render_navigation.should match(/#{restricted_page.name}/)
72
+ helper.render_navigation.should match(/#{not_restricted_page.name}/)
59
73
  end
60
74
  end
61
75
 
@@ -114,6 +128,34 @@ module Alchemy
114
128
  end
115
129
  end
116
130
 
131
+ context "with options[:from_page] set" do
132
+ before { level_2_page }
133
+
134
+ context "passing a page object" do
135
+ it "should render the pages underneath the given one" do
136
+ output = helper.render_navigation(from_page: visible_page)
137
+ output.should_not have_selector("ul li a[href=\"/#{visible_page.urlname}\"]")
138
+ output.should have_selector("ul li a[href=\"/#{level_2_page.urlname}\"]")
139
+ end
140
+ end
141
+
142
+ context "passing a page_layout" do
143
+ it "should render the pages underneath the page with the given page_layout" do
144
+ helper.stub(:page_or_find).with('contact').and_return(visible_page)
145
+ output = helper.render_navigation(from_page: 'contact')
146
+ output.should_not have_selector("ul li a[href=\"/#{visible_page.urlname}\"]")
147
+ output.should have_selector("ul li a[href=\"/#{level_2_page.urlname}\"]")
148
+ end
149
+ end
150
+
151
+ context "passing a page_layout of a not existing page" do
152
+ it "should render nothing" do
153
+ expect(helper.render_navigation(from_page: 'news')).to be_nil
154
+ end
155
+ end
156
+
157
+ end
158
+
117
159
  end
118
160
 
119
161
  describe '#render_subnavigation' do
@@ -211,14 +253,14 @@ module Alchemy
211
253
  end
212
254
  end
213
255
 
214
- it "should render a breadcrumb of visible pages only." do
215
- page.update_attributes!(visible: false, urlname: 'a-invisible-public-page', name: 'A invisible Public Page', title: 'A invisible Public Page')
216
- helper.render_breadcrumb(page: page, visible_only: true).should_not match(/A invisible Public Page/)
256
+ it "should render a breadcrumb of visible pages only" do
257
+ page.update_attributes!(visible: false, urlname: 'a-invisible-page', name: 'A Invisible Page', title: 'A Invisible Page')
258
+ helper.render_breadcrumb(page: page).should_not match(/A Invisible Page/)
217
259
  end
218
260
 
219
- it "should render a breadcrumb of published pages only" do
261
+ it "should render a breadcrumb of visible and unpublished pages" do
220
262
  page.update_attributes!(public: false, urlname: 'a-unpublic-page', name: 'A Unpublic Page', title: 'A Unpublic Page')
221
- helper.render_breadcrumb(page: page, public_only: true).should_not match(/A Unpublic Page/)
263
+ helper.render_breadcrumb(page: page).should match(/A Unpublic Page/)
222
264
  end
223
265
 
224
266
  context "with options[:without]" do
@@ -266,7 +308,7 @@ module Alchemy
266
308
  describe "#language_links" do
267
309
 
268
310
  context "with two public languages" do
269
-
311
+
270
312
  # Always create second language
271
313
  before { klingonian }
272
314
 
@@ -324,7 +366,7 @@ module Alchemy
324
366
  end
325
367
  end
326
368
  end
327
-
369
+
328
370
  context "with options[:show_title]" do
329
371
  context "set to true" do
330
372
  it "should render the language links with titles" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2013-05-14 00:00:00.000000000 Z
16
+ date: 2013-06-04 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -1151,7 +1151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1151
1151
  version: '0'
1152
1152
  segments:
1153
1153
  - 0
1154
- hash: -1448087068870740088
1154
+ hash: 2987207668504208741
1155
1155
  requirements:
1156
1156
  - ImageMagick (libmagick), v6.6 or greater.
1157
1157
  rubyforge_project: